-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# Copyright © 2016 Zeal Jagannatha
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
# This is a settings file for OS image generation using mkosi (https://github.com/systemd/mkosi).
# Symlink this file to mkosi.default in the project root directory and invoke "mkosi" to build an OS image.
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
# This is a settings file for OS image generation using mkosi (https://github.com/systemd/mkosi).
# Symlink this file to mkosi.default in the project root directory and invoke "mkosi" to build an OS image.
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
# This is a settings file for OS image generation using mkosi (https://github.com/systemd/mkosi).
# Symlink this file to mkosi.default in the project root directory and invoke "mkosi" to build an OS image.
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
# This is a settings file for OS image generation using mkosi (https://github.com/systemd/mkosi).
# Symlink this file to mkosi.default in the project root directory and invoke "mkosi" to build an OS image.
mounting additional disk images into the file system tree accessible
to the service.
+ * Timer units gained a new FixedRandomDelay= boolean setting. If
+ enabled, the random delay configured with RandomizedDelaySec= is
+ selected in a way that is stable on a given system (though still
+ different for different units).
+
+ * Socket units gained a new setting Timestamping= that takes "us", "ns"
+ or "off". This controls the SO_TIMESTAMP/SO_TIMESTAMPNS socket
+ options.
+
* systemd-repart now generates JSON output when requested with the new
--json= switch.
invoked by container payloads that are prohibited by the container's
system call filter policy.
+ * If the $SYSTEMD_SECCOMP=0 environment variable is set for
+ systemd-nspawn (and other programs that use seccomp) all seccomp
+ filtering is turned off.
+
* Two new unit file settings ProtectProc= and ProcSubset= have been
added that expose the hidepid= and subset= mount options of procfs.
All processes of the unit will only see processes in /proc that are
defined, explicit routes to the gateway acquired via DHCP or IPv6
Router Advertisements.
+ * systemd-networkd's [IPv6PrefixDelegation] section and
+ IPv6PrefixDelegation= options have been renamed as [IPv6SendRA] and
+ IPv6SendRA= (the old names are still accepted for backwards
+ compatibility).
+
* systemctl gained support for two new verbs: "service-log-level" and
"service-log-target" may be used on services that implement the
generic org.freedesktop.LogControl1 D-Bus interface to dynamically
a command "bootctl set-default @current" may be used to make the
currently boot menu item the new default for all subsequent boots.
- * A new generic target unit "initrd-cryptsetup.target" has been added
- that is supposed to pull in all encrypted volumes that shall be set
- up during the initrd phase. It takes the place of "cryptsetup.target"
- and "remote-cryptsetup.target" that exist during the host boot
- phase. In other words, the new "initrd-cryptsetup.target" is supposed
- to take the role for "initrd-fs.target", but for encrypted volumes.
-
* "systemctl edit" has been updated to show the original effective unit
contents in commented form in the text editor.
+ Contributions from: Adolfo Jayme Barrientos, afg, Alec Moskvin, Alyssa
+ Ross, Amitanand Chikorde, Andrew Hangsleben, Anita Zhang, Ansgar
+ Burchardt, Arian van Putten, Aurelien Jarno, Axel Rasmussen, bauen1,
+ Beniamino Galvani, Benjamin Berg, Bjørn Mork, brainrom, Chandradeep
+ Dey, Charles Lee, Chris Down, Christian Göttsche, Clemens Gruber, Daan
+ De Meyer, Daniele Medri, Daniel Mack, Daniel Rusek, Dan Streetman,
+ David Tardon, Dimitri John Ledkov, Dmitry Borodaenko, Elias Probst,
+ Elisei Roca, ErrantSpore, Etienne Doms, Fabrice Fontaine, fangxiuning,
+ Felix Riemann, Florian Klink, Franck Bui, Frantisek Sumsal, fwSmit,
+ George Rawlinson, germanztz, Gibeom Gwon, Glen Whitney, Gogo Gogsi,
+ Göran Uddeborg, Grant Mathews, Hans de Goede, Hans Ulrich Niedermann,
+ Haochen Tong, Harald Seiler, huangyong, Hubert Kario, Ikey Doherty, Jan
+ Chren, Jan Schlüter, Jérémy Nouhaud, Jian-Hong Pan, Joerg Behrmann,
+ Jonathan Lebon, Josh Brobst, Juergen Hoetzel, Julien Humbert, Kai-Chuan
+ Hsieh, Kairui Song, Kamil Dudka, Kir Kolyshkin, Kristijan Gjoshev, Kyle
+ Huey, Kyle Russell, Lennart Poettering, lichangze, Luca Boccassi, Lucas
+ Werkmeister, Luca Weiss, Marc Kleine-Budde, Marco Wang, Martin Wilck,
+ Marti Raudsepp, masmullin2000, Máté Pozsgay, Matt Fenwick, Michael
+ Biebl, Michael Scherer, Michal Koutný, Michal Sekletár, Michal
+ Suchanek, Mikael Szreder, Milo Casagrande, mirabilos, Mitsuha_QuQ,
+ mog422, Muhammet Kara, Nazar Vinnichuk, Nicholas Narsing, Nicolas
+ Fella, Njibhu, nl6720, Oğuz Ersen, Olivier Le Moal, Ondrej Kozina,
+ onlybugreports, Pass Automated Testing Suite, Pat Coulthard, Pedro
+ Ruiz, Peter Hutterer, Phaedrus Leeds, PhoenixDiscord, Piotr Drąg, Plan
+ C, Purushottam choudhary, Rasmus Villemoes, Renaud Métrich, Robert
+ Marko, Ronan Pigott, Roy Chen (陳彥廷), RussianNeuroMancer, Samanta
+ Navarro, Samuel BF, scootergrisen, Sorin Ionescu, Steve Dodd, Susant
+ Sahani, Timo Rothenpieler, Tobias Hunger, Tobias Kaufmann, Topi
+ Miettinen, Vito Caputo, Weblate, Wen Yang, williamvds, Yu, Li-Yu, Yuri
+ Chornoivan, Yu Watanabe, Zbigniew Jędrzejewski-Szmek, Zmicer Turok,
+ Дамјан Георгиевски
+
+ – Warsaw, 2020-11-10
+
CHANGES WITH 246:
* The service manager gained basic support for cgroup v2 freezer. Units
configuration drop-ins are present, no action is taken.
* A new component "userdb" has been added, along with a small daemon
- "systemd-userdb.service" and a client tool "userdbctl". The framework
+ "systemd-userdbd.service" and a client tool "userdbctl". The framework
allows defining rich user and group records in a JSON format,
extending on the classic "struct passwd" and "struct group"
structures. Various components in systemd have been updated to
Features:
+* homed: try to unmount in regular intervals when home dir was busy when we
+ tried because idle.
+
+* sd-bus: when connecting to some dbus server socker, set originating AF_UNIX
+ socket name in abstract namespace to include "description" string, and pick
+ it up from there in sd_bus_creds logic. i.e. we can use the socket peer
+ address as conduit for some minimal connection metainfo, and use it to
+ restore the "description" logic that kdbus used to have.
+
+* teach LoadCredential= the ability to load all files from a specified dir as
+ individual creds
+
* systemd-analyze netif that explains predictable interface (or networkctl)
* port selinux code from mallinfo() to mallinfo2() once added to glibc
that the kernel does what we otherwise do.
* homed: keep an fd to the homedir open at all times, to keep the fs pinned
- (autofs and such) while user is loged in.
+ (autofs and such) while user is logged in.
* nss-systemd: also synthesize shadow records for users/groups
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
in_files = '''
systemd.bg.catalog
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# Message catalog for systemd's own messages
# Belarusian translation
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# Message catalog for systemd's own messages
# Belarusian Latin translation
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# Copyright © 2016 Alexander Shopov <ash@kambanaria.org>
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
# Message catalog for systemd's own messages
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
# Message catalog for systemd's own messages
# Danish translation
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
-- fc2e22bc6ee647b6b90729ab34a250b1
Subject: Speicherabbild für Prozess @COREDUMP_PID@ (@COREDUMP_COMM@) generiert
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# Copyright © 2013-2016 Sylvain Plantefève
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
# Message catalog for systemd's own messages
# Croatian translation
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# Copyright © 2016 Gabor Kelemen
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# Copyright © 2013-2019 Daniele Medri
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
# Message catalog for systemd's own messages
# Korean translation
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
# Message catalog for systemd's own messages
# Polish translation
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# Copyright © 2015 Rafael Ferreira (translation)
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# Copyright © 2013-2017 Sergey Ptashnick
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
# Message catalog for systemd's own messages
# Serbian translation
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# Copyright © 2015 Boyuan Yang
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# Copyright © 2015 Jeff Huang
In order to maximize compatibility with file system implementations and
restricted boot loader environments, and to minimize conflicting character use
-with other progams, file names shall be chosen from a restricted character set:
+with other programs, file names shall be chosen from a restricted character set:
ASCII upper and lower case characters, digits, "+", "-", "_" and ".". Also, the
file names should have a length of at least one and at most 255 characters
(including file name suffix).
unlink("/foo/bar/baz");
```
+ When returning from a `void` function, you may also want to shorten the error
+ path boilerplate by returning a function invocation cast to `(void)` like so:
+
+ ```c
+ if (condition_not_met)
+ return (void) log_tests_skipped("Cannot run ...");
+ ```
+
Don't cast function calls to `(void)` that return no error
conditions. Specifically, the various `xyz_unref()` calls that return a
`NULL` object shouldn't be cast to `(void)`, since not using the return value
* `$SYSTEMD_RDRAND=0` — if set, the RDRAND instruction will never be used,
even if the CPU supports it.
+* `$SYSTEMD_SECCOMP=0` – if set, seccomp filters will not be enforced, even if
+ support for it is compiled in and available in the kernel.
+
+* `$SYSTEMD_LOG_SECCOMP=1` — if set, system calls blocked by seccomp filtering,
+ for example in systemd-nspawn, will be logged to the audit log, if the current
+ kernel version supports this.
+
systemctl:
* `$SYSTEMCTL_FORCE_BUS=1` — if set, do not connect to PID1's private D-Bus
* `$SYSTEMCTL_SKIP_SYSV=1` — if set, do not call out to SysV compatibility hooks.
-* `$SYSTEMD_LOG_SECCOMP=1` — if set, system calls blocked by seccomp filtering,
- for example in systemd-nspawn, will be logged to the audit log, if the current
- kernel version supports this.
-
systemd-nspawn:
* `$SYSTEMD_NSPAWN_UNIFIED_HIERARCHY=1` — if set, force nspawn into unified
✓ RemainAfterElapse=
✓ AccuracySec=
✓ RandomizedDelaySec=
+✓ FixedRandomDelay=
Unit=
```
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
file = configure_file(
input : 'README.in',
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
if conf.get('HAVE_SYSV_COMPAT') == 1 and get_option('create-log-dirs')
install_data('README',
ID_OUI_FROM_DATABASE=Novatec Corporation
OUI:0008B0*
- ID_OUI_FROM_DATABASE=BKtel communications GmbH
+ ID_OUI_FROM_DATABASE=HUBER+SUHNER
OUI:0008B1*
ID_OUI_FROM_DATABASE=ProQuent Systems
ID_OUI_FROM_DATABASE=Griffin Technology
OUI:001293*
- ID_OUI_FROM_DATABASE=GE Energy
+ ID_OUI_FROM_DATABASE=ABB Power Protection (CH)
OUI:001294*
ID_OUI_FROM_DATABASE=SUMITOMO ELECTRIC DEVICE INNOVATIONS, INC
ID_OUI_FROM_DATABASE=ONTIMETEK INC.
OUI:0012AD*
- ID_OUI_FROM_DATABASE=IDS GmbH
+ ID_OUI_FROM_DATABASE=VIVAVIS AG
OUI:0012AE*
ID_OUI_FROM_DATABASE=HLS HARD-LINE Solutions Inc.
ID_OUI_FROM_DATABASE=Cermetek Microelectronics, Inc.
OUI:00213E*
- ID_OUI_FROM_DATABASE=TomTom
+ ID_OUI_FROM_DATABASE=TomTom International BV
OUI:00213F*
ID_OUI_FROM_DATABASE=A-Team Technology Ltd.
ID_OUI_FROM_DATABASE=Probits Co., LTD.
OUI:0025DF*
- ID_OUI_FROM_DATABASE=Private
+ ID_OUI_FROM_DATABASE=Taser International Inc.
OUI:0025E0*
ID_OUI_FROM_DATABASE=CeedTec Sdn Bhd
OUI:005E0C*
ID_OUI_FROM_DATABASE=HMD Global Oy
+OUI:005F67*
+ ID_OUI_FROM_DATABASE=TP-Link Corporation Limited
+
OUI:005F86*
ID_OUI_FROM_DATABASE=Cisco Systems, Inc
OUI:006967E*
ID_OUI_FROM_DATABASE=Tianjin Lianwu Technology Co., Ltd.
+OUI:006B6F*
+ ID_OUI_FROM_DATABASE=HUAWEI TECHNOLOGIES CO.,LTD
+
OUI:006B8E*
ID_OUI_FROM_DATABASE=Shanghai Feixun Communication Co.,Ltd.
ID_OUI_FROM_DATABASE=Cisco Systems, Inc
OUI:0077E4*
- ID_OUI_FROM_DATABASE=Nokia
+ ID_OUI_FROM_DATABASE=Nokia Solutions and Networks GmbH & Co. KG
OUI:007888*
ID_OUI_FROM_DATABASE=Cisco Systems, Inc
OUI:04489A*
ID_OUI_FROM_DATABASE=Apple, Inc.
+OUI:04495D*
+ ID_OUI_FROM_DATABASE=Huawei Device Co., Ltd.
+
OUI:044A50*
ID_OUI_FROM_DATABASE=Ramaxel Technology (Shenzhen) limited company
OUI:0479B7*
ID_OUI_FROM_DATABASE=Texas Instruments
+OUI:047A0B*
+ ID_OUI_FROM_DATABASE=Beijing Xiaomi Electronics Co., Ltd.
+
OUI:047D50*
ID_OUI_FROM_DATABASE=Shenzhen Kang Ying Technology Co.Ltd.
OUI:087808*
ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd
+OUI:08798C*
+ ID_OUI_FROM_DATABASE=HUAWEI TECHNOLOGIES CO.,LTD
+
OUI:087999*
ID_OUI_FROM_DATABASE=AIM GmbH
OUI:089798*
ID_OUI_FROM_DATABASE=COMPAL INFORMATION (KUNSHAN) CO., LTD.
+OUI:089AC7*
+ ID_OUI_FROM_DATABASE=zte corporation
+
OUI:089B4B*
ID_OUI_FROM_DATABASE=iKuai Networks
OUI:089BB9*
- ID_OUI_FROM_DATABASE=Nokia
+ ID_OUI_FROM_DATABASE=Nokia Solutions and Networks GmbH & Co. KG
OUI:089C86*
ID_OUI_FROM_DATABASE=Nokia Shanghai Bell Co., Ltd.
ID_OUI_FROM_DATABASE=Intel Corporate
OUI:0C7C28*
- ID_OUI_FROM_DATABASE=Nokia
+ ID_OUI_FROM_DATABASE=Nokia Solutions and Networks GmbH & Co. KG
OUI:0C7D7C*
ID_OUI_FROM_DATABASE=Kexiang Information Technology Co, Ltd.
OUI:0C9301*
ID_OUI_FROM_DATABASE=PT. Prasimax Inovasi Teknologi
+OUI:0C938F*
+ ID_OUI_FROM_DATABASE=GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP.,LTD
+
OUI:0C93FB*
ID_OUI_FROM_DATABASE=BNS Solutions
OUI:0C96BF*
ID_OUI_FROM_DATABASE=HUAWEI TECHNOLOGIES CO.,LTD
+OUI:0C96CD*
+ ID_OUI_FROM_DATABASE=MERCURY CORPORATION
+
OUI:0C96E6*
ID_OUI_FROM_DATABASE=Cloud Network Technology (Samoa) Limited
OUI:141877*
ID_OUI_FROM_DATABASE=Dell Inc.
+OUI:1418C3*
+ ID_OUI_FROM_DATABASE=Intel Corporate
+
OUI:141A51*
ID_OUI_FROM_DATABASE=Treetech Sistemas Digitais
OUI:1422DB*
ID_OUI_FROM_DATABASE=eero inc.
+OUI:14230A*
+ ID_OUI_FROM_DATABASE=HUAWEI TECHNOLOGIES CO.,LTD
+
OUI:1423D7*
ID_OUI_FROM_DATABASE=EUTRONIX CO., LTD.
OUI:143F27*
ID_OUI_FROM_DATABASE=Noccela Oy
+OUI:143FA6*
+ ID_OUI_FROM_DATABASE=Sony Home Entertainment&Sound Products Inc
+
OUI:143FC3*
ID_OUI_FROM_DATABASE=SnapAV
OUI:145E45*
ID_OUI_FROM_DATABASE=Bamboo Systems Group
+OUI:145E69*
+ ID_OUI_FROM_DATABASE=GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP.,LTD
+
OUI:145F94*
ID_OUI_FROM_DATABASE=HUAWEI TECHNOLOGIES CO.,LTD
OUI:14A364*
ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd
+OUI:14A3B4*
+ ID_OUI_FROM_DATABASE=Huawei Device Co., Ltd.
+
OUI:14A51A*
ID_OUI_FROM_DATABASE=HUAWEI TECHNOLOGIES CO.,LTD
OUI:14B1C8*
ID_OUI_FROM_DATABASE=InfiniWing, Inc.
+OUI:14B2E5*
+ ID_OUI_FROM_DATABASE=Shenzhen iComm Semiconductor CO.,LTD
+
OUI:14B31F*
ID_OUI_FROM_DATABASE=Dell Inc.
OUI:181456*
ID_OUI_FROM_DATABASE=Nokia Corporation
+OUI:18146C*
+ ID_OUI_FROM_DATABASE=Zhejiang Tmall Technology Co., Ltd.
+
OUI:1816C9*
ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd
OUI:181725*
ID_OUI_FROM_DATABASE=Cameo Communications, Inc.
+OUI:18188B*
+ ID_OUI_FROM_DATABASE=FUJITSU CONNECTED TECHNOLOGIES LIMITED
+
OUI:18193F*
ID_OUI_FROM_DATABASE=Tamtron Oy
OUI:1C37BF*
ID_OUI_FROM_DATABASE=Cloudium Systems Ltd.
+OUI:1C3929*
+ ID_OUI_FROM_DATABASE=OHSUNG
+
OUI:1C3947*
ID_OUI_FROM_DATABASE=COMPAL INFORMATION (KUNSHAN) CO., LTD.
OUI:1CCDE5*
ID_OUI_FROM_DATABASE=Shanghai Wind Technologies Co.,Ltd
+OUI:1CD1BA*
+ ID_OUI_FROM_DATABASE=Fiberhome Telecommunication Technologies Co.,LTD
+
OUI:1CD40C*
ID_OUI_FROM_DATABASE=Kriwan Industrie-Elektronik GmbH
OUI:200BC7*
ID_OUI_FROM_DATABASE=HUAWEI TECHNOLOGIES CO.,LTD
+OUI:200BCF*
+ ID_OUI_FROM_DATABASE=Nintendo Co.,Ltd
+
OUI:200CC8*
ID_OUI_FROM_DATABASE=NETGEAR
ID_OUI_FROM_DATABASE=Delta Faucet Company
OUI:207852*
- ID_OUI_FROM_DATABASE=Nokia
+ ID_OUI_FROM_DATABASE=Nokia Solutions and Networks GmbH & Co. KG
OUI:2078F0*
ID_OUI_FROM_DATABASE=Apple, Inc.
OUI:20EEC6*
ID_OUI_FROM_DATABASE=Elefirst Science & Tech Co ., ltd
+OUI:20EFBD*
+ ID_OUI_FROM_DATABASE=Roku, Inc
+
OUI:20F002*
ID_OUI_FROM_DATABASE=MTData Developments Pty. Ltd.
OUI:20FEDB*
ID_OUI_FROM_DATABASE=M2M Solution S.A.S.
+OUI:20FF36*
+ ID_OUI_FROM_DATABASE=IFLYTEK CO.,LTD.
+
OUI:2400BA*
ID_OUI_FROM_DATABASE=HUAWEI TECHNOLOGIES CO.,LTD
OUI:240B2A*
ID_OUI_FROM_DATABASE=Viettel Group
+OUI:240B88*
+ ID_OUI_FROM_DATABASE=Taicang T&W Electronics
+
OUI:240BB1*
ID_OUI_FROM_DATABASE=KOSTAL Industrie Elektrik GmbH
OUI:24E43F*
ID_OUI_FROM_DATABASE=Wenzhou Kunmei Communication Technology Co.,Ltd.
+OUI:24E4C8*
+ ID_OUI_FROM_DATABASE=Fiberhome Telecommunication Technologies Co.,LTD
+
OUI:24E5AA*
ID_OUI_FROM_DATABASE=Philips Oral Healthcare, Inc.
OUI:24ECD6*
ID_OUI_FROM_DATABASE=CSG Science & Technology Co.,Ltd.Hefei
+OUI:24EDFD*
+ ID_OUI_FROM_DATABASE=Siemens Canada Limited
+
OUI:24EE3A*
ID_OUI_FROM_DATABASE=Chengdu Yingji Electronic Hi-tech Co Ltd
OUI:2C780E*
ID_OUI_FROM_DATABASE=Huawei Device Co., Ltd.
+OUI:2C793D*
+ ID_OUI_FROM_DATABASE=Boditech Med
+
OUI:2C79D7*
ID_OUI_FROM_DATABASE=Sagemcom Broadband SAS
OUI:2CA539*
ID_OUI_FROM_DATABASE=Parallel Wireless, Inc
+OUI:2CA59C*
+ ID_OUI_FROM_DATABASE=Hangzhou Hikvision Digital Technology Co.,Ltd.
+
OUI:2CA780*
ID_OUI_FROM_DATABASE=True Technologies Inc.
OUI:304C7E*
ID_OUI_FROM_DATABASE=Panasonic Electric Works Automation Controls Techno Co.,Ltd.
+OUI:304E1B*
+ ID_OUI_FROM_DATABASE=Huawei Device Co., Ltd.
+
OUI:304EC3*
ID_OUI_FROM_DATABASE=Tianjin Techua Technology Co., Ltd.
OUI:34AF2C*
ID_OUI_FROM_DATABASE=Nintendo Co., Ltd.
+OUI:34AFB3*
+ ID_OUI_FROM_DATABASE=Amazon Technologies Inc.
+
OUI:34B1F7*
ID_OUI_FROM_DATABASE=Texas Instruments
OUI:34C803*
ID_OUI_FROM_DATABASE=Nokia Corporation
+OUI:34C93D*
+ ID_OUI_FROM_DATABASE=Intel Corporate
+
OUI:34C99D*
ID_OUI_FROM_DATABASE=EIDOLON COMMUNICATIONS TECHNOLOGY CO. LTD.
OUI:34FD6A*
ID_OUI_FROM_DATABASE=Apple, Inc.
+OUI:34FEC5*
+ ID_OUI_FROM_DATABASE=Shenzhen Sunwoda intelligent hardware Co.,Ltd
+
OUI:380025*
ID_OUI_FROM_DATABASE=Intel Corporate
OUI:383FB3*
ID_OUI_FROM_DATABASE=Technicolor CH USA Inc.
+OUI:38420B*
+ ID_OUI_FROM_DATABASE=Sonos, Inc.
+
OUI:384233*
ID_OUI_FROM_DATABASE=Wildeboer Bauteile GmbH
OUI:388EE7*
ID_OUI_FROM_DATABASE=Fanhattan LLC
+OUI:389052*
+ ID_OUI_FROM_DATABASE=HUAWEI TECHNOLOGIES CO.,LTD
+
OUI:3890A5*
ID_OUI_FROM_DATABASE=Cisco Systems, Inc
OUI:3C1E13*
ID_OUI_FROM_DATABASE=HANGZHOU SUNRISE TECHNOLOGY CO., LTD
+OUI:3C2093*
+ ID_OUI_FROM_DATABASE=GD Midea Air-Conditioning Equipment Co.,Ltd.
+
OUI:3C20F6*
ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd
OUI:3C53D7*
ID_OUI_FROM_DATABASE=CEDES AG
+OUI:3C5447*
+ ID_OUI_FROM_DATABASE=HUAWEI TECHNOLOGIES CO.,LTD
+
OUI:3C5731*
ID_OUI_FROM_DATABASE=Cisco Systems, Inc
OUI:4088E0*
ID_OUI_FROM_DATABASE=Beijing Ereneben Information Technology Limited Shenzhen Branch
+OUI:4089A8*
+ ID_OUI_FROM_DATABASE=WiredIQ, LLC
+
OUI:408A9A*
ID_OUI_FROM_DATABASE=TITENG CO., Ltd.
OUI:408D5C*
ID_OUI_FROM_DATABASE=GIGA-BYTE TECHNOLOGY CO.,LTD.
+OUI:408F9D*
+ ID_OUI_FROM_DATABASE=Juniper Networks
+
OUI:409505*
ID_OUI_FROM_DATABASE=ACOINFO TECHNOLOGY CO.,LTD
OUI:44ADD9*
ID_OUI_FROM_DATABASE=Cisco Systems, Inc
+OUI:44AE25*
+ ID_OUI_FROM_DATABASE=Cisco Systems, Inc
+
OUI:44AEAB*
ID_OUI_FROM_DATABASE=GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP.,LTD
OUI:44D437*
ID_OUI_FROM_DATABASE=Inteno Broadband Technology AB
+OUI:44D453*
+ ID_OUI_FROM_DATABASE=Sagemcom Broadband SAS
+
OUI:44D4E0*
ID_OUI_FROM_DATABASE=Sony Mobile Communications Inc
OUI:484BD4*
ID_OUI_FROM_DATABASE=Technicolor CH USA Inc.
+OUI:484C29*
+ ID_OUI_FROM_DATABASE=HUAWEI TECHNOLOGIES CO.,LTD
+
OUI:484C86*
ID_OUI_FROM_DATABASE=Huawei Device Co., Ltd.
OUI:4851B7*
ID_OUI_FROM_DATABASE=Intel Corporate
+OUI:4851C5*
+ ID_OUI_FROM_DATABASE=Intel Corporate
+
OUI:485261*
ID_OUI_FROM_DATABASE=SOREEL
ID_OUI_FROM_DATABASE=Murata Manufacturing Co., Ltd.
OUI:48EC5B*
- ID_OUI_FROM_DATABASE=Nokia
+ ID_OUI_FROM_DATABASE=Nokia Solutions and Networks GmbH & Co. KG
OUI:48ED80*
ID_OUI_FROM_DATABASE=daesung eltec
OUI:4C0FC7*
ID_OUI_FROM_DATABASE=Earda Technologies co Ltd
+OUI:4C1154*
+ ID_OUI_FROM_DATABASE=Mobiwire Mobiles (NingBo) Co., LTD
+
OUI:4C1159*
ID_OUI_FROM_DATABASE=Vision Information & Communications
OUI:4C74BF*
ID_OUI_FROM_DATABASE=Apple, Inc.
+OUI:4C7525*
+ ID_OUI_FROM_DATABASE=Espressif Inc.
+
OUI:4C7625*
ID_OUI_FROM_DATABASE=Dell Inc.
ID_OUI_FROM_DATABASE=Commsignia, Ltd.
OUI:4C93A64*
- ID_OUI_FROM_DATABASE=4D Sistem Ticaret A.S.
+ ID_OUI_FROM_DATABASE=4TheWall - 4D Sistem A.S
OUI:4C93A65*
ID_OUI_FROM_DATABASE=Private
OUI:503DA1*
ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd
+OUI:503DC6*
+ ID_OUI_FROM_DATABASE=Xiaomi Communications Co Ltd
+
OUI:503DE5*
ID_OUI_FROM_DATABASE=Cisco Systems, Inc
OUI:5051A9*
ID_OUI_FROM_DATABASE=Texas Instruments
+OUI:50523B*
+ ID_OUI_FROM_DATABASE=Nokia
+
OUI:5052D2*
ID_OUI_FROM_DATABASE=Hangzhou Telin Technologies Co., Limited
OUI:50C271*
ID_OUI_FROM_DATABASE=SECURETECH INC
+OUI:50C3A2*
+ ID_OUI_FROM_DATABASE=nFore Technology Co.,Ltd.
+
OUI:50C4DD*
ID_OUI_FROM_DATABASE=BUFFALO.INC
OUI:54068B*
ID_OUI_FROM_DATABASE=Ningbo Deli Kebei Technology Co.LTD
+OUI:540764*
+ ID_OUI_FROM_DATABASE=Huawei Device Co., Ltd.
+
OUI:540955*
ID_OUI_FROM_DATABASE=zte corporation
OUI:542018*
ID_OUI_FROM_DATABASE=Tely Labs
+OUI:54211D*
+ ID_OUI_FROM_DATABASE=Huawei Device Co., Ltd.
+
OUI:542160*
ID_OUI_FROM_DATABASE=Alula
OUI:5439DF*
ID_OUI_FROM_DATABASE=HUAWEI TECHNOLOGIES CO.,LTD
+OUI:543AD6*
+ ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd
+
OUI:543B30*
ID_OUI_FROM_DATABASE=duagon AG
OUI:544408*
ID_OUI_FROM_DATABASE=Nokia Corporation
+OUI:544617*
+ ID_OUI_FROM_DATABASE=zte corporation
+
OUI:54466B*
ID_OUI_FROM_DATABASE=Shenzhen CZTIC Electronic Technology Co., Ltd
OUI:546751*
ID_OUI_FROM_DATABASE=Compal Broadband Networks, Inc.
+OUI:5467E6*
+ ID_OUI_FROM_DATABASE=SHENZHEN MTC CO LTD
+
OUI:546AD8*
ID_OUI_FROM_DATABASE=Elster Water Metering
OUI:54D9E4*
ID_OUI_FROM_DATABASE=BRILLIANTTS CO., LTD
+OUI:54DBA2*
+ ID_OUI_FROM_DATABASE=Fibrain
+
OUI:54DC1D*
ID_OUI_FROM_DATABASE=Yulong Computer Telecommunication Scientific (Shenzhen) Co.,Ltd
OUI:54F5B6*
ID_OUI_FROM_DATABASE=ORIENTAL PACIFIC INTERNATIONAL LIMITED
+OUI:54F607*
+ ID_OUI_FROM_DATABASE=Huawei Device Co., Ltd.
+
OUI:54F666*
ID_OUI_FROM_DATABASE=Berthold Technologies GmbH and Co.KG
ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd
OUI:54FA96*
- ID_OUI_FROM_DATABASE=Nokia
+ ID_OUI_FROM_DATABASE=Nokia Solutions and Networks GmbH & Co. KG
OUI:54FB58*
ID_OUI_FROM_DATABASE=WISEWARE, Lda
OUI:58AC78*
ID_OUI_FROM_DATABASE=Cisco Systems, Inc
+OUI:58AE2B*
+ ID_OUI_FROM_DATABASE=Huawei Device Co., Ltd.
+
+OUI:58AEA8*
+ ID_OUI_FROM_DATABASE=HUAWEI TECHNOLOGIES CO.,LTD
+
OUI:58B035*
ID_OUI_FROM_DATABASE=Apple, Inc.
OUI:58B0D4*
ID_OUI_FROM_DATABASE=ZuniData Systems Inc.
+OUI:58B0FE*
+ ID_OUI_FROM_DATABASE=Team EPS GmbH
+
OUI:58B10F*
ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd
OUI:5C6F4F*
ID_OUI_FROM_DATABASE=S.A. SISTEL
+OUI:5C6F69*
+ ID_OUI_FROM_DATABASE=Broadcom Limited
+
OUI:5C70A3*
ID_OUI_FROM_DATABASE=LG Electronics (Mobile Communications)
OUI:5C857EE*
ID_OUI_FROM_DATABASE=Guoyi Liangzi (Hefei) Technology Co., Ltd(CIQTEK)
+OUI:5C85F8*
+ ID_OUI_FROM_DATABASE=SHENZHEN KAIFA TECHNOLOGY CO.,LTD.
+
OUI:5C8613*
ID_OUI_FROM_DATABASE=Beijing Zhoenet Technology Co., Ltd
OUI:5C9960*
ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd
+OUI:5C9AA1*
+ ID_OUI_FROM_DATABASE=Huawei Device Co., Ltd.
+
OUI:5C9AD8*
ID_OUI_FROM_DATABASE=FUJITSU LIMITED
OUI:5CBAEF*
ID_OUI_FROM_DATABASE=CHONGQING FUGUI ELECTRONICS CO.,LTD.
+OUI:5CBD9A*
+ ID_OUI_FROM_DATABASE=Huawei Device Co., Ltd.
+
OUI:5CBD9E*
ID_OUI_FROM_DATABASE=HONGKONG MIRACLE EAGLE TECHNOLOGY(GROUP) LIMITED
OUI:5CDD70*
ID_OUI_FROM_DATABASE=Hangzhou H3C Technologies Co., Limited
+OUI:5CDE34*
+ ID_OUI_FROM_DATABASE=SHENZHEN MERCURY COMMUNICATION TECHNOLOGIES CO.,LTD.
+
OUI:5CE0C5*
ID_OUI_FROM_DATABASE=Intel Corporate
OUI:5CE50C*
ID_OUI_FROM_DATABASE=Beijing Xiaomi Mobile Software Co., Ltd
+OUI:5CE747*
+ ID_OUI_FROM_DATABASE=HUAWEI TECHNOLOGIES CO.,LTD
+
OUI:5CE7A0*
ID_OUI_FROM_DATABASE=Nokia
OUI:605464*
ID_OUI_FROM_DATABASE=Eyedro Green Solutions Inc.
+OUI:6055F9*
+ ID_OUI_FROM_DATABASE=Espressif Inc.
+
OUI:605661*
ID_OUI_FROM_DATABASE=IXECLOUD Tech
OUI:608D17*
ID_OUI_FROM_DATABASE=Sentrus Government Systems Division, Inc
+OUI:608D26*
+ ID_OUI_FROM_DATABASE=Arcadyan Corporation
+
OUI:608E08*
ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd
ID_OUI_FROM_DATABASE=Shenzhen Yipinfang Internet Technology Co.,Ltd
OUI:60A8FE*
- ID_OUI_FROM_DATABASE=Nokia
+ ID_OUI_FROM_DATABASE=Nokia Solutions and Networks GmbH & Co. KG
OUI:60A9B0*
ID_OUI_FROM_DATABASE=Merchandising Technologies, Inc
OUI:6405BE*
ID_OUI_FROM_DATABASE=NEW LIGHT LED
+OUI:6405E4*
+ ID_OUI_FROM_DATABASE=ALPSALPINE CO .,LTD
+
OUI:6405E9*
ID_OUI_FROM_DATABASE=Shenzhen WayOS Technology Crop., Ltd.
OUI:64A0E7*
ID_OUI_FROM_DATABASE=Cisco Systems, Inc
+OUI:64A198*
+ ID_OUI_FROM_DATABASE=Huawei Device Co., Ltd.
+
OUI:64A200*
ID_OUI_FROM_DATABASE=Xiaomi Communications Co Ltd
OUI:64D4DA*
ID_OUI_FROM_DATABASE=Intel Corporate
+OUI:64D7C0*
+ ID_OUI_FROM_DATABASE=Huawei Device Co., Ltd.
+
OUI:64D814*
ID_OUI_FROM_DATABASE=Cisco Systems, Inc
OUI:683F1E*
ID_OUI_FROM_DATABASE=EFFECT Photonics B.V.
+OUI:683F7D*
+ ID_OUI_FROM_DATABASE=INGRAM MICRO SERVICES
+
OUI:684352*
ID_OUI_FROM_DATABASE=Bhuu Limited
OUI:6872DC*
ID_OUI_FROM_DATABASE=CETORY.TV Company Limited
+OUI:687627*
+ ID_OUI_FROM_DATABASE=Zhuhai Dingzhi Electronic Technology Co., Ltd
+
OUI:68764F*
ID_OUI_FROM_DATABASE=Sony Mobile Communications Inc
OUI:687848*
- ID_OUI_FROM_DATABASE=Westunitis Co., Ltd.
+ ID_OUI_FROM_DATABASE=WESTUNITIS CO., LTD.
OUI:68784C*
ID_OUI_FROM_DATABASE=Nortel Networks
OUI:6CCA08*
ID_OUI_FROM_DATABASE=ARRIS Group, Inc.
+OUI:6CCDD6*
+ ID_OUI_FROM_DATABASE=NETGEAR
+
OUI:6CCE44*
ID_OUI_FROM_DATABASE=1MORE
OUI:6CD68A*
ID_OUI_FROM_DATABASE=LG Electronics (Mobile Communications)
+OUI:6CD704*
+ ID_OUI_FROM_DATABASE=HUAWEI TECHNOLOGIES CO.,LTD
+
OUI:6CD71F*
ID_OUI_FROM_DATABASE=GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP.,LTD
ID_OUI_FROM_DATABASE=Mooredoll Inc.
OUI:6CF712*
- ID_OUI_FROM_DATABASE=Nokia
+ ID_OUI_FROM_DATABASE=Nokia Solutions and Networks GmbH & Co. KG
OUI:6CF97C*
ID_OUI_FROM_DATABASE=Nanoptix Inc.
ID_OUI_FROM_DATABASE=Stara S/A Indústria de Implementos Agrícolas
OUI:70B3D513F*
- ID_OUI_FROM_DATABASE=Farmobile
+ ID_OUI_FROM_DATABASE=Farmobile, LLC
OUI:70B3D5140*
ID_OUI_FROM_DATABASE=Virta Laboratories, Inc.
OUI:70B3D51B6*
ID_OUI_FROM_DATABASE=DACOM West GmbH
+OUI:70B3D51B7*
+ ID_OUI_FROM_DATABASE=ULSee Inc
+
OUI:70B3D51B8*
ID_OUI_FROM_DATABASE=OES Inc.
OUI:70B3D5255*
ID_OUI_FROM_DATABASE=Asystems Corporation
+OUI:70B3D5256*
+ ID_OUI_FROM_DATABASE=Telco Antennas Pty Ltd
+
OUI:70B3D5257*
ID_OUI_FROM_DATABASE=LG Electronics
OUI:70B3D528F*
ID_OUI_FROM_DATABASE=Overline Systems
+OUI:70B3D5290*
+ ID_OUI_FROM_DATABASE=GETT Geraetetechnik GmbH
+
OUI:70B3D5291*
ID_OUI_FROM_DATABASE=Sequent AG
OUI:70B3D529D*
ID_OUI_FROM_DATABASE=XTech2 SIA
+OUI:70B3D529E*
+ ID_OUI_FROM_DATABASE=B2cloud lda
+
OUI:70B3D529F*
ID_OUI_FROM_DATABASE=Code Hardware SA
OUI:70B3D5319*
ID_OUI_FROM_DATABASE=ISO/TC 22/SC 31
+OUI:70B3D531A*
+ ID_OUI_FROM_DATABASE=Terratel Technology s.r.o.
+
OUI:70B3D531B*
ID_OUI_FROM_DATABASE=SilTerra Malaysia Sdn. Bhd.
OUI:70B3D541B*
ID_OUI_FROM_DATABASE=SYS TEC electronic GmbH
+OUI:70B3D541C*
+ ID_OUI_FROM_DATABASE=Twoway Communications, Inc.
+
OUI:70B3D541D*
ID_OUI_FROM_DATABASE=Azmoon Keifiat
OUI:70B3D5473*
ID_OUI_FROM_DATABASE=KeyProd
+OUI:70B3D5474*
+ ID_OUI_FROM_DATABASE=DAYOUPLUS
+
OUI:70B3D5475*
ID_OUI_FROM_DATABASE=EWATTCH
ID_OUI_FROM_DATABASE=JK DEVICE CORPORATION
OUI:70B3D54DD*
- ID_OUI_FROM_DATABASE=Road-iQ, LLC
+ ID_OUI_FROM_DATABASE=Velvac Incorporated
OUI:70B3D54DE*
ID_OUI_FROM_DATABASE=Oso Technologies, Inc.
OUI:70B3D551E*
ID_OUI_FROM_DATABASE=Fundación Cardiovascular de Colombia
+OUI:70B3D551F*
+ ID_OUI_FROM_DATABASE=VALEO CDA
+
OUI:70B3D5521*
ID_OUI_FROM_DATABASE=Selex ES Inc.
OUI:70B3D553F*
ID_OUI_FROM_DATABASE=Abbott Diagnostics Technologies AS
+OUI:70B3D5540*
+ ID_OUI_FROM_DATABASE=KMtronic ltd
+
OUI:70B3D5541*
ID_OUI_FROM_DATABASE=Nanjing Pingguang Electronic Technology Co., Ltd
OUI:70B3D555F*
ID_OUI_FROM_DATABASE=Deep BV
+OUI:70B3D5560*
+ ID_OUI_FROM_DATABASE=DaiShin Information & Communications Co., Ltd
+
OUI:70B3D5561*
ID_OUI_FROM_DATABASE=Liberator Pty Ltd
ID_OUI_FROM_DATABASE=ABB S.p.A.
OUI:70B3D55A8*
- ID_OUI_FROM_DATABASE=Farmobile
+ ID_OUI_FROM_DATABASE=Farmobile, LLC
OUI:70B3D55A9*
ID_OUI_FROM_DATABASE=Bunka Shutter Co., Ltd.
OUI:70B3D5626*
ID_OUI_FROM_DATABASE=KRONOTECH SRL
+OUI:70B3D5627*
+ ID_OUI_FROM_DATABASE=EarTex
+
OUI:70B3D5628*
ID_OUI_FROM_DATABASE=MECT SRL
OUI:70B3D564E*
ID_OUI_FROM_DATABASE=BigStuff3, Inc.
+OUI:70B3D564F*
+ ID_OUI_FROM_DATABASE=GUNMA ELECTRONICS CO LTD
+
OUI:70B3D5650*
ID_OUI_FROM_DATABASE=GIFAS-ELECTRIC GmbH
OUI:70B3D580D*
ID_OUI_FROM_DATABASE=Data Physics Corporation
+OUI:70B3D580E*
+ ID_OUI_FROM_DATABASE=Utopi Ltd
+
OUI:70B3D580F*
ID_OUI_FROM_DATABASE=Quickware Eng & Des LLC
OUI:70B3D581B*
ID_OUI_FROM_DATABASE=bobz GmbH
+OUI:70B3D581C*
+ ID_OUI_FROM_DATABASE=QIT Co., Ltd.
+
OUI:70B3D581D*
ID_OUI_FROM_DATABASE=DEUTA-WERKE GmbH
OUI:70B3D5886*
ID_OUI_FROM_DATABASE=MB connect line GmbH Fernwartungssysteme
+OUI:70B3D5887*
+ ID_OUI_FROM_DATABASE=Entec Solar S.L.
+
OUI:70B3D5888*
ID_OUI_FROM_DATABASE=Zetechtics Ltd
OUI:70B3D58D0*
ID_OUI_FROM_DATABASE=Raft Technologies
+OUI:70B3D58D1*
+ ID_OUI_FROM_DATABASE=Field Design Inc.
+
OUI:70B3D58D3*
ID_OUI_FROM_DATABASE=PERFORMANCE CONTROLS, INC.
OUI:70B3D58E7*
ID_OUI_FROM_DATABASE=REO AG
+OUI:70B3D58E8*
+ ID_OUI_FROM_DATABASE=PREO INDUSTRIES FAR EAST LTD
+
OUI:70B3D58EA*
ID_OUI_FROM_DATABASE=JLCooper Electronics
OUI:70B3D593B*
ID_OUI_FROM_DATABASE=Changchun FAW Yanfeng Visteon Automotive Electronics.,Ltd.
+OUI:70B3D593C*
+ ID_OUI_FROM_DATABASE=GSP Sprachtechnologie GmbH
+
OUI:70B3D593D*
ID_OUI_FROM_DATABASE=Elmeasure India Pvt Ltd
OUI:70B3D5A64*
ID_OUI_FROM_DATABASE=Newshine
+OUI:70B3D5A65*
+ ID_OUI_FROM_DATABASE=CREATIVE
+
OUI:70B3D5A66*
ID_OUI_FROM_DATABASE=Trapeze Software Group Inc
OUI:70B3D5AFB*
ID_OUI_FROM_DATABASE=Shanghai Tianhe Automation Instrumentation Co., Ltd.
+OUI:70B3D5AFC*
+ ID_OUI_FROM_DATABASE=BAE Systems
+
OUI:70B3D5AFE*
ID_OUI_FROM_DATABASE=MESOTECHNIC
OUI:70B3D5B2B*
ID_OUI_FROM_DATABASE=Vtron Pty Ltd
+OUI:70B3D5B2C*
+ ID_OUI_FROM_DATABASE=Elman srl
+
OUI:70B3D5B2D*
ID_OUI_FROM_DATABASE=Plexus
OUI:70B3D5B41*
ID_OUI_FROM_DATABASE=T&M Media Pty Ltd
+OUI:70B3D5B42*
+ ID_OUI_FROM_DATABASE=Samwell International Inc
+
OUI:70B3D5B43*
ID_OUI_FROM_DATABASE=ZAO ZEO
OUI:70B3D5BDA*
ID_OUI_FROM_DATABASE=5-D Systems, Inc.
+OUI:70B3D5BDB*
+ ID_OUI_FROM_DATABASE=Power Electronics Espana, S.L.
+
+OUI:70B3D5BDC*
+ ID_OUI_FROM_DATABASE=EDF Lab
+
OUI:70B3D5BDD*
ID_OUI_FROM_DATABASE=CDR SRL
OUI:70B3D5BEF*
ID_OUI_FROM_DATABASE=Sensortech Systems Inc.
+OUI:70B3D5BF0*
+ ID_OUI_FROM_DATABASE=Alfa Elettronica srl
+
OUI:70B3D5BF1*
ID_OUI_FROM_DATABASE=Flashnet SRL
OUI:70B3D5C12*
ID_OUI_FROM_DATABASE=Beijing Wisetone Information Technology Co.,Ltd.
+OUI:70B3D5C13*
+ ID_OUI_FROM_DATABASE=Guangzhou Xianhe Technology Engineering Co., Ltd
+
OUI:70B3D5C14*
ID_OUI_FROM_DATABASE=Grupo Epelsa S.L.
OUI:70B3D5C27*
ID_OUI_FROM_DATABASE=GD Mission Systems
+OUI:70B3D5C28*
+ ID_OUI_FROM_DATABASE=Mitech Integrated Systems Inc.
+
OUI:70B3D5C29*
ID_OUI_FROM_DATABASE=SOFTLAND INDIA LTD
OUI:70B3D5C46*
ID_OUI_FROM_DATABASE=eumig industrie-TV GmbH.
+OUI:70B3D5C47*
+ ID_OUI_FROM_DATABASE=ABB
+
OUI:70B3D5C48*
ID_OUI_FROM_DATABASE=Weltek Technologies Co. Ltd.
OUI:70B3D5CC6*
ID_OUI_FROM_DATABASE=MB connect line GmbH Fernwartungssysteme
+OUI:70B3D5CC7*
+ ID_OUI_FROM_DATABASE=SOtM
+
OUI:70B3D5CC8*
ID_OUI_FROM_DATABASE=PROFEN COMMUNICATIONS
OUI:70B3D5CD7*
ID_OUI_FROM_DATABASE=AutomationX GmbH
+OUI:70B3D5CD8*
+ ID_OUI_FROM_DATABASE=Nexus Electric S.A.
+
OUI:70B3D5CD9*
ID_OUI_FROM_DATABASE=Peter Huber Kaeltemaschinenbau GmbH
OUI:70B3D5CED*
ID_OUI_FROM_DATABASE=Advanced Products Corporation Pte Ltd
+OUI:70B3D5CEE*
+ ID_OUI_FROM_DATABASE=ACRIOS Systems s.r.o.
+
OUI:70B3D5CEF*
ID_OUI_FROM_DATABASE=Ellego Powertec Oy
OUI:70B3D5D02*
ID_OUI_FROM_DATABASE=Arctos Showlasertechnik GmbH
+OUI:70B3D5D03*
+ ID_OUI_FROM_DATABASE=Digitella Inc.
+
OUI:70B3D5D05*
ID_OUI_FROM_DATABASE=Colmek
OUI:70B3D5D3D*
ID_OUI_FROM_DATABASE=Netzikon GmbH
+OUI:70B3D5D3E*
+ ID_OUI_FROM_DATABASE=enders GmbH
+
OUI:70B3D5D3F*
ID_OUI_FROM_DATABASE=GLOBALCOM ENGINEERING SPA
OUI:70B3D5DCA*
ID_OUI_FROM_DATABASE=DSan Corporation
+OUI:70B3D5DCB*
+ ID_OUI_FROM_DATABASE=MIJIENETRTECH CO.,LTD
+
OUI:70B3D5DCC*
ID_OUI_FROM_DATABASE=Eutron SPA
OUI:70B3D5EC1*
ID_OUI_FROM_DATABASE=Xafax Nederland bv
+OUI:70B3D5EC2*
+ ID_OUI_FROM_DATABASE=Lightside Instruments AS
+
OUI:70B3D5EC3*
ID_OUI_FROM_DATABASE=Virtual Control Systems Ltd
ID_OUI_FROM_DATABASE=Neoptix Inc.
OUI:70B3D5EC8*
- ID_OUI_FROM_DATABASE=Viko Elektrik-Elektronik A.Ş.
+ ID_OUI_FROM_DATABASE=PANASONIC LIFE SOLUTIONS ELEKTRİK SANAYİ VE TİCARE
OUI:70B3D5EC9*
ID_OUI_FROM_DATABASE=Qlinx Technologies
OUI:70B3D5ED8*
ID_OUI_FROM_DATABASE=Wartsila Voyage Limited
+OUI:70B3D5ED9*
+ ID_OUI_FROM_DATABASE=AADONA Communication Pvt Ltd
+
OUI:70B3D5EDA*
ID_OUI_FROM_DATABASE=Breas Medical AB
OUI:70B3D5F9C*
ID_OUI_FROM_DATABASE=SureFlap Ltd
+OUI:70B3D5F9D*
+ ID_OUI_FROM_DATABASE=Teledyne API
+
OUI:70B3D5F9E*
ID_OUI_FROM_DATABASE=International Center for Elementary Particle Physics, The University of Tokyo
OUI:70CE8C*
ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd
+OUI:70CF49*
+ ID_OUI_FROM_DATABASE=Intel Corporate
+
OUI:70D081*
ID_OUI_FROM_DATABASE=Beijing Netpower Technologies Inc.
OUI:74042B*
ID_OUI_FROM_DATABASE=Lenovo Mobile Communication (Wuhan) Company Limited
+OUI:7404F0*
+ ID_OUI_FROM_DATABASE=Mobiwire Mobiles (NingBo) Co., LTD
+
OUI:7405A5*
ID_OUI_FROM_DATABASE=TP-LINK TECHNOLOGIES CO.,LTD.
OUI:744BE9*
ID_OUI_FROM_DATABASE=EXPLORER HYPERTECH CO.,LTD
+OUI:744CA1*
+ ID_OUI_FROM_DATABASE=Liteon Technology Corporation
+
OUI:744D28*
ID_OUI_FROM_DATABASE=Routerboard.com
OUI:744D79*
ID_OUI_FROM_DATABASE=Arrive Systems Inc.
+OUI:74504E*
+ ID_OUI_FROM_DATABASE=New H3C Technologies Co., Ltd
+
OUI:7451BA*
ID_OUI_FROM_DATABASE=Xiaomi Communications Co Ltd
OUI:748A69*
ID_OUI_FROM_DATABASE=Korea Image Technology Co., Ltd
+OUI:748B29*
+ ID_OUI_FROM_DATABASE=Micobiomed
+
OUI:748B34*
ID_OUI_FROM_DATABASE=Shanghai Smart System Technology Co., Ltd
ID_OUI_FROM_DATABASE=Apple, Inc.
OUI:748F4D*
- ID_OUI_FROM_DATABASE=MEN Mikro Elektronik GmbH
+ ID_OUI_FROM_DATABASE=duagon Germany GmbH
OUI:74901F*
ID_OUI_FROM_DATABASE=Ragile Networks Inc.
OUI:74E7C6*
ID_OUI_FROM_DATABASE=ARRIS Group, Inc.
+OUI:74E9BF*
+ ID_OUI_FROM_DATABASE=HUAWEI TECHNOLOGIES CO.,LTD
+
OUI:74EA3A*
ID_OUI_FROM_DATABASE=TP-LINK TECHNOLOGIES CO.,LTD.
OUI:78CD8E*
ID_OUI_FROM_DATABASE=SMC Networks Inc
+OUI:78CF2F*
+ ID_OUI_FROM_DATABASE=HUAWEI TECHNOLOGIES CO.,LTD
+
OUI:78D004*
ID_OUI_FROM_DATABASE=Neousys Technology Inc.
OUI:78D38D*
ID_OUI_FROM_DATABASE=HONGKONG YUNLINK TECHNOLOGY LIMITED
+OUI:78D4F11*
+ ID_OUI_FROM_DATABASE=Cartender
+
+OUI:78D4F15*
+ ID_OUI_FROM_DATABASE=Huaqin Telecom Technology Co.,Ltd.
+
OUI:78D5B5*
ID_OUI_FROM_DATABASE=NAVIELEKTRO KY
ID_OUI_FROM_DATABASE=Private
OUI:78F9B4*
- ID_OUI_FROM_DATABASE=Nokia
+ ID_OUI_FROM_DATABASE=Nokia Solutions and Networks GmbH & Co. KG
OUI:78FC14*
ID_OUI_FROM_DATABASE=Family Zone Cyber Safety Ltd
OUI:7CC294*
ID_OUI_FROM_DATABASE=Beijing Xiaomi Mobile Software Co., Ltd
+OUI:7CC2C6*
+ ID_OUI_FROM_DATABASE=TP-Link Corporation Limited
+
OUI:7CC385*
ID_OUI_FROM_DATABASE=HUAWEI TECHNOLOGIES CO.,LTD
OUI:802275*
ID_OUI_FROM_DATABASE=Beijing Beny Wave Technology Co Ltd
+OUI:802278*
+ ID_OUI_FROM_DATABASE=China Mobile IOT Company Limited
+
OUI:8022A7*
ID_OUI_FROM_DATABASE=NEC Platforms, Ltd.
OUI:804B20*
ID_OUI_FROM_DATABASE=Ventilation Control
+OUI:804B50*
+ ID_OUI_FROM_DATABASE=Silicon Laboratories
+
OUI:804E70*
ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd
OUI:80B95C*
ID_OUI_FROM_DATABASE=ELFTECH Co., Ltd.
+OUI:80B97A*
+ ID_OUI_FROM_DATABASE=eero inc.
+
OUI:80BAAC*
ID_OUI_FROM_DATABASE=TeleAdapt Ltd
OUI:844464*
ID_OUI_FROM_DATABASE=ServerU Inc
+OUI:8444AF*
+ ID_OUI_FROM_DATABASE=Zhejiang Tmall Technology Co., Ltd.
+
OUI:8446FE*
ID_OUI_FROM_DATABASE=HUAWEI TECHNOLOGIES CO.,LTD
OUI:845C93*
ID_OUI_FROM_DATABASE=Chabrier Services
+OUI:845CF3*
+ ID_OUI_FROM_DATABASE=Intel Corporate
+
OUI:845DD7*
ID_OUI_FROM_DATABASE=Shenzhen Netcom Electronics Co.,Ltd
OUI:8463D6*
ID_OUI_FROM_DATABASE=Microsoft Corporation
+OUI:846569*
+ ID_OUI_FROM_DATABASE=New H3C Technologies Co., Ltd
+
OUI:84683E*
ID_OUI_FROM_DATABASE=Intel Corporate
OUI:882364*
ID_OUI_FROM_DATABASE=Watchnet DVR Inc
+OUI:88238C*
+ ID_OUI_FROM_DATABASE=Fiberhome Telecommunication Technologies Co.,LTD
+
OUI:8823FE*
ID_OUI_FROM_DATABASE=TTTech Computertechnik AG
OUI:885A06*
ID_OUI_FROM_DATABASE=GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP.,LTD
+OUI:885A85*
+ ID_OUI_FROM_DATABASE=Wistron Neweb Corporation
+
OUI:885A92*
ID_OUI_FROM_DATABASE=Cisco Systems, Inc
OUI:8C0FA0*
ID_OUI_FROM_DATABASE=di-soric GmbH & Co. KG
+OUI:8C0FC9*
+ ID_OUI_FROM_DATABASE=Huawei Device Co., Ltd.
+
OUI:8C0FFA*
ID_OUI_FROM_DATABASE=Hutec co.,ltd
OUI:8C6422*
ID_OUI_FROM_DATABASE=Sony Mobile Communications Inc
+OUI:8C64D4*
+ ID_OUI_FROM_DATABASE=Hyeco Smart Tech Co.,Ltd
+
OUI:8C683A*
ID_OUI_FROM_DATABASE=HUAWEI TECHNOLOGIES CO.,LTD
OUI:8C8B83*
ID_OUI_FROM_DATABASE=Texas Instruments
+OUI:8C8CAA*
+ ID_OUI_FROM_DATABASE=LCFC(HeFei) Electronics Technology co., ltd
+
OUI:8C8D28*
ID_OUI_FROM_DATABASE=Intel Corporate
OUI:8CAB8E*
ID_OUI_FROM_DATABASE=Shanghai Feixun Communication Co.,Ltd.
+OUI:8CAE490*
+ ID_OUI_FROM_DATABASE=Ouman Oy
+
+OUI:8CAE491*
+ ID_OUI_FROM_DATABASE=H3 Platform
+
+OUI:8CAE492*
+ ID_OUI_FROM_DATABASE=SEVERIN Elektrogeräte GmbH
+
+OUI:8CAE493*
+ ID_OUI_FROM_DATABASE=BERTIN TECHNOLOGIES
+
+OUI:8CAE494*
+ ID_OUI_FROM_DATABASE=Jiangsu Sixingda Information Technology Co., Ltd.
+
+OUI:8CAE495*
+ ID_OUI_FROM_DATABASE=Gati Information Technolog(Kunshan)Co.,Ltd.
+
OUI:8CAE496*
ID_OUI_FROM_DATABASE=Chengdu BillDTE Technology Co., Ltd
+OUI:8CAE497*
+ ID_OUI_FROM_DATABASE=Precitec Optronik GmbH
+
+OUI:8CAE498*
+ ID_OUI_FROM_DATABASE=LLC Taipit - Measuring Equipment
+
+OUI:8CAE499*
+ ID_OUI_FROM_DATABASE=TTR Corporation
+
OUI:8CAE49A*
ID_OUI_FROM_DATABASE=Gigawave
+OUI:8CAE49B*
+ ID_OUI_FROM_DATABASE=Suzhou Guowang Electronics Technology Co., Ltd.
+
+OUI:8CAE49C*
+ ID_OUI_FROM_DATABASE=Parametric GmbH
+
+OUI:8CAE49D*
+ ID_OUI_FROM_DATABASE=Larch Networks
+
+OUI:8CAE49E*
+ ID_OUI_FROM_DATABASE=Shenzhen C & D Electronics Co., Ltd.
+
OUI:8CAE4C*
ID_OUI_FROM_DATABASE=Plugable Technologies
OUI:8CDE99*
ID_OUI_FROM_DATABASE=Comlab Inc.
+OUI:8CDEF9*
+ ID_OUI_FROM_DATABASE=Beijing Xiaomi Mobile Software Co., Ltd
+
OUI:8CDF9D*
ID_OUI_FROM_DATABASE=NEC Corporation
OUI:8CEA1B*
ID_OUI_FROM_DATABASE=Edgecore Networks Corporation
+OUI:8CEA48*
+ ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd
+
OUI:8CEBC6*
ID_OUI_FROM_DATABASE=HUAWEI TECHNOLOGIES CO.,LTD
OUI:8CF228*
ID_OUI_FROM_DATABASE=MERCURY COMMUNICATION TECHNOLOGIES CO.,LTD.
+OUI:8CF319*
+ ID_OUI_FROM_DATABASE=Siemens Industrial Automation Products Ltd., Chengdu
+
OUI:8CF5A3*
ID_OUI_FROM_DATABASE=SAMSUNG ELECTRO-MECHANICS(THAILAND)
OUI:900218*
ID_OUI_FROM_DATABASE=BSkyB Ltd
+OUI:90027A*
+ ID_OUI_FROM_DATABASE=Shenzhen Sworix Techonlogy Co., Ltd
+
OUI:90028A*
ID_OUI_FROM_DATABASE=Shenzhen Shidean Legrand Electronic Products Co.,Ltd
OUI:900EB3*
ID_OUI_FROM_DATABASE=Shenzhen Amediatech Technology Co., Ltd.
+OUI:900F0C*
+ ID_OUI_FROM_DATABASE=CLOUD NETWORK TECHNOLOGY SINGAPORE PTE. LTD.
+
OUI:901234*
ID_OUI_FROM_DATABASE=Shenzhen YOUHUA Technology Co., Ltd
OUI:903CAE*
ID_OUI_FROM_DATABASE=Yunnan KSEC Digital Technology Co.,Ltd.
+OUI:903CB3*
+ ID_OUI_FROM_DATABASE=Edgecore Networks Corporation
+
OUI:903D5A*
ID_OUI_FROM_DATABASE=Shenzhen Wision Technology Holding Limited
OUI:945F34*
ID_OUI_FROM_DATABASE=Renesas Electronics (Penang) Sdn. Bhd.
+OUI:946010*
+ ID_OUI_FROM_DATABASE=Huawei Device Co., Ltd.
+
OUI:94611E*
ID_OUI_FROM_DATABASE=Wata Electronics Co.,Ltd.
OUI:948E89*
ID_OUI_FROM_DATABASE=INDUSTRIAS UNIDAS SA DE CV
+OUI:948ED3*
+ ID_OUI_FROM_DATABASE=Arista Networks
+
OUI:948FCF*
ID_OUI_FROM_DATABASE=ARRIS Group, Inc.
OUI:987770*
ID_OUI_FROM_DATABASE=Pep Digital Technology (Guangzhou) Co., Ltd
+OUI:9877E7*
+ ID_OUI_FROM_DATABASE=Kaonmedia CO., LTD.
+
OUI:987A10*
ID_OUI_FROM_DATABASE=Ericsson AB
OUI:988B5D*
ID_OUI_FROM_DATABASE=Sagemcom Broadband SAS
+OUI:988B69*
+ ID_OUI_FROM_DATABASE=Shenzhen hylitech Co.,LTD
+
OUI:988BAD*
ID_OUI_FROM_DATABASE=Corintech Ltd.
OUI:98ED5C*
ID_OUI_FROM_DATABASE=Tesla,Inc.
+OUI:98ED7E*
+ ID_OUI_FROM_DATABASE=eero inc.
+
OUI:98EECB*
ID_OUI_FROM_DATABASE=Wistron Infocomm (Zhongshan) Corporation
OUI:9C04EB*
ID_OUI_FROM_DATABASE=Apple, Inc.
+OUI:9C0567*
+ ID_OUI_FROM_DATABASE=Honor Device Co., Ltd.
+
OUI:9C061B*
ID_OUI_FROM_DATABASE=Hangzhou H3C Technologies Co., Limited
OUI:9C80DF*
ID_OUI_FROM_DATABASE=Arcadyan Technology Corporation
+OUI:9C823F*
+ ID_OUI_FROM_DATABASE=Huawei Device Co., Ltd.
+
OUI:9C8275*
ID_OUI_FROM_DATABASE=Yichip Microelectronics (Hangzhou) Co.,Ltd
OUI:9CBB98*
ID_OUI_FROM_DATABASE=Shen Zhen RND Electronic Co.,LTD
+OUI:9CBCF0*
+ ID_OUI_FROM_DATABASE=Xiaomi Communications Co Ltd
+
OUI:9CBD6E*
ID_OUI_FROM_DATABASE=DERA Co., Ltd
OUI:9CE951*
ID_OUI_FROM_DATABASE=Shenzhen Sang Fei Consumer Communications Ltd., Co.
+OUI:9CEA97*
+ ID_OUI_FROM_DATABASE=Honor Device Co., Ltd.
+
OUI:9CEBE8*
ID_OUI_FROM_DATABASE=BizLink (Kunshan) Co.,Ltd
OUI:9CFFC2*
ID_OUI_FROM_DATABASE=AVI Systems GmbH
+OUI:A0024A0*
+ ID_OUI_FROM_DATABASE=Zhejiang Hechuan Technology Co.,Ltd
+
+OUI:A0024A1*
+ ID_OUI_FROM_DATABASE=Vitec Imaging Solutions Spa
+
+OUI:A0024A2*
+ ID_OUI_FROM_DATABASE=Danriver Technologies Corp.
+
+OUI:A0024A3*
+ ID_OUI_FROM_DATABASE=SomaDetect Inc
+
+OUI:A0024A4*
+ ID_OUI_FROM_DATABASE=Argos Solutions AS
+
+OUI:A0024A5*
+ ID_OUI_FROM_DATABASE=Donguan Amsamotion Automation Technology Co., Ltd
+
+OUI:A0024A6*
+ ID_OUI_FROM_DATABASE=Xiaojie Technology (Shenzhen) Co., Ltd
+
+OUI:A0024A8*
+ ID_OUI_FROM_DATABASE=Beijing Lyratone Technology Co., Ltd
+
+OUI:A0024A9*
+ ID_OUI_FROM_DATABASE=Kontakt Micro-Location Sp z o.o.
+
+OUI:A0024AA*
+ ID_OUI_FROM_DATABASE=Guangdong Jinpeng Technology Co. LTD
+
+OUI:A0024AB*
+ ID_OUI_FROM_DATABASE=Xi'an Yingsheng Electric Technology Co.,Ltd.
+
+OUI:A0024AC*
+ ID_OUI_FROM_DATABASE=Encroute AB
+
+OUI:A0024AD*
+ ID_OUI_FROM_DATABASE=bitbee Inc
+
+OUI:A0024AE*
+ ID_OUI_FROM_DATABASE=IoTecha Corp
+
OUI:A002DC*
ID_OUI_FROM_DATABASE=Amazon Technologies Inc.
OUI:A03A75*
ID_OUI_FROM_DATABASE=PSS Belgium N.V.
+OUI:A03B01*
+ ID_OUI_FROM_DATABASE=Kyung In Electronics
+
OUI:A03B1B*
ID_OUI_FROM_DATABASE=Inspire Tech
OUI:A03C31*
ID_OUI_FROM_DATABASE=Shenzhen Belon Technology CO.,LTD
+OUI:A03D6E*
+ ID_OUI_FROM_DATABASE=Cisco Systems, Inc
+
OUI:A03D6F*
ID_OUI_FROM_DATABASE=Cisco Systems, Inc
OUI:A0A3E2*
ID_OUI_FROM_DATABASE=Actiontec Electronics, Inc
+OUI:A0A3F0*
+ ID_OUI_FROM_DATABASE=D-Link International
+
OUI:A0A4C5*
ID_OUI_FROM_DATABASE=Intel Corporate
OUI:A44027*
ID_OUI_FROM_DATABASE=zte corporation
+OUI:A4423B*
+ ID_OUI_FROM_DATABASE=Intel Corporate
+
OUI:A444D1*
ID_OUI_FROM_DATABASE=Wingtech Group (HongKong)Limited
OUI:A45385*
ID_OUI_FROM_DATABASE=WEIFANG GOERTEK ELECTRONICS CO.,LTD
+OUI:A453EE0*
+ ID_OUI_FROM_DATABASE=MAHLE ELECTRONICS, SLU
+
+OUI:A453EE1*
+ ID_OUI_FROM_DATABASE=Stellamore
+
+OUI:A453EE2*
+ ID_OUI_FROM_DATABASE=Ubisafe Smart Devices
+
+OUI:A453EE3*
+ ID_OUI_FROM_DATABASE=Larva.io OÜ
+
+OUI:A453EE4*
+ ID_OUI_FROM_DATABASE=Williamson Corporation
+
+OUI:A453EE5*
+ ID_OUI_FROM_DATABASE=Foshan Yisihang Electrical Technology Co., Ltd.
+
+OUI:A453EE6*
+ ID_OUI_FROM_DATABASE=Aura Home, Inc.
+
+OUI:A453EE7*
+ ID_OUI_FROM_DATABASE=Beijing Lanke Science and Technology Co.,LTd.
+
+OUI:A453EE8*
+ ID_OUI_FROM_DATABASE=T-Touching Co., Ltd.
+
+OUI:A453EE9*
+ ID_OUI_FROM_DATABASE=Dongguan HuaFuu industrial co., LTD
+
+OUI:A453EEB*
+ ID_OUI_FROM_DATABASE=Viper Design, LLC
+
+OUI:A453EEC*
+ ID_OUI_FROM_DATABASE=SOS LAB Co., Ltd.
+
+OUI:A453EED*
+ ID_OUI_FROM_DATABASE=SSK CORPORATION
+
OUI:A45602*
ID_OUI_FROM_DATABASE=fenglian Technology Co.,Ltd.
OUI:A468BC*
ID_OUI_FROM_DATABASE=Oakley Inc.
+OUI:A46BB6*
+ ID_OUI_FROM_DATABASE=Intel Corporate
+
OUI:A46C2A*
ID_OUI_FROM_DATABASE=Cisco Systems, Inc
OUI:A83944*
ID_OUI_FROM_DATABASE=Actiontec Electronics, Inc
+OUI:A83B5C*
+ ID_OUI_FROM_DATABASE=HUAWEI TECHNOLOGIES CO.,LTD
+
OUI:A83CCB*
ID_OUI_FROM_DATABASE=ROSSMA
OUI:A89969*
ID_OUI_FROM_DATABASE=Dell Inc.
+OUI:A899DC*
+ ID_OUI_FROM_DATABASE=i-TOP DESING TECHNOLOGY CO.,LTD
+
OUI:A89A93*
ID_OUI_FROM_DATABASE=Sagemcom Broadband SAS
OUI:A8CB95*
ID_OUI_FROM_DATABASE=EAST BEST CO., LTD.
+OUI:A8CC6F*
+ ID_OUI_FROM_DATABASE=HMD Global Oy
+
OUI:A8CCC5*
ID_OUI_FROM_DATABASE=Saab AB (publ)
OUI:A8F5DD*
ID_OUI_FROM_DATABASE=ARRIS Group, Inc.
+OUI:A8F766*
+ ID_OUI_FROM_DATABASE=ITE Tech Inc
+
OUI:A8F7E0*
ID_OUI_FROM_DATABASE=PLANET Technology Corporation
OUI:A8FCB7*
ID_OUI_FROM_DATABASE=Consolidated Resource Imaging
+OUI:A8FFBA*
+ ID_OUI_FROM_DATABASE=HUAWEI TECHNOLOGIES CO.,LTD
+
OUI:AA0000*
ID_OUI_FROM_DATABASE=DIGITAL EQUIPMENT CORPORATION
OUI:AC7713*
ID_OUI_FROM_DATABASE=Honeywell Safety Products (Shanghai) Co.,Ltd
+OUI:AC78D1*
+ ID_OUI_FROM_DATABASE=Juniper Networks
+
OUI:AC7A42*
ID_OUI_FROM_DATABASE=iConnectivity
OUI:B07994*
ID_OUI_FROM_DATABASE=Motorola Mobility LLC, a Lenovo Company
+OUI:B07B25*
+ ID_OUI_FROM_DATABASE=Dell Inc.
+
OUI:B07D47*
ID_OUI_FROM_DATABASE=Cisco Systems, Inc
OUI:B08BCF*
ID_OUI_FROM_DATABASE=Cisco Systems, Inc
+OUI:B08BD0*
+ ID_OUI_FROM_DATABASE=Cisco Systems, Inc
+
OUI:B08C75*
ID_OUI_FROM_DATABASE=Apple, Inc.
OUI:B0BBE5*
ID_OUI_FROM_DATABASE=Sagemcom Broadband SAS
+OUI:B0BD1B*
+ ID_OUI_FROM_DATABASE=Dongguan Liesheng Electronic Co., Ltd.
+
OUI:B0BD6D*
ID_OUI_FROM_DATABASE=Echostreams Innovative Solutions
OUI:B4B265*
ID_OUI_FROM_DATABASE=DAEHO I&T
+OUI:B4B291*
+ ID_OUI_FROM_DATABASE=LG Electronics
+
OUI:B4B362*
ID_OUI_FROM_DATABASE=zte corporation
OUI:B4B5AF*
ID_OUI_FROM_DATABASE=Minsung Electronics
+OUI:B4B5B6*
+ ID_OUI_FROM_DATABASE=CHONGQING FUGUI ELECTRONICS CO.,LTD.
+
OUI:B4B676*
ID_OUI_FROM_DATABASE=Intel Corporate
OUI:BC3E13*
ID_OUI_FROM_DATABASE=Accordance Systems Inc.
+OUI:BC3ECB*
+ ID_OUI_FROM_DATABASE=vivo Mobile Communication Co., Ltd.
+
OUI:BC3F4E*
ID_OUI_FROM_DATABASE=Teleepoch Ltd
OUI:BC6C21*
ID_OUI_FROM_DATABASE=Apple, Inc.
+OUI:BC6D05*
+ ID_OUI_FROM_DATABASE=Dusun Electron Co.,Ltd.
+
OUI:BC6E64*
ID_OUI_FROM_DATABASE=Sony Mobile Communications Inc
OUI:BC99BC*
ID_OUI_FROM_DATABASE=FonSee Technology Inc.
+OUI:BC9A53*
+ ID_OUI_FROM_DATABASE=Huawei Device Co., Ltd.
+
OUI:BC9B68*
ID_OUI_FROM_DATABASE=Technicolor CH USA Inc.
OUI:BC9CC5*
ID_OUI_FROM_DATABASE=Beijing Huafei Technology Co., Ltd.
+OUI:BC9D42*
+ ID_OUI_FROM_DATABASE=SHENZHEN RF-LINK TECHNOLOGY CO.,LTD.
+
OUI:BC9DA5*
ID_OUI_FROM_DATABASE=DASCOM Europe GmbH
OUI:BCE67C*
ID_OUI_FROM_DATABASE=Cambium Networks Limited
+OUI:BCE712*
+ ID_OUI_FROM_DATABASE=Cisco Systems, Inc
+
OUI:BCE767*
ID_OUI_FROM_DATABASE=Quanzhou TDX Electronics Co., Ltd
OUI:BCF310*
ID_OUI_FROM_DATABASE=Extreme Networks, Inc.
+OUI:BCF45F*
+ ID_OUI_FROM_DATABASE=zte corporation
+
OUI:BCF5AC*
ID_OUI_FROM_DATABASE=LG Electronics (Mobile Communications)
OUI:C027B9*
ID_OUI_FROM_DATABASE=Beijing National Railway Research & Design Institute of Signal & Communication Co., Ltd.
+OUI:C0280B*
+ ID_OUI_FROM_DATABASE=Honor Device Co., Ltd.
+
OUI:C0288D*
ID_OUI_FROM_DATABASE=Logitech, Inc
ID_OUI_FROM_DATABASE=Medicaroid Corporation
OUI:C04121*
- ID_OUI_FROM_DATABASE=Nokia
+ ID_OUI_FROM_DATABASE=Nokia Solutions and Networks GmbH & Co. KG
OUI:C041F6*
ID_OUI_FROM_DATABASE=LG ELECTRONICS INC
OUI:C0DF77*
ID_OUI_FROM_DATABASE=Conrad Electronic SE
+OUI:C0E018*
+ ID_OUI_FROM_DATABASE=HUAWEI TECHNOLOGIES CO.,LTD
+
OUI:C0E3A0*
ID_OUI_FROM_DATABASE=Renesas Electronics (Penang) Sdn. Bhd.
+OUI:C0E3FB*
+ ID_OUI_FROM_DATABASE=HUAWEI TECHNOLOGIES CO.,LTD
+
OUI:C0E422*
ID_OUI_FROM_DATABASE=Texas Instruments
OUI:C0F6C2*
ID_OUI_FROM_DATABASE=HUAWEI TECHNOLOGIES CO.,LTD
+OUI:C0F6EC*
+ ID_OUI_FROM_DATABASE=HUAWEI TECHNOLOGIES CO.,LTD
+
OUI:C0F79D*
ID_OUI_FROM_DATABASE=Powercode
OUI:C4BED4*
ID_OUI_FROM_DATABASE=Avaya Inc
+OUI:C4BF60*
+ ID_OUI_FROM_DATABASE=TECNO MOBILE LIMITED
+
OUI:C4C0AE*
ID_OUI_FROM_DATABASE=MIDORI ELECTRONIC CO., LTD.
OUI:C4D197*
ID_OUI_FROM_DATABASE=Ventia Utility Services
+OUI:C4D438*
+ ID_OUI_FROM_DATABASE=HUAWEI TECHNOLOGIES CO.,LTD
+
OUI:C4D489*
ID_OUI_FROM_DATABASE=JiangSu Joyque Information Industry Co.,Ltd
OUI:C4E1A1*
ID_OUI_FROM_DATABASE=GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP.,LTD
+OUI:C4E287*
+ ID_OUI_FROM_DATABASE=HUAWEI TECHNOLOGIES CO.,LTD
+
OUI:C4E39F*
ID_OUI_FROM_DATABASE=GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP.,LTD
OUI:C86C1E*
ID_OUI_FROM_DATABASE=Display Systems Ltd
+OUI:C86C3D*
+ ID_OUI_FROM_DATABASE=Amazon Technologies Inc.
+
OUI:C86C87*
ID_OUI_FROM_DATABASE=Zyxel Communications Corporation
OUI:C8A2CE*
ID_OUI_FROM_DATABASE=Oasis Media Systems LLC
+OUI:C8A40D*
+ ID_OUI_FROM_DATABASE=Cooler Master Technology Inc
+
OUI:C8A620*
ID_OUI_FROM_DATABASE=Nebula, Inc
OUI:C8E1A7*
ID_OUI_FROM_DATABASE=Vertu Corporation Limited
+OUI:C8E265*
+ ID_OUI_FROM_DATABASE=Intel Corporate
+
OUI:C8E42F*
ID_OUI_FROM_DATABASE=Technical Research Design and Development
OUI:CC1FC4*
ID_OUI_FROM_DATABASE=InVue
+OUI:CC208C*
+ ID_OUI_FROM_DATABASE=HUAWEI TECHNOLOGIES CO.,LTD
+
OUI:CC20E8*
ID_OUI_FROM_DATABASE=Apple, Inc.
OUI:D01242*
ID_OUI_FROM_DATABASE=BIOS Corporation
+OUI:D012CB*
+ ID_OUI_FROM_DATABASE=AVM Audiovisuelles Marketing und Computersysteme GmbH
+
OUI:D0131E*
ID_OUI_FROM_DATABASE=Sunrex Technology Corp
OUI:D039EA*
ID_OUI_FROM_DATABASE=NetApp
+OUI:D03C1F*
+ ID_OUI_FROM_DATABASE=Intel Corporate
+
OUI:D03D52*
ID_OUI_FROM_DATABASE=Ava Security Limited
OUI:D03FAA*
ID_OUI_FROM_DATABASE=Apple, Inc.
+OUI:D040EF*
+ ID_OUI_FROM_DATABASE=Murata Manufacturing Co., Ltd.
+
OUI:D041C9*
ID_OUI_FROM_DATABASE=Fiberhome Telecommunication Technologies Co.,LTD
OUI:D055B2*
ID_OUI_FROM_DATABASE=Integrated Device Technology (Malaysia) Sdn. Bhd.
+OUI:D056BF*
+ ID_OUI_FROM_DATABASE=AMOSENSE
+
OUI:D0574C*
ID_OUI_FROM_DATABASE=Cisco Systems, Inc
OUI:D05AF1*
ID_OUI_FROM_DATABASE=Shenzhen Pulier Tech CO.,Ltd
+OUI:D05AFD*
+ ID_OUI_FROM_DATABASE=Realme Chongqing Mobile Telecommunications Corp.,Ltd.
+
OUI:D05BA8*
ID_OUI_FROM_DATABASE=zte corporation
OUI:D4389C*
ID_OUI_FROM_DATABASE=Sony Mobile Communications Inc
+OUI:D439B8*
+ ID_OUI_FROM_DATABASE=Ciena Corporation
+
OUI:D43A2E*
ID_OUI_FROM_DATABASE=SHENZHEN MTC CO LTD
OUI:D4EC86*
ID_OUI_FROM_DATABASE=LinkedHope Intelligent Technologies Co., Ltd
+OUI:D4ECAB*
+ ID_OUI_FROM_DATABASE=vivo Mobile Communication Co., Ltd.
+
OUI:D4EE07*
ID_OUI_FROM_DATABASE=HIWIFI Co., Ltd.
OUI:D8004D*
ID_OUI_FROM_DATABASE=Apple, Inc.
+OUI:D80093*
+ ID_OUI_FROM_DATABASE=Aurender Inc.
+
OUI:D8052E*
ID_OUI_FROM_DATABASE=Skyviia Corporation
OUI:D80F99*
ID_OUI_FROM_DATABASE=Hon Hai Precision Ind. Co.,Ltd.
+OUI:D8109F*
+ ID_OUI_FROM_DATABASE=HUAWEI TECHNOLOGIES CO.,LTD
+
OUI:D810CB*
ID_OUI_FROM_DATABASE=Andrea Informatique
OUI:D814D6*
ID_OUI_FROM_DATABASE=SURE SYSTEM Co Ltd
+OUI:D814DF*
+ ID_OUI_FROM_DATABASE=TCL King Electrical Appliances (Huizhou) Co., Ltd
+
OUI:D8150D*
ID_OUI_FROM_DATABASE=TP-LINK TECHNOLOGIES CO.,LTD.
ID_OUI_FROM_DATABASE=Huawei Device Co., Ltd.
OUI:D8EFCD*
- ID_OUI_FROM_DATABASE=Nokia
+ ID_OUI_FROM_DATABASE=Nokia Solutions and Networks GmbH & Co. KG
OUI:D8F0F2*
ID_OUI_FROM_DATABASE=Zeebo Inc
OUI:DC21E2*
ID_OUI_FROM_DATABASE=HUAWEI TECHNOLOGIES CO.,LTD
+OUI:DC2727*
+ ID_OUI_FROM_DATABASE=Huawei Device Co., Ltd.
+
OUI:DC2834*
ID_OUI_FROM_DATABASE=HAKKO Corporation
OUI:DC9FDB*
ID_OUI_FROM_DATABASE=Ubiquiti Networks Inc.
+OUI:DCA120*
+ ID_OUI_FROM_DATABASE=Nokia
+
OUI:DCA266*
ID_OUI_FROM_DATABASE=Hon Hai Precision Ind. Co.,Ltd.
OUI:DCCD2F*
ID_OUI_FROM_DATABASE=Seiko Epson Corporation
+OUI:DCCD74*
+ ID_OUI_FROM_DATABASE=Japan E.M.Solutions Co., Ltd.
+
OUI:DCCE41*
ID_OUI_FROM_DATABASE=FE GLOBAL HONG KONG LIMITED
OUI:DCD52A*
ID_OUI_FROM_DATABASE=Sunny Heart Limited
+OUI:DCD7A0*
+ ID_OUI_FROM_DATABASE=Huawei Device Co., Ltd.
+
OUI:DCD87C*
ID_OUI_FROM_DATABASE=Beijing Jingdong Century Trading Co., LTD.
OUI:E0286D*
ID_OUI_FROM_DATABASE=AVM Audiovisuelles Marketing und Computersysteme GmbH
+OUI:E02967*
+ ID_OUI_FROM_DATABASE=HMD Global Oy
+
OUI:E02A82*
ID_OUI_FROM_DATABASE=Universal Global Scientific Industrial Co., Ltd.
OUI:E02CF3*
ID_OUI_FROM_DATABASE=MRS Electronic GmbH
+OUI:E02E3F*
+ ID_OUI_FROM_DATABASE=Huawei Device Co., Ltd.
+
OUI:E02F6D*
ID_OUI_FROM_DATABASE=Cisco Systems, Inc
OUI:E4268B*
ID_OUI_FROM_DATABASE=Huawei Device Co., Ltd.
+OUI:E42761*
+ ID_OUI_FROM_DATABASE=Honor Device Co., Ltd.
+
OUI:E42771*
ID_OUI_FROM_DATABASE=Smartlabs
OUI:E4BEED*
ID_OUI_FROM_DATABASE=Netcore Technology Inc.
+OUI:E4BFFA*
+ ID_OUI_FROM_DATABASE=Technicolor CH USA Inc.
+
OUI:E4C0CC*
ID_OUI_FROM_DATABASE=China Mobile Group Device Co.,Ltd.
OUI:E8D11B*
ID_OUI_FROM_DATABASE=ASKEY COMPUTER CORP
+OUI:E8D2FF*
+ ID_OUI_FROM_DATABASE=Sagemcom Broadband SAS
+
OUI:E8D483*
ID_OUI_FROM_DATABASE=ULTIMATE Europe Transportation Equipment GmbH
OUI:E8F2E3*
ID_OUI_FROM_DATABASE=Starcor Beijing Co.,Limited
+OUI:E8F408*
+ ID_OUI_FROM_DATABASE=Intel Corporate
+
OUI:E8F724*
ID_OUI_FROM_DATABASE=Hewlett Packard Enterprise
OUI:EC753E*
ID_OUI_FROM_DATABASE=HUAWEI TECHNOLOGIES CO.,LTD
+OUI:EC75ED*
+ ID_OUI_FROM_DATABASE=Citrix Systems, Inc.
+
OUI:EC7949*
ID_OUI_FROM_DATABASE=FUJITSU LIMITED
OUI:ECBD1D*
ID_OUI_FROM_DATABASE=Cisco Systems, Inc
+OUI:ECBE5F*
+ ID_OUI_FROM_DATABASE=Vestel Elektronik San ve Tic. A.Ş.
+
OUI:ECBEDD*
ID_OUI_FROM_DATABASE=Sagemcom Broadband SAS
OUI:F0421C*
ID_OUI_FROM_DATABASE=Intel Corporate
+OUI:F042F5*
+ ID_OUI_FROM_DATABASE=Huawei Device Co., Ltd.
+
OUI:F04335*
ID_OUI_FROM_DATABASE=DVN(Shanghai)Ltd.
OUI:F0FE6B*
ID_OUI_FROM_DATABASE=Shanghai High-Flying Electronics Technology Co., Ltd
+OUI:F0FEE7*
+ ID_OUI_FROM_DATABASE=Huawei Device Co., Ltd.
+
OUI:F40270*
ID_OUI_FROM_DATABASE=Dell Inc.
OUI:F4B164*
ID_OUI_FROM_DATABASE=Lightning Telecommunications Technology Co. Ltd
+OUI:F4B301*
+ ID_OUI_FROM_DATABASE=Intel Corporate
+
OUI:F4B381*
ID_OUI_FROM_DATABASE=WindowMaster A/S
OUI:FC0A81*
ID_OUI_FROM_DATABASE=Extreme Networks, Inc.
+OUI:FC0C45*
+ ID_OUI_FROM_DATABASE=Shenzhen SuperElectron Technology Co.,Ltd.
+
OUI:FC0F4B*
ID_OUI_FROM_DATABASE=Texas Instruments
acpi:USR*:
ID_VENDOR_FROM_DATABASE=U.S. Robotics Inc
+acpi:UTC*:
+ ID_VENDOR_FROM_DATABASE=Unicompute Technology Co., Ltd.
+
acpi:UTD*:
ID_VENDOR_FROM_DATABASE=Up to Date Tech
---- 20-acpi-vendor.hwdb.base 2020-10-13 09:40:27.449819401 +0200
-+++ 20-acpi-vendor.hwdb 2020-10-13 09:40:27.464819680 +0200
+--- 20-acpi-vendor.hwdb.base 2020-11-10 14:13:39.257693009 +0100
++++ 20-acpi-vendor.hwdb 2020-11-10 14:13:39.264693047 +0100
@@ -3,6 +3,8 @@
# Data imported from:
# https://uefi.org/uefi-pnp-export
acpi:USD*:
ID_VENDOR_FROM_DATABASE=U.S. Digital Corporation
-@@ -7354,9 +7422,6 @@
+@@ -7357,9 +7425,6 @@
acpi:WAL*:
ID_VENDOR_FROM_DATABASE=Wave Access
acpi:WAV*:
ID_VENDOR_FROM_DATABASE=Wavephore
-@@ -7481,7 +7546,7 @@
+@@ -7484,7 +7549,7 @@
ID_VENDOR_FROM_DATABASE=WyreStorm Technologies LLC
acpi:WYS*:
acpi:WYT*:
ID_VENDOR_FROM_DATABASE=Wooyoung Image & Information Co.,Ltd.
-@@ -7495,9 +7560,6 @@
+@@ -7498,9 +7563,6 @@
acpi:XDM*:
ID_VENDOR_FROM_DATABASE=XDM Ltd.
acpi:XES*:
ID_VENDOR_FROM_DATABASE=Extreme Engineering Solutions, Inc.
-@@ -7528,9 +7590,6 @@
+@@ -7531,9 +7593,6 @@
acpi:XNT*:
ID_VENDOR_FROM_DATABASE=XN Technologies, Inc.
acpi:XQU*:
ID_VENDOR_FROM_DATABASE=SHANGHAI SVA-DAV ELECTRONICS CO., LTD
-@@ -7597,6 +7656,9 @@
+@@ -7600,6 +7659,9 @@
acpi:ZBX*:
ID_VENDOR_FROM_DATABASE=Zebax Technologies
pci:v00001000d000000AFsv00001D49sd00000204*
ID_MODEL_FROM_DATABASE=SAS3408 Fusion-MPT Tri-Mode I/O Controller Chip (IOC) (ThinkSystem 430-8i SAS/SATA 12Gb Dense HBA)
+pci:v00001000d000000B2*
+ ID_MODEL_FROM_DATABASE=PEX880xx PCIe Gen 4 Switch SES management endpoint
+
pci:v00001000d000000BE*
ID_MODEL_FROM_DATABASE=SAS3504 Fusion-MPT Tri-Mode RAID On Chip (ROC)
pci:v00001002d000067EF*
ID_MODEL_FROM_DATABASE=Baffin [Radeon RX 460/560D / Pro 450/455/460/555/555X/560/560X]
+pci:v00001002d000067EFsv00001025sd00001367*
+ ID_MODEL_FROM_DATABASE=Baffin [Radeon RX 460/560D / Pro 450/455/460/555/555X/560/560X] (RX560X 4GB)
+
pci:v00001002d000067EFsv00001028sd00001703*
ID_MODEL_FROM_DATABASE=Baffin [Radeon RX 460/560D / Pro 450/455/460/555/555X/560/560X] (RX 560D OEM OC 2 GB)
pci:v00001002d00007360*
ID_MODEL_FROM_DATABASE=Navi 12 [Radeon Pro 5600M]
+pci:v00001002d000073BF*
+ ID_MODEL_FROM_DATABASE=Navi 21 [Radeon RX 6900 Series]
+
+pci:v00001002d000073C3*
+ ID_MODEL_FROM_DATABASE=Navi 23
+
+pci:v00001002d000073DF*
+ ID_MODEL_FROM_DATABASE=Navi 22
+
pci:v00001002d00007833*
ID_MODEL_FROM_DATABASE=RS350 Host Bridge
pci:v000010DEd00001402*
ID_MODEL_FROM_DATABASE=GM206 [GeForce GTX 950]
+pci:v000010DEd00001404*
+ ID_MODEL_FROM_DATABASE=GM206 [GeForce GTX 960 FAKE]
+
pci:v000010DEd00001406*
ID_MODEL_FROM_DATABASE=GM206 [GeForce GTX 960 OEM]
pci:v000010DEd00001C35*
ID_MODEL_FROM_DATABASE=GP106
+pci:v000010DEd00001C36*
+ ID_MODEL_FROM_DATABASE=GP106
+
pci:v000010DEd00001C60*
ID_MODEL_FROM_DATABASE=GP106BM [GeForce GTX 1060 Mobile 6GB]
pci:v000010DEd000020B0*
ID_MODEL_FROM_DATABASE=GA100 [A100 SXM4 40GB]
+pci:v000010DEd000020B1*
+ ID_MODEL_FROM_DATABASE=GA100 [A100 PCIe 40GB]
+
pci:v000010DEd000020BE*
ID_MODEL_FROM_DATABASE=GA100 [GRID A100A]
ID_MODEL_FROM_DATABASE=GA104 [GeForce RTX 3070 Ti]
pci:v000010DEd00002484*
- ID_MODEL_FROM_DATABASE=GA104 [GeForce RTX 3070]
+ ID_MODEL_FROM_DATABASE=GA104 [GeForce RTX 3070 8GB / 16GB]
+
+pci:v000010DEd00002484sv000010DEsd0000146B*
+ ID_MODEL_FROM_DATABASE=GA104 [GeForce RTX 3070 8GB / 16GB] (GA104 [GeForce RTX 3070])
+
+pci:v000010DEd00002484sv000010DEsd000014AE*
+ ID_MODEL_FROM_DATABASE=GA104 [GeForce RTX 3070 8GB / 16GB] (GA104 [GeForce RTX 3070 16GB])
pci:v000010DEd00002486*
ID_MODEL_FROM_DATABASE=GA104 [GeForce RTX 3060 Ti]
pci:v000010DEd0000249C*
- ID_MODEL_FROM_DATABASE=GA104M [GeForce RTX 3070 Mobile]
+ ID_MODEL_FROM_DATABASE=GA104M [GeForce RTX 3070 Mobile / Max-Q]
pci:v000010DEd0000249D*
ID_MODEL_FROM_DATABASE=GA104M [GeForce RTX 3070 Mobile / Max-Q]
+pci:v000010DEd000024AC*
+ ID_MODEL_FROM_DATABASE=GA104 [GeForce RTX 30x0 Engineering Sample]
+
+pci:v000010DEd000024AD*
+ ID_MODEL_FROM_DATABASE=GA104 [GeForce RTX 3060 Engineering Sample]
+
pci:v000010DEd000024AF*
ID_MODEL_FROM_DATABASE=GA104 [GeForce RTX 3070 Engineering Sample]
pci:v000010DEd000024BF*
ID_MODEL_FROM_DATABASE=GA104 [GeForce RTX 3070 Engineering Sample]
+pci:v000010DEd000024DC*
+ ID_MODEL_FROM_DATABASE=GA104 [GeForce RTX 3070 16GB Engineering Sample]
+
pci:v000010DEd0000252F*
ID_MODEL_FROM_DATABASE=GA106 [GeForce RTX 3060 Engineering Sample]
+pci:v000010DEd000025AF*
+ ID_MODEL_FROM_DATABASE=GA107 [GeForce RTX 3050 Engineering Sample]
+
pci:v000010DF*
ID_VENDOR_FROM_DATABASE=Emulex Corporation
pci:v00001137d00000042sv00001137sd0000014D*
ID_MODEL_FROM_DATABASE=VIC Management Controller (VIC 1385 PCIe Management Controller)
+pci:v00001137d00000042sv00001137sd00000217*
+ ID_MODEL_FROM_DATABASE=VIC Management Controller (VIC 1455 PCIe Management Controller)
+
+pci:v00001137d00000042sv00001137sd00000218*
+ ID_MODEL_FROM_DATABASE=VIC Management Controller (VIC 1457 PCIe Management Controller)
+
pci:v00001137d00000043*
ID_MODEL_FROM_DATABASE=VIC Ethernet NIC
pci:v0000125Bd00001400sv00001186sd00001100*
ID_MODEL_FROM_DATABASE=AX88141 Fast Ethernet Controller (AX8814X Based PCI Fast Ethernet Adapter)
+pci:v0000125Bd00009100*
+ ID_MODEL_FROM_DATABASE=AX99100 PCIe to Multi I/O Controller
+
+pci:v0000125Bd00009100sv0000A000sd00001000*
+ ID_MODEL_FROM_DATABASE=AX99100 PCIe to Multi I/O Controller (Serial Port)
+
+pci:v0000125Bd00009100sv0000A000sd00002000*
+ ID_MODEL_FROM_DATABASE=AX99100 PCIe to Multi I/O Controller (Parallel Port)
+
+pci:v0000125Bd00009100sv0000A000sd00006000*
+ ID_MODEL_FROM_DATABASE=AX99100 PCIe to Multi I/O Controller (SPI)
+
+pci:v0000125Bd00009100sv0000A000sd00007000*
+ ID_MODEL_FROM_DATABASE=AX99100 PCIe to Multi I/O Controller (Local Bus)
+
pci:v0000125C*
ID_VENDOR_FROM_DATABASE=Aurora Technologies, Inc.
ID_MODEL_FROM_DATABASE=WD Black NVMe SSD
pci:v000015B7d00005002*
- ID_MODEL_FROM_DATABASE=WD Black 2018/PC SN720 NVMe SSD
+ ID_MODEL_FROM_DATABASE=WD Black 2018 / PC SN720 NVMe SSD
pci:v000015B7d00005003*
- ID_MODEL_FROM_DATABASE=WD Black 2018/PC SN520 NVMe SSD
+ ID_MODEL_FROM_DATABASE=WD Black 2018 / PC SN520 NVMe SSD
+
+pci:v000015B7d00005006*
+ ID_MODEL_FROM_DATABASE=WD Black 2019/PC SN750 NVMe SSD
+
+pci:v000015B7d00005009*
+ ID_MODEL_FROM_DATABASE=WD Blue SN550 NVMe SSD
+
+pci:v000015B7d00005009sv000015B7sd00005009*
+ ID_MODEL_FROM_DATABASE=WD Blue SN550 NVMe SSD
pci:v000015B8*
ID_VENDOR_FROM_DATABASE=ADDI-DATA GmbH
pci:v00001974d00000011*
ID_MODEL_FROM_DATABASE=FlexCard PMC-II Ethernet
+pci:v00001974d00000018*
+ ID_MODEL_FROM_DATABASE=FlexCard PXIe3
+
+pci:v00001974d00000019*
+ ID_MODEL_FROM_DATABASE=FlexCard PCIe3
+
pci:v00001976*
ID_VENDOR_FROM_DATABASE=TRENDnet
pci:v00001C5Cd00001504*
ID_MODEL_FROM_DATABASE=SC300 512GB M.2 2280 SATA Solid State Drive
+pci:v00001C5Cd0000243B*
+ ID_MODEL_FROM_DATABASE=PE6110 NVMe Solid State Drive
+
+pci:v00001C5Cd0000243Bsv00001C5Csd00000100*
+ ID_MODEL_FROM_DATABASE=PE6110 NVMe Solid State Drive
+
pci:v00001C5Cd00002839*
ID_MODEL_FROM_DATABASE=PE8000 Series NVMe Solid State Drive
-pci:v00001C5Cd00002839sv00000100sd00001C5C*
+pci:v00001C5Cd00002839sv00001C5Csd00000100*
ID_MODEL_FROM_DATABASE=PE8000 Series NVMe Solid State Drive
pci:v00001C5F*
ID_VENDOR_FROM_DATABASE=GSI Technology
pci:v00001E4Cd00000010*
- ID_MODEL_FROM_DATABASE=Gemini [ Lida ]
+ ID_MODEL_FROM_DATABASE=APU [Leda-G]
pci:v00001E4Cd00000010sv00001E4Csd00000120*
- ID_MODEL_FROM_DATABASE=Gemini [ Lida ] (SE120)
+ ID_MODEL_FROM_DATABASE=APU [Leda-G] (SE120)
pci:v00001E57*
ID_VENDOR_FROM_DATABASE=Beijing Panyi Technology Co., Ltd
pci:v00001E6B*
ID_VENDOR_FROM_DATABASE=Axiado Corp.
+pci:v00001E7B*
+ ID_VENDOR_FROM_DATABASE=Dataland
+
pci:v00001E7C*
ID_VENDOR_FROM_DATABASE=Brainchip Inc
pci:v00001E95*
ID_VENDOR_FROM_DATABASE=Solid State Storage Technology Corporation
+pci:v00001EAE*
+ ID_VENDOR_FROM_DATABASE=XFX Limited
+
pci:v00001EB1*
ID_VENDOR_FROM_DATABASE=VeriSilicon Inc
pci:v00008086d000015F3*
ID_MODEL_FROM_DATABASE=Ethernet Controller I225-V
+pci:v00008086d000015F3sv00008086sd00000003*
+ ID_MODEL_FROM_DATABASE=Ethernet Controller I225-V (Intel(R) Ethernet Controller (3) I225-V)
+
pci:v00008086d000015F4*
ID_MODEL_FROM_DATABASE=Ethernet Connection (15) I219-LM
pci:v00008086d00001889*
ID_MODEL_FROM_DATABASE=Ethernet Adaptive Virtual Function
+pci:v00008086d00001890*
+ ID_MODEL_FROM_DATABASE=Ethernet Connection E822-C for backplane
+
+pci:v00008086d00001891*
+ ID_MODEL_FROM_DATABASE=Ethernet Connection E822-C for QSFP
+
+pci:v00008086d00001892*
+ ID_MODEL_FROM_DATABASE=Ethernet Connection E822-C for SFP
+
+pci:v00008086d00001893*
+ ID_MODEL_FROM_DATABASE=Ethernet Connection E822-C/X557-AT 10GBASE-T
+
+pci:v00008086d00001894*
+ ID_MODEL_FROM_DATABASE=Ethernet Connection E822-C 1GbE
+
+pci:v00008086d00001897*
+ ID_MODEL_FROM_DATABASE=Ethernet Connection E822-L for backplane
+
+pci:v00008086d00001898*
+ ID_MODEL_FROM_DATABASE=Ethernet Connection E822-L for SFP
+
+pci:v00008086d00001899*
+ ID_MODEL_FROM_DATABASE=Ethernet Connection E822-L/X557-AT 10GBASE-T
+
+pci:v00008086d0000189A*
+ ID_MODEL_FROM_DATABASE=Ethernet Connection E822-L 1GbE
+
pci:v00008086d000018A0*
ID_MODEL_FROM_DATABASE=C4xxx Series QAT
pci:v00008086d00003E34*
ID_MODEL_FROM_DATABASE=Coffee Lake HOST and DRAM Controller
+pci:v00008086d00003E35*
+ ID_MODEL_FROM_DATABASE=Coffee Lake Host Bridge/DRAM Registers
+
pci:v00008086d00003E81*
ID_MODEL_FROM_DATABASE=8th Gen Core Processor PCIe Controller (x16)
pci:v00009005d0000028Fsv0000152Dsd00008A37*
ID_MODEL_FROM_DATABASE=Smart Storage PQI SAS (QS-8242-24i)
+pci:v00009005d0000028Fsv0000193Dsd00001104*
+ ID_MODEL_FROM_DATABASE=Smart Storage PQI SAS (RAID P2404-Mf-4i-2GB)
+
+pci:v00009005d0000028Fsv0000193Dsd00001105*
+ ID_MODEL_FROM_DATABASE=Smart Storage PQI SAS (RAID P4408-Mf-8i-2GB)
+
+pci:v00009005d0000028Fsv0000193Dsd00001106*
+ ID_MODEL_FROM_DATABASE=Smart Storage PQI SAS (RAID P2404-Mf-4i-1GB)
+
+pci:v00009005d0000028Fsv0000193Dsd00001107*
+ ID_MODEL_FROM_DATABASE=Smart Storage PQI SAS (RAID P4408-Mf-8i-4GB)
+
pci:v00009005d0000028Fsv0000193Dsd00008460*
ID_MODEL_FROM_DATABASE=Smart Storage PQI SAS (HBA H460-M1)
pci:v00009005d0000028Fsv00009005sd00000807*
ID_MODEL_FROM_DATABASE=Smart Storage PQI SAS (SmartRAID 3162-8i)
+pci:v00009005d0000028Fsv00009005sd00000808*
+ ID_MODEL_FROM_DATABASE=Smart Storage PQI SAS (SmartRAID 3101E-4i)
+
+pci:v00009005d0000028Fsv00009005sd00000809*
+ ID_MODEL_FROM_DATABASE=Smart Storage PQI SAS (SmartRAID 3102E-8i)
+
pci:v00009005d0000028Fsv00009005sd00000900*
ID_MODEL_FROM_DATABASE=Smart Storage PQI SAS (SmartHBA 2100-8i)
pci:v00009005d0000028Fsv00009005sd00001281*
ID_MODEL_FROM_DATABASE=Smart Storage PQI SAS (HBA 1100-16e)
+pci:v00009005d0000028Fsv00009005sd00001282*
+ ID_MODEL_FROM_DATABASE=Smart Storage PQI SAS (SmartHBA 2100-16i)
+
pci:v00009005d0000028Fsv00009005sd00001300*
ID_MODEL_FROM_DATABASE=Smart Storage PQI SAS (HBA 1100-8i8e)
pci:v00009D32d00001204*
ID_MODEL_FROM_DATABASE=STAR1200E NVMe SSD
+pci:v0000A000*
+ ID_VENDOR_FROM_DATABASE=Asix Electronics Corporation (Wrong ID)
+
pci:v0000A0A0*
ID_VENDOR_FROM_DATABASE=AOPEN Inc.
# Match string formats:
# <subsystem>:<modalias>
#
-# pci:v<vendor>d<device>:
-# usb:v<vendor>p<product>:
+# pci:v<vendor>d<device>
+# usb:v<vendor>p<product>
#
# To add local entries, create a new file
# /etc/udev/hwdb.d/61-autosuspend-local.hwdb
#
# Allowed properties are:
# ID_AUTOSUSPEND=1
-#
-# All matches should end in ':*' to allow future expansions of the match key.
# Sort by brand, model
#########################################
# AU9540 Smartcard Reader
-usb:v058Fp9540:*
+usb:v058Fp9540*
ID_AUTOSUSPEND=1
#########################################
#########################################
# X1C8 Touchscreen
-usb:v04F3p2B7C:*
+usb:v04F3p2B7C*
# T14 Gen 1 Touchscreen
-usb:v04F3p2ACC:*
+usb:v04F3p2ACC*
ID_AUTOSUSPEND=1
#########################################
#########################################
# Emulated USB HID devices
-usb:v0627p0001:*QEMU USB Keyboard*:*
-usb:v0627p0001:*QEMU USB Mouse*:*
-usb:v0627p0001:*QEMU USB Tablet*:*
+usb:v0627p0001:*QEMU USB Keyboard*
+usb:v0627p0001:*QEMU USB Mouse*
+usb:v0627p0001:*QEMU USB Tablet*
ID_AUTOSUSPEND=1
#########################################
# Wacom
#########################################
-usb:v056Ap51A0:*
+usb:v056Ap51A0*
ID_AUTOSUSPEND=1
# the struct input_absinfo as listed in linux/input.h. If a field is missing
# the field will be left as-is. Not all fields need to be present. e.g. ::45
# sets the resolution to 45 units/mm.
-#
-# All matches should end in ':*' to allow future expansions of the match key.
# Sort by brand, model
#########################################
# Hyperpen 12000U
-evdev:input:b0003v08CAp0010:*
+evdev:input:b0003v08CAp0010*
# Hyperpen 6000U
-evdev:input:b0003v08CAp0020:*
+evdev:input:b0003v08CAp0020*
EVDEV_ABS_00=::20
EVDEV_ABS_01=::20
#########################################
# Macbook2,1 (late 2006), single-button touchpad
-evdev:input:b0003v05ACp021B:*
+evdev:input:b0003v05ACp021B*
# Macbook4,1
-evdev:input:b0003v05ACp0229:*
-evdev:input:b0003v05ACp022A:*
+evdev:input:b0003v05ACp0229*
+evdev:input:b0003v05ACp022A*
EVDEV_ABS_00=256:1471:12
EVDEV_ABS_01=256:831:12
# Macbook5,1 (unibody), aka wellspring3
-evdev:input:b0003v05ACp0236:*
-evdev:input:b0003v05ACp0237:*
-evdev:input:b0003v05ACp0238:*
+evdev:input:b0003v05ACp0236*
+evdev:input:b0003v05ACp0237*
+evdev:input:b0003v05ACp0238*
EVDEV_ABS_00=::92
EVDEV_ABS_01=::90
EVDEV_ABS_35=::92
EVDEV_ABS_36=::90
# Macbook8 (unibody, March 2011)
-evdev:input:b0003v05ACp0245:*
-evdev:input:b0003v05ACp0246:*
-evdev:input:b0003v05ACp0247:*
+evdev:input:b0003v05ACp0245*
+evdev:input:b0003v05ACp0246*
+evdev:input:b0003v05ACp0247*
EVDEV_ABS_00=::92
EVDEV_ABS_01=::91
EVDEV_ABS_35=::92
EVDEV_ABS_36=::91
# Macbook8,2 (unibody)
-evdev:input:b0003v05ACp0252:*
-evdev:input:b0003v05ACp0253:*
-evdev:input:b0003v05ACp0254:*
+evdev:input:b0003v05ACp0252*
+evdev:input:b0003v05ACp0253*
+evdev:input:b0003v05ACp0254*
EVDEV_ABS_00=::94
EVDEV_ABS_01=::92
EVDEV_ABS_35=::94
EVDEV_ABS_36=::92
# MacbookPro10,1 (unibody, June 2012)
-evdev:input:b0003v05ACp0262:*
-evdev:input:b0003v05ACp0263:*
-evdev:input:b0003v05ACp0264:*
+evdev:input:b0003v05ACp0262*
+evdev:input:b0003v05ACp0263*
+evdev:input:b0003v05ACp0264*
# MacbookPro10,2 (unibody, October 2012)
-evdev:input:b0003v05ACp0259:*
-evdev:input:b0003v05ACp025A:*
-evdev:input:b0003v05ACp025B:*
+evdev:input:b0003v05ACp0259*
+evdev:input:b0003v05ACp025A*
+evdev:input:b0003v05ACp025B*
EVDEV_ABS_00=::94
EVDEV_ABS_01=::92
EVDEV_ABS_35=::94
#####
# Fujitsu Component - USB Touch Panel
-evdev:input:b0003v0430p0530:*
+evdev:input:b0003v0430p0530*
EVDEV_ABS_00=0:4096:16
EVDEV_ABS_01=0:4096:16
EVDEV_ABS_36=::19
# Lenovo Thinkpad X1 Tablet Gen3
-evdev:input:b0003v17EFp60B5:*
+evdev:input:b0003v17EFp60B5*
EVDEV_ABS_00=::12
EVDEV_ABS_01=::11
EVDEV_ABS_35=::12
#########################################
# Trust Flex Graphics Tablet
-evdev:input:b0003v2179p0004:*
+evdev:input:b0003v2179p0004*
EVDEV_ABS_00=::234
EVDEV_ABS_01=::328
#########################################
# WALTOP International Corp. Slim Tablet
-evdev:input:b0003v172Fp0031:*
+evdev:input:b0003v172Fp0031*
EVDEV_ABS_00=0:10000:400
EVDEV_ABS_01=0:6250:400
#WALTOP International Corp. Graphics Tablet
-evdev:input:b0003v172Fp0047:*
+evdev:input:b0003v172Fp0047*
EVDEV_ABS_00=0:20000:80
EVDEV_ABS_01=0:12500:80
# ABI.
#
# Match string formats:
-# id-input:modalias:<modalias pattern>
+# id-input:modalias:<modalias>
#
# To add local entries, create a new file
# /etc/udev/hwdb.d/61-input-id-local.hwdb
# NOT allowed in this file are:
# ID_INPUT_WIDTH_MM, ID_INPUT_HEIGHT_MM, ID_INPUT_TOUCHPAD_INTEGRATION
#
-# All matches should end in ':*' to allow future expansions of the match key.
# Example:
-# id-input:modalias:input:b0003v1234pABCD:*
+# id-input:modalias:input:b0003v1234pABCD*
# ID_INPUT_TOUCHPAD=1
# ID_INPUT=1
# Sort by brand, model
# UC-Logic TABLET 1060N Pad
-id-input:modalias:input:b0003v5543p0081:*
+id-input:modalias:input:b0003v5543p0081*
ID_INPUT_TABLET=1
ID_INPUT_TABLET_PAD=1
# XP-PEN STAR 06
-id-input:modalias:input:b0003v28bdp0078:*
+id-input:modalias:input:b0003v28bdp0078*
ID_INPUT_TABLET=1
# Lite-On Tech IBM USB Travel Keyboard with Ultra Nav Mouse
-id-input:modalias:input:b0003v04B3p301Ee0100-e0,1,2,4*:*
+id-input:modalias:input:b0003v04B3p301Ee0100-e0,1,2,4*
ID_INPUT_POINTINGSTICK=1
# Logitech Ultrathin Touch Mouse
-id-input:modalias:input:b0005v046DpB00De0700:*
+id-input:modalias:input:b0005v046DpB00De0700*
ID_INPUT_MOUSE=1
# /sys/class/input/input?/capabilities/ev" and <vendor> is the
# firmware-provided string exported by the kernel DMI modalias,
# see /sys/class/dmi/id/modalias
-#
-# All matches should end in ':*' to allow future expansions of the match key.
# ######################### KEY MAPPING ######################################
#
KEYBOARD_KEY_6b=f21 # Touchpad Toggle
# USB keyboard in Asus FX503VD
-evdev:input:b0003v0B05p1869:*
+evdev:input:b0003v0B05p1869*
KEYBOARD_KEY_ff31007c=f20 # Remap micmute to f20
###########################################################
KEYBOARD_KEY_9e=email
KEYBOARD_KEY_9f=homepage
-evdev:input:b0003v049Fp0051:*
+evdev:input:b0003v049Fp0051*
KEYBOARD_KEY_0c0011=presentation
KEYBOARD_KEY_0c0012=addressbook
KEYBOARD_KEY_0c0013=info
###########################################################
# Slimstar 320
-evdev:input:b0003v0458p0708:*
+evdev:input:b0003v0458p0708*
KEYBOARD_KEY_0900f0=scrollup
KEYBOARD_KEY_0900f1=scrolldown
KEYBOARD_KEY_0900f3=back
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnHP*:pnHPZBook*:*
KEYBOARD_KEY_81=f20 # Fn+F8; Microphone mute button, should be micmute
+# HP ZBook Studio G5
+evdev:atkbd:dmi:bvn*:bvr*:bd*:svnHP*:pnHPZBookStudioG5*:*
+ KEYBOARD_KEY_64=calendar # Calendar icon (Fn + F12)
+ KEYBOARD_KEY_6d=displaytoggle # Display icon
+ KEYBOARD_KEY_66=connect # Pickup phone button → connect → XF86Go
+ KEYBOARD_KEY_65=cancel # Hangup phone button → cancel → Cancel
+
# HP ZBook 15 G2
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnHewlett-Packard*:pnHPZBook15G2:*
KEYBOARD_KEY_f8=wlan # Wireless HW switch button
KEYBOARD_KEY_17=prog1 # ThinkPad/ThinkVantage button (high keycode: "vendor")
# IBM Thinkpad USB Keyboard Trackpoint
-evdev:input:b0003v04B3p301[89]:*
+evdev:input:b0003v04B3p301[89]*
KEYBOARD_KEY_900f0=screenlock
KEYBOARD_KEY_900f1=wlan
KEYBOARD_KEY_900f2=switchvideomode
KEYBOARD_KEY_45=bookmarks
# ThinkPad Keyboard with TrackPoint
-evdev:input:b0003v17EFp6009:*
+evdev:input:b0003v17EFp6009*
KEYBOARD_KEY_090012=screenlock # Fn+F2
KEYBOARD_KEY_090013=battery # Fn+F3
KEYBOARD_KEY_090014=wlan # Fn+F5
KEYBOARD_KEY_00=f20
# enhanced USB keyboard
-evdev:input:b0003v04B3p301B:*
+evdev:input:b0003v04B3p301B*
KEYBOARD_KEY_90001=prog1 # ThinkVantage
KEYBOARD_KEY_90002=screenlock
KEYBOARD_KEY_90003=file
# 27MHz wireless keyboards, these all have a PID of 00?? and all send c10xx
# logitech custom consumer usage-page codes. The mappings below are the most
# common, but some mapping may differ, especially the Fn F1-F12 mappings
-evdev:input:b0003v046Dp00??:*
+evdev:input:b0003v046Dp00*
KEYBOARD_KEY_c0183=media # HUT:config, kbd:Media/Music player button
KEYBOARD_KEY_c1001=chat # Messenger button
KEYBOARD_KEY_c1002=camera # Webcam button
KEYBOARD_KEY_c104c=prog4 # Smartkey D (Fn + F12) → XF86Launch4
# Cordless Access Keyboard (27 MHz, modelnumber Y-RH35)
-evdev:input:b0003v046Dp0042:*
+evdev:input:b0003v046Dp0042*
KEYBOARD_KEY_c1041=new
KEYBOARD_KEY_c1042=reply
KEYBOARD_KEY_c1043=forward
KEYBOARD_KEY_c104c=audio
# "Cordless Rechargeable Desktop" keyboard (27 MHz, modelnumber Y-RK49)
-evdev:input:b0003v046Dp0045:*
+evdev:input:b0003v046Dp0045*
KEYBOARD_KEY_c1041=new
KEYBOARD_KEY_c1042=reply
KEYBOARD_KEY_c1043=forward
KEYBOARD_KEY_c104c=audio
# S510 keyboard (27 MHz, modelnumber Y-RAK73)
-evdev:input:b0003v046Dp0056:*
+evdev:input:b0003v046Dp0056*
KEYBOARD_KEY_c1041=battery # Battery icon (Fn + F1)
# MX3000 keyboard (27 MHz, modelnumber Y-RAM74)
# Note if the "Special Button Function" in the HID++ features register gets
# cleared then the scroll-wheel events for these buttons go away and then
# tilting the scrollwheel left/right starts sending c1022 / c1024 events
-evdev:input:b0003v046Dp0057:*
+evdev:input:b0003v046Dp0057*
KEYBOARD_KEY_c1041=battery # Battery icon (Fn + F1)
#KEYBOARD_KEY_c101d=scrolldown # Button below scrollwheel (see note above)
#KEYBOARD_KEY_c1024=scrollright # Right click on scroll-wheel (see note above)
# MX3200 keyboard (27 MHz, modelnumber Y-RAV80)
-evdev:input:b0003v046Dp005C:*
+evdev:input:b0003v046Dp005C*
KEYBOARD_KEY_c1001=phone # VOIP button
KEYBOARD_KEY_c1016=record # Record button
KEYBOARD_KEY_c1041=wordprocessor # Word icon (Fn + F1)
KEYBOARD_KEY_c1048=prog4 # Smartkey D (Fn + F8) → XF86Launch4
# EX100 keyboard (27 MHz, modelnumber Y-RBH94)
-evdev:input:b0003v046Dp0065:*
+evdev:input:b0003v046Dp0065*
KEYBOARD_KEY_c104b=battery # Battery icon (Fn + F11)
KEYBOARD_KEY_c104c=ejectcd # Eject icon (Fn + F12)
# S520 keyboard (27 MHz, modelnumber Y-RBA97)
# Note this one uses non-standard codes for FN + F9 - Fn + F12?
-evdev:input:b0003v046Dp0066:*
+evdev:input:b0003v046Dp0066*
KEYBOARD_KEY_c100e=prog4 # Smartkey D (Fn + F12) → XF86Launch4
KEYBOARD_KEY_c1019=prog1 # Smartkey A (Fn + F9) → XF86Launch1
KEYBOARD_KEY_c101a=prog2 # Smartkey B (Fn + F10) → XF86Launch2
KEYBOARD_KEY_c106f=battery # Battery icon
# S510 remote control (27 MHz)
-evdev:input:b0003v046Dp00FE:*
+evdev:input:b0003v046Dp00FE*
KEYBOARD_KEY_c1018=media # Media button
# MX5000 keyboard (HID proxy mode and bluetooth matches)
-evdev:input:b0003v046DpB305:*
-evdev:input:b0005v046DpB305:*
+evdev:input:b0003v046DpB305*
+evdev:input:b0005v046DpB305*
KEYBOARD_KEY_c0230=zoomreset # HUT says fullscreen, kbd says 100%
KEYBOARD_KEY_c1004=send # Send and receive / sync button
KEYBOARD_KEY_c1006=coffee # Status (online/away) button
KEYBOARD_KEY_c103b=prog4 # Smartkey D → XF86Launch4
# MX5500 keyboard (HID proxy mode and bluetooth matches)
-evdev:input:b0003v046DpB30B:*
-evdev:input:b0005v046DpB30B:*
+evdev:input:b0003v046DpB30B*
+evdev:input:b0005v046DpB30B*
KEYBOARD_KEY_c0183=media # HUT says consumer control configuration, kbd says Media Center
KEYBOARD_KEY_c100e=images # Camera icon, "Photo Gallery"
KEYBOARD_KEY_c100f=config # Window with gear icon
KEYBOARD_KEY_c103b=prog4 # Smartkey D → XF86Launch4
# Logitech K811
-evdev:input:b0005v046DpB317:*
+evdev:input:b0005v046DpB317*
KEYBOARD_KEY_70047=brightnessdown
KEYBOARD_KEY_70048=brightnessup
# iTouch
-evdev:input:b0003v046DpC308:*
+evdev:input:b0003v046DpC308*
KEYBOARD_KEY_90001=shop # Shopping
KEYBOARD_KEY_90002=config # iTouch
KEYBOARD_KEY_90003=finance # Finance
KEYBOARD_KEY_c0183=media # Media
# Cordless Desktop S510
-evdev:input:b0003v046DpC50C:*
+evdev:input:b0003v046DpC50C*
KEYBOARD_KEY_d4=up # zoomin
KEYBOARD_KEY_cc=down # zoomout
# Wave cordless
-evdev:input:b0003v046DpC317:*
+evdev:input:b0003v046DpC317*
KEYBOARD_KEY_9001c=scale # expo
KEYBOARD_KEY_9001f=down # zoomout
KEYBOARD_KEY_90020=up # zoomin
KEYBOARD_KEY_9004c=ejectclosecd
# Wave cordless
-evdev:input:b0003v046DpC517:*
+evdev:input:b0003v046DpC517*
KEYBOARD_KEY_c101f=down # zoomout
KEYBOARD_KEY_c1020=up # zoomin
KEYBOARD_KEY_c1005=camera
KEYBOARD_KEY_c104c=ejectclosecd
# Cordless Wave Pro
-evdev:input:b0003v046DpC529:*
+evdev:input:b0003v046DpC529*
KEYBOARD_KEY_0c01b6=camera
KEYBOARD_KEY_0c0183=media
KEYBOARD_KEY_0c0184=wordprocessor
KEYBOARD_KEY_0c022e=down # zoomout
# Logitech Presenter R400
-evdev:input:b0003v046DpC52D:*
+evdev:input:b0003v046DpC52D*
KEYBOARD_KEY_070029=presentation
KEYBOARD_KEY_07003e=presentation
KEYBOARD_KEY_070037=displaytoggle
# Internet Navigator
-evdev:input:b0003v046DpC309:*
+evdev:input:b0003v046DpC309*
KEYBOARD_KEY_90001=chat # Messenger/SMS
KEYBOARD_KEY_90002=camera # webcam
KEYBOARD_KEY_90003=prog1 # iTouch
###########################################################
# Microsoft Natural Ergonomic Keyboard 4000
-evdev:input:b0003v045Ep00DB:*
+evdev:input:b0003v045Ep00DB*
KEYBOARD_KEY_c022d=up # zoomin
KEYBOARD_KEY_c022e=down # zoomout
# Microsoft (Razer produced) Reclusa keyboard
-evdev:input:b0003v1532p0200:*
+evdev:input:b0003v1532p0200*
KEYBOARD_KEY_c01c9=shuffle
KEYBOARD_KEY_c01ca=up # zoomin
KEYBOARD_KEY_c01cb=down # zoomout
###########################################################
# Teres-I
-evdev:input:b0003v15BAp003C:*
+evdev:input:b0003v15BAp003C*
KEYBOARD_KEY_70066=sleep # Fn+F1
KEYBOARD_KEY_700f6=wlan # Fn+F2
KEYBOARD_KEY_700c7=f21 # Fn+F3 touchpad toggle
# The key code identifiers used below exactly match the text
# labels on the keys/buttons (or standard icons on the buttons
# that have no text labels), except as noted.
-evdev:input:b0003v05A4p9735:*
+evdev:input:b0003v05A4p9735*
KEYBOARD_KEY_c0015=back
KEYBOARD_KEY_c0012=forward
KEYBOARD_KEY_c000c=stop
KEYBOARD_KEY_c00bb=prog2 # Key labeled "pf2"
KEYBOARD_KEY_c00b8=prog3 # Key labeled "pf3"
+###########################################################
+# Pine64
+###########################################################
+
+# Pinebook Pro
+evdev:input:b0003v258Ap001E*
+ KEYBOARD_KEY_700a5=brightnessdown
+ KEYBOARD_KEY_700a6=brightnessup
+ KEYBOARD_KEY_70066=sleep
+
###########################################################
# Plantronics
###########################################################
# Plantronics .Audio 626 DSP
-evdev:input:b0003v047FpC006:*
+evdev:input:b0003v047FpC006*
KEYBOARD_KEY_b002f=f20 # Microphone mute button; should be micmute
###########################################################
##########################################
# Ideazon Zboard Merc
-evdev:input:b0003v1038p0210:*
+evdev:input:b0003v1038p0210*
KEYBOARD_KEY_c0227=q
KEYBOARD_KEY_c0223=w
KEYBOARD_KEY_c0221=e
KEYBOARD_KEY_70079=f6
# Ideazon Zboard Fang
-evdev:input:b0003v1038p0310:*
+evdev:input:b0003v1038p0310*
KEYBOARD_KEY_70059=1
KEYBOARD_KEY_7005b=3
KEYBOARD_KEY_70040=equal
# with an accompanying variant (defined with XKB_FIXED_VARIANT) if necessary.
# Yubico Yubico Yubikey II"
-evdev:input:b0003v1050p0010:*
+evdev:input:b0003v1050p0010*
# Yubico Yubikey NEO OTP+CCID
-evdev:input:b0003v1050p0111:*
+evdev:input:b0003v1050p0111*
# Yubico Yubikey NEO OTP+U2F+CCID
-evdev:input:b0003v1050p0116:*
+evdev:input:b0003v1050p0116*
# OKE Electron Company USB barcode reader
-evdev:input:b0003v05FEp1010:*
+evdev:input:b0003v05FEp1010*
XKB_FIXED_LAYOUT=us
XKB_FIXED_VARIANT=
# Presence of a LED is implicit when the property is absent.
# Logitech K750
-evdev:input:b0003v046Dp4002:*
+evdev:input:b0003v046Dp4002*
KEYBOARD_LED_NUMLOCK=0
KEYBOARD_LED_CAPSLOCK=0
# PFU Limited HHKB Professional JP
-evdev:input:b0003v04FEp000D:*
+evdev:input:b0003v04FEp000D*
KEYBOARD_LED_NUMLOCK=0
KEYBOARD_LED_CAPSLOCK=0
# or 'display'. The default, when unset, is equivalent to:
# ACCEL_LOCATION=display
#
-# All matches should end in ':*' to allow future expansions of the match key.
-
# Sort by brand, model
#########################################
sensor:modalias:i2c:bmc150_accel:dmi:bvnINSYDECorp.:*:svnInsyde:pnBayTrail:*:rvn105B:rn0E57:*
ACCEL_MOUNT_MATRIX=1, 0, 0; 0, -1, 0; 0, 0, 1
+#########################################
+# Predia
+#########################################
+
+# Predia Basic tablet, most DMI strings are generic, match on BIOS version
+sensor:modalias:acpi:BOSC0200*:dmi:bvnINSYDECorp.:bvrMx.WT107.KUBNGEA*svnInsyde:pnCherryTrail:*
+ ACCEL_MOUNT_MATRIX=0, -1, 0; -1, 0, 0; 0, 0, 1
+
#########################################
# Prowise
#########################################
#
# If the property is missing, user-space can assume:
# ID_INPUT_JOYSTICK_INTEGRATION=external
-#
-# All matches should end in ':*' to allow future expansions of the match key.
joystick:bluetooth:*
ID_INPUT_JOYSTICK_INTEGRATION=external
###########################################################
# GPD Win, Classic and XBox 360 compat modes
-joystick:usb:v11c5p5507:*
-joystick:usb:v045ep028e:*
+joystick:usb:v11c5p5507*
+joystick:usb:v045ep028e*
ID_INPUT_JOYSTICK_INTEGRATION=internal
mouse:usb:v046dpc07e:name:Logitech Gaming Mouse G402:*
MOUSE_DPI=400@1000 *800@1000 1600@1000 3200@1000
+# Logitech G403 Prodigy (Wired)
+mouse:usb:v046dpc083:name:Logitech G403 Prodigy Gaming Mouse:*
+ MOUSE_DPI=400@1000 *800@1000 1600@1000 3200@1000
+
# Logitech G500 Mouse
mouse:usb:v046dpc068:name:Logitech G500:*
MOUSE_DPI=*1600@500 2600@500 3600@500
#
# Supported hardware matches are:
# - Generic input devices match:
-# evdev:input:bZZZZvYYYYpXXXXeWWWW-VVVV:*
+# evdev:input:bZZZZvYYYYpXXXXeWWWW-VVVV
# This matches on the kernel modalias of the input-device, mainly:
# ZZZZ is the bus-id (see /usr/include/linux/input.h BUS_*), YYYY, XXXX and
# WWW are the 4-digit hex uppercase vendor, product and version ID and VVVV
# <vendor> is the firmware-provided string from the kernel DMI modalias,
# see /sys/class/dmi/id/modalias
#
-# All matches should end in ':*' to allow future expansions of the match key.
-#
# To add local entries, create a new file
# /etc/udev/hwdb.d/71-pointingstick-local.hwdb
# and add your rules there. To load the new rules execute (as root):
POINTINGSTICK_CONST_ACCEL=1.25
# Lenovo UltraNav SK-8845 (USB keyboard)
-evdev:input:b0003v06CBp0009:*
+evdev:input:b0003v06CBp0009*
POINTINGSTICK_CONST_ACCEL=2.5
POINTINGSTICK_SENSITIVITY=200
#
# vid/pid as 4-digit hex lowercase vendor/product
#
-# All matches should end in ':*' to allow future expansions of the match key.
-#
# To add local entries, create a new file
# /etc/udev/hwdb.d/71-touchpad-local.hwdb
# and add your rules there. To load the new rules execute (as root):
###########################################################
# Logitech
###########################################################
-touchpad:usb:v046dp????:*
+touchpad:usb:v046d*
ID_INPUT_TOUCHPAD_INTEGRATION=external
###########################################################
# Wacom
###########################################################
-touchpad:usb:v056ap????:*
+touchpad:usb:v056a*
ID_INPUT_TOUCHPAD_INTEGRATION=external
Madrid 28006\r
ES\r
\r
-D8-31-34 (hex) Roku, Inc\r
-D83134 (base 16) Roku, Inc\r
- 150 Winchester Circle\r
- Los Gatos CA 95032\r
- US\r
-\r
40-8B-F6 (hex) Shenzhen TCL New Technology Co., Ltd\r
408BF6 (base 16) Shenzhen TCL New Technology Co., Ltd\r
TCL Building, #5 Central Nanhai Road, Nanshan District,\r
San Francisco null 94158\r
US\r
\r
-B0-EE-7B (hex) Roku, Inc\r
-B0EE7B (base 16) Roku, Inc\r
- 150 Winchester Circle\r
- Los Gatos CA 95032\r
- US\r
-\r
AC-58-7B (hex) JCT Healthcare\r
AC587B (base 16) JCT Healthcare\r
1/25 London Road\r
Beaverton OR 97003\r
US\r
\r
-00-25-50 (hex) Riverbed Technology, Inc.\r
-002550 (base 16) Riverbed Technology, Inc.\r
- 125 Cambridge Park Drive\r
- Cambridge MA 02140\r
- US\r
-\r
D0-B2-C4 (hex) Technicolor CH USA Inc.\r
D0B2C4 (base 16) Technicolor CH USA Inc.\r
5030 Sugarloaf Parkway Bldg 6\r
Shenzhen Guangdong 518172\r
CN\r
\r
-68-78-48 (hex) Westunitis Co., Ltd.\r
-687848 (base 16) Westunitis Co., Ltd.\r
- North Building 7F, 3-1 Ofuka-cho, Kita-ku\r
- Osaka-city Osaka-pref 5300011\r
- JP\r
-\r
48-D0-CF (hex) Universal Electronics, Inc.\r
48D0CF (base 16) Universal Electronics, Inc.\r
201 E. Sandpointe Ave\r
Irving Texas 75063\r
US\r
\r
-00-12-93 (hex) GE Energy\r
-001293 (base 16) GE Energy\r
- 1501 Roanoke Blvd.\r
- Salem VA 24153\r
- US\r
-\r
00-12-94 (hex) SUMITOMO ELECTRIC DEVICE INNOVATIONS, INC\r
001294 (base 16) SUMITOMO ELECTRIC DEVICE INNOVATIONS, INC\r
1000 Kamisukiawara,Showa-cho\r
Hui Zhou Guang Dong 516006\r
CN\r
\r
-10-59-32 (hex) Roku, Inc\r
-105932 (base 16) Roku, Inc\r
- 150 Winchester Circle\r
- Los Gatos CA 95032\r
- US\r
-\r
20-74-54 (hex) vivo Mobile Communication Co., Ltd.\r
207454 (base 16) vivo Mobile Communication Co., Ltd.\r
#283,BBK Road\r
Poznan Wielkopolska 60-681\r
PL\r
\r
-6C-16-32 (hex) HUAWEI TECHNOLOGIES CO.,LTD\r
-6C1632 (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
-2C-1A-01 (hex) HUAWEI TECHNOLOGIES CO.,LTD\r
-2C1A01 (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
34-78-39 (hex) zte corporation\r
347839 (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
-24-16-9D (hex) Cisco Systems, Inc\r
-24169D (base 16) Cisco Systems, Inc\r
- 80 West Tasman Drive\r
- San Jose CA 94568\r
- US\r
+6C-16-32 (hex) HUAWEI TECHNOLOGIES CO.,LTD\r
+6C1632 (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
F4-19-E2 (hex) Volterra\r
F419E2 (base 16) Volterra\r
Chatillon 92320\r
FR\r
\r
+2C-1A-01 (hex) HUAWEI TECHNOLOGIES CO.,LTD\r
+2C1A01 (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
+24-16-9D (hex) Cisco Systems, Inc\r
+24169D (base 16) Cisco Systems, Inc\r
+ 80 West Tasman Drive\r
+ San Jose CA 94568\r
+ US\r
+\r
64-F2-FB (hex) Hangzhou Ezviz Software Co.,Ltd.\r
64F2FB (base 16) Hangzhou Ezviz Software Co.,Ltd.\r
Room 302, Unit B, Building 2, 399 Danfeng Road,Binjiang District\r
Cupertino CA 95014\r
US\r
\r
-F4-DB-E3 (hex) Apple, Inc.\r
-F4DBE3 (base 16) Apple, Inc.\r
- 1 Infinite Loop\r
- Cupertino CA 95014\r
- US\r
-\r
F0-7C-C7 (hex) Juniper Networks\r
F07CC7 (base 16) Juniper Networks\r
1133 Innovation Way\r
Sunnyvale CA 94089\r
US\r
\r
+F4-DB-E3 (hex) Apple, Inc.\r
+F4DBE3 (base 16) Apple, Inc.\r
+ 1 Infinite Loop\r
+ Cupertino CA 95014\r
+ US\r
+\r
D4-5E-EC (hex) Beijing Xiaomi Electronics Co., Ltd.\r
D45EEC (base 16) Beijing Xiaomi Electronics Co., Ltd.\r
Building C, QingHe ShunShiJiaYe Technology Park, #66 ZhuFang Rd, HaiDian District\r
Santa Barbara CA 93101\r
US\r
\r
+54-03-84 (hex) Hongkong Nano IC Technologies Co., Ltd\r
+540384 (base 16) Hongkong Nano IC Technologies Co., Ltd\r
+ Rm. 19C, Lockhart Ctr., 301-307 Lockhart Rd., Wan Chai, Hong Kong\r
+ Hong Kong Hong Kong 999077\r
+ CN\r
+\r
60-68-4E (hex) Samsung Electronics Co.,Ltd\r
60684E (base 16) Samsung Electronics Co.,Ltd\r
#94-1, Imsoo-Dong\r
Gumi Gyeongbuk 730-350\r
KR\r
\r
-54-03-84 (hex) Hongkong Nano IC Technologies Co., Ltd\r
-540384 (base 16) Hongkong Nano IC Technologies Co., Ltd\r
- Rm. 19C, Lockhart Ctr., 301-307 Lockhart Rd., Wan Chai, Hong Kong\r
- Hong Kong Hong Kong 999077\r
- CN\r
+30-50-75 (hex) GN Audio A/S\r
+305075 (base 16) GN Audio A/S\r
+ Lautrupbjerg 7\r
+ Ballerup DK-2750\r
+ DK\r
\r
04-BD-BF (hex) Samsung Electronics Co.,Ltd\r
04BDBF (base 16) Samsung Electronics Co.,Ltd\r
Gumi Gyeongbuk 730-350\r
KR\r
\r
-B4-09-31 (hex) HUAWEI TECHNOLOGIES CO.,LTD\r
-B40931 (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
-94-E7-EA (hex) HUAWEI TECHNOLOGIES CO.,LTD\r
-94E7EA (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
-94-E4-BA (hex) Huawei Device Co., Ltd.\r
-94E4BA (base 16) Huawei Device Co., Ltd.\r
+2C-C5-46 (hex) Huawei Device Co., Ltd.\r
+2CC546 (base 16) Huawei Device Co., Ltd.\r
No.2 of Xincheng Road, Songshan Lake Zone\r
Dongguan Guangdong 523808\r
CN\r
\r
-34-71-46 (hex) Huawei Device Co., Ltd.\r
-347146 (base 16) Huawei Device Co., Ltd.\r
+0C-83-9A (hex) Huawei Device Co., Ltd.\r
+0C839A (base 16) Huawei Device Co., Ltd.\r
No.2 of Xincheng Road, Songshan Lake Zone\r
Dongguan Guangdong 523808\r
CN\r
\r
-2C-C5-46 (hex) Huawei Device Co., Ltd.\r
-2CC546 (base 16) Huawei Device Co., Ltd.\r
+E0-E0-FC (hex) Huawei Device Co., Ltd.\r
+E0E0FC (base 16) Huawei Device Co., Ltd.\r
No.2 of Xincheng Road, Songshan Lake Zone\r
Dongguan Guangdong 523808\r
CN\r
\r
-0C-83-9A (hex) Huawei Device Co., Ltd.\r
-0C839A (base 16) Huawei Device Co., Ltd.\r
+94-E7-EA (hex) HUAWEI TECHNOLOGIES CO.,LTD\r
+94E7EA (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
+94-E4-BA (hex) Huawei Device Co., Ltd.\r
+94E4BA (base 16) Huawei Device Co., Ltd.\r
No.2 of Xincheng Road, Songshan Lake Zone\r
Dongguan Guangdong 523808\r
CN\r
\r
-E0-E0-FC (hex) Huawei Device Co., Ltd.\r
-E0E0FC (base 16) Huawei Device Co., Ltd.\r
+34-71-46 (hex) Huawei Device Co., Ltd.\r
+347146 (base 16) Huawei Device Co., Ltd.\r
No.2 of Xincheng Road, Songshan Lake Zone\r
Dongguan Guangdong 523808\r
CN\r
\r
-30-50-75 (hex) GN Audio A/S\r
-305075 (base 16) GN Audio A/S\r
- Lautrupbjerg 7\r
- Ballerup DK-2750\r
- DK\r
-\r
F4-B7-8D (hex) HUAWEI TECHNOLOGIES CO.,LTD\r
F4B78D (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-09-31 (hex) HUAWEI TECHNOLOGIES CO.,LTD\r
+B40931 (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
30-B9-B0 (hex) Intracom Asia Co., Ltd\r
30B9B0 (base 16) Intracom Asia Co., Ltd\r
4F., No77, Sec. 1, Xintai 5th Rd., Xizhi Dist.\r
New Taipei City Taiwan 221\r
TW\r
\r
+D4-DA-CD (hex) BSkyB Ltd\r
+D4DACD (base 16) BSkyB Ltd\r
+ 130 Kings Road\r
+ Brentwood Essex 08854\r
+ GB\r
+\r
0C-35-FE (hex) Fiberhome Telecommunication Technologies Co.,LTD\r
0C35FE (base 16) Fiberhome Telecommunication Technologies Co.,LTD\r
No.5 DongXin Road\r
Miami FL 33156\r
US\r
\r
+4C-B9-11 (hex) Raisecom Technology CO.,LTD\r
+4CB911 (base 16) Raisecom Technology CO.,LTD\r
+ No. 11, East Area, No. 10 Block, East Xibeiwang Road\r
+ Beijing 100094\r
+ CN\r
+\r
B0-E4-D5 (hex) Google, Inc.\r
B0E4D5 (base 16) Google, Inc.\r
1600 Amphitheatre Parkway\r
Mountain View CA 94043\r
US\r
\r
-D4-DA-CD (hex) BSkyB Ltd\r
-D4DACD (base 16) BSkyB Ltd\r
- 130 Kings Road\r
- Brentwood Essex 08854\r
- GB\r
-\r
68-69-CA (hex) Hitachi, Ltd.\r
6869CA (base 16) Hitachi, Ltd.\r
27-18, Minami Oi 6-chome, Shinagawa-ku\r
Santa Clara CA 95054\r
US\r
\r
-4C-B9-11 (hex) Raisecom Technology CO.,LTD\r
-4CB911 (base 16) Raisecom Technology CO.,LTD\r
- No. 11, East Area, No. 10 Block, East Xibeiwang Road\r
- Beijing 100094\r
- CN\r
-\r
40-47-6A (hex) Astro Gaming\r
40476A (base 16) Astro Gaming\r
340 Bryant St., Suite 101\r
Farmington Hills MI 48335\r
US\r
\r
+B8-7C-F2 (hex) Extreme Networks, Inc.\r
+B87CF2 (base 16) Extreme Networks, Inc.\r
+ 1011 McCarthy Blvd\r
+ Milpitas CA 95035\r
+ US\r
+\r
30-B2-37 (hex) GD Midea Air-Conditioning Equipment Co.,Ltd.\r
30B237 (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
+24-62-CE (hex) Aruba, a Hewlett Packard Enterprise Company\r
+2462CE (base 16) Aruba, a Hewlett Packard Enterprise Company\r
+ 3333 Scott Blvd\r
+ Santa Clara CA 95054\r
+ US\r
+\r
BC-5A-56 (hex) Cisco Systems, Inc\r
BC5A56 (base 16) Cisco Systems, Inc\r
80 West Tasman Drive\r
San Jose CA 94568\r
US\r
\r
-B8-7C-F2 (hex) Extreme Networks, Inc.\r
-B87CF2 (base 16) Extreme Networks, Inc.\r
- 1011 McCarthy Blvd\r
- Milpitas CA 95035\r
+C0-9B-F4 (hex) IEEE Registration Authority\r
+C09BF4 (base 16) IEEE Registration Authority\r
+ 445 Hoes Lane\r
+ Piscataway NJ 08554\r
US\r
\r
-88-2B-94 (hex) MADOKA SYSTEM Co.,Ltd.\r
-882B94 (base 16) MADOKA SYSTEM Co.,Ltd.\r
- 2-105 Hanasakidai Moriyama-ku\r
- Nagoya 463-0808\r
- JP\r
-\r
7C-EF-61 (hex) STR Elektronik Josef Schlechtinger GmbH\r
7CEF61 (base 16) STR Elektronik Josef Schlechtinger GmbH\r
Auf dem Ohl 9\r
Wenden 57482\r
DE\r
\r
+40-05-89 (hex) T-Mobile, USA\r
+400589 (base 16) T-Mobile, USA\r
+ 3625 132nd Ave SE\r
+ BELLEVUE WA 98006\r
+ US\r
+\r
+70-03-9F (hex) Espressif Inc.\r
+70039F (base 16) Espressif Inc.\r
+ Room 204, Building 2, 690 Bibo Rd, Pudong New Area\r
+ Shanghai Shanghai 201203\r
+ CN\r
+\r
64-A9-65 (hex) Linkflow Co., Ltd.\r
64A965 (base 16) Linkflow Co., Ltd.\r
54, Nonhyeon-ro 2-gil, Gangnam-gu\r
Seoul 06313\r
KR\r
\r
-24-62-CE (hex) Aruba, a Hewlett Packard Enterprise Company\r
-2462CE (base 16) Aruba, a Hewlett Packard Enterprise Company\r
- 3333 Scott Blvd\r
- Santa Clara CA 95054\r
- US\r
-\r
68-E2-09 (hex) HUAWEI TECHNOLOGIES CO.,LTD\r
68E209 (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
-40-05-89 (hex) T-Mobile, USA\r
-400589 (base 16) T-Mobile, USA\r
- 3625 132nd Ave SE\r
- BELLEVUE WA 98006\r
+04-5F-B9 (hex) Cisco Systems, Inc\r
+045FB9 (base 16) Cisco Systems, Inc\r
+ 80 West Tasman Drive\r
+ San Jose CA 94568\r
US\r
\r
-C0-9B-F4 (hex) IEEE Registration Authority\r
-C09BF4 (base 16) IEEE Registration Authority\r
- 445 Hoes Lane\r
- Piscataway NJ 08554\r
- US\r
+88-2B-94 (hex) MADOKA SYSTEM Co.,Ltd.\r
+882B94 (base 16) MADOKA SYSTEM Co.,Ltd.\r
+ 2-105 Hanasakidai Moriyama-ku\r
+ Nagoya 463-0808\r
+ JP\r
\r
F4-30-8B (hex) Xiaomi Communications Co Ltd\r
F4308B (base 16) Xiaomi Communications Co Ltd\r
Jeju-si Jeju-do 63335\r
KR\r
\r
-70-03-9F (hex) Espressif Inc.\r
-70039F (base 16) Espressif Inc.\r
- Room 204, Building 2, 690 Bibo Rd, Pudong New Area\r
- Shanghai Shanghai 201203\r
- CN\r
+74-58-F3 (hex) Amazon Technologies Inc.\r
+7458F3 (base 16) Amazon Technologies Inc.\r
+ P.O Box 8102\r
+ Reno NV 89507\r
+ US\r
\r
A0-DE-0F (hex) Huawei Device Co., Ltd.\r
A0DE0F (base 16) Huawei Device Co., Ltd.\r
Dongguan Guangdong 523808\r
CN\r
\r
+98-DF-82 (hex) Hangzhou Hikvision Digital Technology Co.,Ltd.\r
+98DF82 (base 16) Hangzhou Hikvision Digital Technology Co.,Ltd.\r
+ No.555 Qianmo Road\r
+ Hangzhou Zhejiang 310052\r
+ CN\r
+\r
+3C-F6-52 (hex) zte corporation\r
+3CF652 (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
08-00-88 (hex) Brocade Communications Systems LLC\r
080088 (base 16) Brocade Communications Systems LLC\r
1320 Ridder Park Dr\r
NEW TAIPEI TAIWAN 23585\r
TW\r
\r
-04-5F-B9 (hex) Cisco Systems, Inc\r
-045FB9 (base 16) Cisco Systems, Inc\r
- 80 West Tasman Drive\r
- San Jose CA 94568\r
- US\r
-\r
CC-4E-24 (hex) Brocade Communications Systems LLC\r
CC4E24 (base 16) Brocade Communications Systems LLC\r
1320 Ridder Park Dr\r
San Jose CA 95131\r
US\r
\r
-98-DF-82 (hex) Hangzhou Hikvision Digital Technology Co.,Ltd.\r
-98DF82 (base 16) Hangzhou Hikvision Digital Technology Co.,Ltd.\r
- No.555 Qianmo Road\r
- Hangzhou Zhejiang 310052\r
- CN\r
-\r
-3C-F6-52 (hex) zte corporation\r
-3CF652 (base 16) zte corporation\r
- 12/F.,zte R&D building ,kejinan Road,Shenzhen,P.R.China\r
- shenzhen guangdong 518057\r
- CN\r
+08-AA-55 (hex) Motorola Mobility LLC, a Lenovo Company\r
+08AA55 (base 16) Motorola Mobility LLC, a Lenovo Company\r
+ 222 West Merchandise Mart Plaza\r
+ Chicago IL 60654\r
+ US\r
\r
5C-0F-FB (hex) Amino Communications Ltd\r
5C0FFB (base 16) Amino Communications Ltd\r
Cambourne Cambs CB23 6DP\r
GB\r
\r
-74-58-F3 (hex) Amazon Technologies Inc.\r
-7458F3 (base 16) Amazon Technologies Inc.\r
- P.O Box 8102\r
- Reno NV 89507\r
+54-21-9D (hex) Samsung Electronics Co.,Ltd\r
+54219D (base 16) Samsung Electronics Co.,Ltd\r
+ #94-1, Imsoo-Dong\r
+ Gumi Gyeongbuk 730-350\r
+ KR\r
+\r
+C8-8B-E8 (hex) Masimo Corporation\r
+C88BE8 (base 16) Masimo Corporation\r
+ 40 Parker\r
+ Irvine CA 92618\r
US\r
\r
+40-40-28 (hex) ZIV\r
+404028 (base 16) ZIV\r
+ Polígono Parque Tecnológico, 210\r
+ ZAMUDIO VIZCAYA 48170\r
+ ES\r
+\r
00-06-31 (hex) Calix Inc.\r
000631 (base 16) Calix Inc.\r
2777 Orchard Pkwy\r
Irvine CA 92618\r
US\r
\r
-E4-3A-65 (hex) MofiNetwork Inc\r
-E43A65 (base 16) MofiNetwork Inc\r
- 11 Boynton Cir\r
- Markham Ontario L6C 1A8\r
- CA\r
-\r
-08-AA-55 (hex) Motorola Mobility LLC, a Lenovo Company\r
-08AA55 (base 16) Motorola Mobility LLC, a Lenovo Company\r
- 222 West Merchandise Mart Plaza\r
- Chicago IL 60654\r
- US\r
-\r
-54-21-9D (hex) Samsung Electronics Co.,Ltd\r
-54219D (base 16) Samsung Electronics Co.,Ltd\r
- #94-1, Imsoo-Dong\r
- Gumi Gyeongbuk 730-350\r
- KR\r
-\r
-C8-8B-E8 (hex) Masimo Corporation\r
-C88BE8 (base 16) Masimo Corporation\r
- 40 Parker\r
- Irvine CA 92618\r
- US\r
-\r
F0-41-C6 (hex) Heat Tech Company, Ltd.\r
F041C6 (base 16) Heat Tech Company, Ltd.\r
221A, Tikhookeanskaya st.\r
Khabarovsk 680033\r
RU\r
\r
-40-40-28 (hex) ZIV\r
-404028 (base 16) ZIV\r
- Polígono Parque Tecnológico, 210\r
- ZAMUDIO VIZCAYA 48170\r
- ES\r
-\r
-F8-6C-03 (hex) Shenzhen Teleone Technology Co., Ltd\r
-F86C03 (base 16) Shenzhen Teleone Technology Co., Ltd\r
- TOWER B 5/F, SHANSHUI BUILDING, NANSHAN YUNGU INNOVATION INDUSTRY PARK, 1183 LIUXIAN AVENUE, NANSHAN, SHENZHEN, CHINA\r
- Shenzhen 518000\r
- CN\r
+E4-3A-65 (hex) MofiNetwork Inc\r
+E43A65 (base 16) MofiNetwork Inc\r
+ 11 Boynton Cir\r
+ Markham Ontario L6C 1A8\r
+ CA\r
\r
D8-71-4D (hex) Texas Instruments\r
D8714D (base 16) Texas Instruments\r
Dallas TX 75243\r
US\r
\r
-10-5D-DC (hex) Huawei Device Co., Ltd.\r
-105DDC (base 16) Huawei Device Co., Ltd.\r
- No.2 of Xincheng Road, Songshan Lake Zone\r
- Dongguan Guangdong 523808\r
- CN\r
-\r
-DC-73-85 (hex) Huawei Device Co., Ltd.\r
-DC7385 (base 16) Huawei Device Co., Ltd.\r
- No.2 of Xincheng Road, Songshan Lake Zone\r
- Dongguan Guangdong 523808\r
- CN\r
-\r
-54-55-D5 (hex) Huawei Device Co., Ltd.\r
-5455D5 (base 16) Huawei Device Co., Ltd.\r
- No.2 of Xincheng Road, Songshan Lake Zone\r
- Dongguan Guangdong 523808\r
- CN\r
-\r
00-15-D2 (hex) Xantech Corporation\r
0015D2 (base 16) Xantech Corporation\r
5919 Sea Otter Place\r
Carlsbad CA 92010\r
US\r
\r
-18-45-93 (hex) Taicang T&W Electronics\r
-184593 (base 16) Taicang T&W Electronics\r
- 89# Jiang Nan RD\r
- Suzhou Jiangsu 215412\r
+F8-6C-03 (hex) Shenzhen Teleone Technology Co., Ltd\r
+F86C03 (base 16) Shenzhen Teleone Technology Co., Ltd\r
+ TOWER B 5/F, SHANSHUI BUILDING, NANSHAN YUNGU INNOVATION INDUSTRY PARK, 1183 LIUXIAN AVENUE, NANSHAN, SHENZHEN, CHINA\r
+ Shenzhen 518000\r
CN\r
\r
CC-9E-CA (hex) HMD Global Oy\r
Dongguan 523808\r
CN\r
\r
+80-E1-BF (hex) HUAWEI TECHNOLOGIES CO.,LTD\r
+80E1BF (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
+48-2C-D0 (hex) HUAWEI TECHNOLOGIES CO.,LTD\r
+482CD0 (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-73-85 (hex) Huawei Device Co., Ltd.\r
+DC7385 (base 16) Huawei Device Co., Ltd.\r
+ No.2 of Xincheng Road, Songshan Lake Zone\r
+ Dongguan Guangdong 523808\r
+ CN\r
+\r
+54-55-D5 (hex) Huawei Device Co., Ltd.\r
+5455D5 (base 16) Huawei Device Co., Ltd.\r
+ No.2 of Xincheng Road, Songshan Lake Zone\r
+ Dongguan Guangdong 523808\r
+ CN\r
+\r
+18-45-93 (hex) Taicang T&W Electronics\r
+184593 (base 16) Taicang T&W Electronics\r
+ 89# Jiang Nan RD\r
+ Suzhou Jiangsu 215412\r
+ CN\r
+\r
+10-5D-DC (hex) Huawei Device Co., Ltd.\r
+105DDC (base 16) Huawei Device Co., Ltd.\r
+ No.2 of Xincheng Road, Songshan Lake Zone\r
+ Dongguan Guangdong 523808\r
+ CN\r
+\r
34-EA-E7 (hex) Shanghai High-Flying Electronics Technology Co., Ltd\r
34EAE7 (base 16) Shanghai High-Flying Electronics Technology Co., Ltd\r
Room 1002,#1Building,No.3000 Longdong Avenue,Pudong\r
Hui Zhou Guangdong 516006\r
CN\r
\r
-80-E1-BF (hex) HUAWEI TECHNOLOGIES CO.,LTD\r
-80E1BF (base 16) HUAWEI TECHNOLOGIES CO.,LTD\r
- No.2 Xin Cheng Road, Room R6,Songshan Lake Technology Park\r
- Dongguan 523808\r
+A0-CA-A5 (hex) INTELLIGENCE TECHNOLOGY OF CEC CO., LTD\r
+A0CAA5 (base 16) INTELLIGENCE TECHNOLOGY OF CEC CO., LTD\r
+ Tower A, NO.2 Lutuan Road, The sountern Of Future Science and Tech Zone, Changping District\r
+ Beijing Beijing 102209\r
CN\r
\r
-48-2C-D0 (hex) HUAWEI TECHNOLOGIES CO.,LTD\r
-482CD0 (base 16) HUAWEI TECHNOLOGIES CO.,LTD\r
- No.2 Xin Cheng Road, Room R6,Songshan Lake Technology Park\r
- Dongguan 523808\r
- CN\r
+58-FD-B1 (hex) LG Electronics\r
+58FDB1 (base 16) LG Electronics\r
+ 222 LG-ro, JINWI-MYEON\r
+ Pyeongtaek-si Gyeonggi-do 451-713\r
+ KR\r
+\r
+E8-85-4B (hex) Apple, Inc.\r
+E8854B (base 16) Apple, Inc.\r
+ 1 Infinite Loop\r
+ Cupertino CA 95014\r
+ US\r
+\r
+E0-2B-96 (hex) Apple, Inc.\r
+E02B96 (base 16) Apple, Inc.\r
+ 1 Infinite Loop\r
+ Cupertino CA 95014\r
+ US\r
+\r
+28-EC-95 (hex) Apple, Inc.\r
+28EC95 (base 16) Apple, Inc.\r
+ 1 Infinite Loop\r
+ Cupertino CA 95014\r
+ US\r
\r
00-19-32 (hex) Gude Systems GmbH\r
001932 (base 16) Gude Systems GmbH\r
Cologne NRW 51149\r
DE\r
\r
-A0-CA-A5 (hex) INTELLIGENCE TECHNOLOGY OF CEC CO., LTD\r
-A0CAA5 (base 16) INTELLIGENCE TECHNOLOGY OF CEC CO., LTD\r
- Tower A, NO.2 Lutuan Road, The sountern Of Future Science and Tech Zone, Changping District\r
- Beijing Beijing 102209\r
- CN\r
+D0-AB-D5 (hex) Intel Corporate\r
+D0ABD5 (base 16) Intel Corporate\r
+ Lot 8, Jalan Hi-Tech 2/3 \r
+ Kulim Kedah 09000\r
+ MY\r
+\r
+68-17-29 (hex) Intel Corporate\r
+681729 (base 16) Intel Corporate\r
+ Lot 8, Jalan Hi-Tech 2/3 \r
+ Kulim Kedah 09000\r
+ MY\r
+\r
+B8-08-CF (hex) Intel Corporate\r
+B808CF (base 16) Intel Corporate\r
+ Lot 8, Jalan Hi-Tech 2/3 \r
+ Kulim Kedah 09000\r
+ MY\r
+\r
+DC-71-96 (hex) Intel Corporate\r
+DC7196 (base 16) Intel Corporate\r
+ Lot 8, Jalan Hi-Tech 2/3 \r
+ Kulim Kedah 09000\r
+ MY\r
+\r
+50-E0-85 (hex) Intel Corporate\r
+50E085 (base 16) Intel Corporate\r
+ Lot 8, Jalan Hi-Tech 2/3 \r
+ Kulim Kedah 09000\r
+ MY\r
+\r
+1C-1B-B5 (hex) Intel Corporate\r
+1C1BB5 (base 16) Intel Corporate\r
+ Lot 8, Jalan Hi-Tech 2/3 \r
+ Kulim Kedah 09000\r
+ MY\r
+\r
+98-3B-8F (hex) Intel Corporate\r
+983B8F (base 16) Intel Corporate\r
+ Lot 8, Jalan Hi-Tech 2/3 \r
+ Kulim Kedah 09000\r
+ MY\r
+\r
+D0-C6-37 (hex) Intel Corporate\r
+D0C637 (base 16) Intel Corporate\r
+ Lot 8, Jalan Hi-Tech 2/3 \r
+ Kulim Kedah 09000\r
+ MY\r
+\r
+04-EA-56 (hex) Intel Corporate\r
+04EA56 (base 16) Intel Corporate\r
+ Lot 8, Jalan Hi-Tech 2/3 \r
+ Kulim Kedah 09000\r
+ MY\r
+\r
+D4-3B-04 (hex) Intel Corporate\r
+D43B04 (base 16) Intel Corporate\r
+ Lot 8, Jalan Hi-Tech 2/3 \r
+ Kulim Kedah 09000\r
+ MY\r
\r
5C-5F-67 (hex) Intel Corporate\r
5C5F67 (base 16) Intel Corporate\r
Kulim Kedah 09000\r
MY\r
\r
-1C-1B-B5 (hex) Intel Corporate\r
-1C1BB5 (base 16) Intel Corporate\r
+D8-3B-BF (hex) Intel Corporate\r
+D83BBF (base 16) Intel Corporate\r
+ Lot 8, Jalan Hi-Tech 2/3 \r
+ Kulim Kedah 09000\r
+ MY\r
+\r
+14-F6-D8 (hex) Intel Corporate\r
+14F6D8 (base 16) Intel Corporate\r
+ Lot 8, Jalan Hi-Tech 2/3 \r
+ Kulim Kedah 09000\r
+ MY\r
+\r
+E0-D4-E8 (hex) Intel Corporate\r
+E0D4E8 (base 16) Intel Corporate\r
Lot 8, Jalan Hi-Tech 2/3 \r
Kulim Kedah 09000\r
MY\r
Kulim Kedah 09000\r
MY\r
\r
+94-E6-F7 (hex) Intel Corporate\r
+94E6F7 (base 16) Intel Corporate\r
+ Lot 8, Jalan Hi-Tech 2/3 \r
+ Kulim Kedah 09000\r
+ MY\r
+\r
+4C-1D-96 (hex) Intel Corporate\r
+4C1D96 (base 16) Intel Corporate\r
+ Lot 8, Jalan Hi-Tech 2/3 \r
+ Kulim Kedah 09000\r
+ MY\r
+\r
E0-0E-E4 (hex) DWnet Technologies(Suzhou) Corporation\r
E00EE4 (base 16) DWnet Technologies(Suzhou) Corporation\r
No.8,Tangzhuang Road, Suzhou Industrial Park, Jiangsu, China\r
Suzhou 21500\r
CN\r
\r
-E8-85-4B (hex) Apple, Inc.\r
-E8854B (base 16) Apple, Inc.\r
- 1 Infinite Loop\r
- Cupertino CA 95014\r
- US\r
-\r
-28-EC-95 (hex) Apple, Inc.\r
-28EC95 (base 16) Apple, Inc.\r
- 1 Infinite Loop\r
- Cupertino CA 95014\r
- US\r
-\r
-58-FD-B1 (hex) LG Electronics\r
-58FDB1 (base 16) LG Electronics\r
- 222 LG-ro, JINWI-MYEON\r
- Pyeongtaek-si Gyeonggi-do 451-713\r
- KR\r
-\r
-E0-2B-96 (hex) Apple, Inc.\r
-E02B96 (base 16) Apple, Inc.\r
- 1 Infinite Loop\r
- Cupertino CA 95014\r
- US\r
-\r
A8-46-9D (hex) Cisco Meraki\r
A8469D (base 16) Cisco Meraki\r
500 Terry A. Francois Blvd\r
San Francisco 94158\r
US\r
\r
+70-3A-A6 (hex) New H3C Technologies Co., Ltd\r
+703AA6 (base 16) New H3C Technologies Co., Ltd\r
+ 466 Changhe Road, Binjiang District\r
+ Hangzhou Zhejiang 310052\r
+ CN\r
+\r
8C-CE-FD (hex) Shenzhen zhouhai technology co.,LTD\r
8CCEFD (base 16) Shenzhen zhouhai technology co.,LTD\r
401-403,415-416, Area A, Block B, West Silicon Valley, 5010 Baoan Avenue, Baoan District, Shenzhen, China\r
SHEN ZHEN GUANG DONG 518000\r
CN\r
\r
-D0-AB-D5 (hex) Intel Corporate\r
-D0ABD5 (base 16) Intel Corporate\r
- Lot 8, Jalan Hi-Tech 2/3 \r
- Kulim Kedah 09000\r
- MY\r
-\r
-68-17-29 (hex) Intel Corporate\r
-681729 (base 16) Intel Corporate\r
- Lot 8, Jalan Hi-Tech 2/3 \r
- Kulim Kedah 09000\r
- MY\r
-\r
-B8-08-CF (hex) Intel Corporate\r
-B808CF (base 16) Intel Corporate\r
- Lot 8, Jalan Hi-Tech 2/3 \r
- Kulim Kedah 09000\r
- MY\r
-\r
-DC-71-96 (hex) Intel Corporate\r
-DC7196 (base 16) Intel Corporate\r
- Lot 8, Jalan Hi-Tech 2/3 \r
- Kulim Kedah 09000\r
- MY\r
-\r
-50-E0-85 (hex) Intel Corporate\r
-50E085 (base 16) Intel Corporate\r
- Lot 8, Jalan Hi-Tech 2/3 \r
- Kulim Kedah 09000\r
- MY\r
-\r
94-08-C7 (hex) Huawei Device Co., Ltd.\r
9408C7 (base 16) Huawei Device Co., Ltd.\r
No.2 of Xincheng Road, Songshan Lake Zone\r
Dongguan Guangdong 523808\r
CN\r
\r
-C8-CA-63 (hex) Huawei Device Co., Ltd.\r
-C8CA63 (base 16) Huawei Device Co., Ltd.\r
- No.2 of Xincheng Road, Songshan Lake Zone\r
- Dongguan Guangdong 523808\r
- CN\r
-\r
-98-3B-8F (hex) Intel Corporate\r
-983B8F (base 16) Intel Corporate\r
- Lot 8, Jalan Hi-Tech 2/3 \r
- Kulim Kedah 09000\r
- MY\r
-\r
-D0-C6-37 (hex) Intel Corporate\r
-D0C637 (base 16) Intel Corporate\r
- Lot 8, Jalan Hi-Tech 2/3 \r
- Kulim Kedah 09000\r
- MY\r
-\r
-04-EA-56 (hex) Intel Corporate\r
-04EA56 (base 16) Intel Corporate\r
- Lot 8, Jalan Hi-Tech 2/3 \r
- Kulim Kedah 09000\r
- MY\r
-\r
-D4-3B-04 (hex) Intel Corporate\r
-D43B04 (base 16) Intel Corporate\r
+04-6C-59 (hex) Intel Corporate\r
+046C59 (base 16) Intel Corporate\r
Lot 8, Jalan Hi-Tech 2/3 \r
Kulim Kedah 09000\r
MY\r
Kulim Kedah 09000\r
MY\r
\r
-D8-3B-BF (hex) Intel Corporate\r
-D83BBF (base 16) Intel Corporate\r
- Lot 8, Jalan Hi-Tech 2/3 \r
- Kulim Kedah 09000\r
- MY\r
-\r
-14-F6-D8 (hex) Intel Corporate\r
-14F6D8 (base 16) Intel Corporate\r
- Lot 8, Jalan Hi-Tech 2/3 \r
- Kulim Kedah 09000\r
- MY\r
-\r
-E0-D4-E8 (hex) Intel Corporate\r
-E0D4E8 (base 16) Intel Corporate\r
- Lot 8, Jalan Hi-Tech 2/3 \r
- Kulim Kedah 09000\r
- MY\r
-\r
-94-E6-F7 (hex) Intel Corporate\r
-94E6F7 (base 16) Intel Corporate\r
- Lot 8, Jalan Hi-Tech 2/3 \r
- Kulim Kedah 09000\r
- MY\r
-\r
-4C-1D-96 (hex) Intel Corporate\r
-4C1D96 (base 16) Intel Corporate\r
- Lot 8, Jalan Hi-Tech 2/3 \r
- Kulim Kedah 09000\r
- MY\r
-\r
-70-3A-A6 (hex) New H3C Technologies Co., Ltd\r
-703AA6 (base 16) New H3C Technologies Co., Ltd\r
- 466 Changhe Road, Binjiang District\r
- Hangzhou Zhejiang 310052\r
- CN\r
-\r
-94-37-F7 (hex) Huawei Device Co., Ltd.\r
-9437F7 (base 16) Huawei Device Co., Ltd.\r
- No.2 of Xincheng Road, Songshan Lake Zone\r
- Dongguan Guangdong 523808\r
- CN\r
-\r
-04-6C-59 (hex) Intel Corporate\r
-046C59 (base 16) Intel Corporate\r
- Lot 8, Jalan Hi-Tech 2/3 \r
- Kulim Kedah 09000\r
- MY\r
-\r
90-3F-EA (hex) HUAWEI TECHNOLOGIES CO.,LTD\r
903FEA (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
-D4-40-D0 (hex) OCOSMOS Co., LTD\r
-D440D0 (base 16) OCOSMOS Co., LTD\r
- (Tamnip-Dong) #1, 263-1 Techno 2-Ro Yuseong-Gu\r
- Daejeon Daejeon 34026\r
- KR\r
+C8-CA-63 (hex) Huawei Device Co., Ltd.\r
+C8CA63 (base 16) Huawei Device Co., Ltd.\r
+ No.2 of Xincheng Road, Songshan Lake Zone\r
+ Dongguan Guangdong 523808\r
+ CN\r
+\r
+94-37-F7 (hex) Huawei Device Co., Ltd.\r
+9437F7 (base 16) Huawei Device Co., Ltd.\r
+ No.2 of Xincheng Road, Songshan Lake Zone\r
+ Dongguan Guangdong 523808\r
+ CN\r
\r
94-E7-0B (hex) Intel Corporate\r
94E70B (base 16) Intel Corporate\r
Torino TO I-10154\r
IT\r
\r
-DC-D9-AE (hex) Nokia Shanghai Bell Co., Ltd.\r
-DCD9AE (base 16) Nokia Shanghai Bell Co., Ltd.\r
- No.388 Ning Qiao Road,Jin Qiao Pudong Shanghai\r
- Shanghai 201206\r
- CN\r
-\r
98-B8-BC (hex) Samsung Electronics Co.,Ltd\r
98B8BC (base 16) Samsung Electronics Co.,Ltd\r
#94-1, Imsoo-Dong\r
Ashburton Devon TQ13 7UP\r
GB\r
\r
+D4-40-D0 (hex) OCOSMOS Co., LTD\r
+D440D0 (base 16) OCOSMOS Co., LTD\r
+ (Tamnip-Dong) #1, 263-1 Techno 2-Ro Yuseong-Gu\r
+ Daejeon Daejeon 34026\r
+ KR\r
+\r
10-74-6F (hex) MOTOROLA SOLUTIONS MALAYSIA SDN. BHD.\r
10746F (base 16) MOTOROLA SOLUTIONS MALAYSIA SDN. BHD.\r
INNOPLEX, NO. 2A, MEDAN BAYAN LEPAS, BAYAN LEPAS TECHNOPLEX\r
BAYAN LEPAS PENANG 11900\r
MY\r
\r
-00-92-7D (hex) Ficosa Internationa(Taicang) C0.,Ltd.\r
-00927D (base 16) Ficosa Internationa(Taicang) C0.,Ltd.\r
- No.518, Middle Suzhou Rd., Taicang Economy Developing Area, Taicang,\r
- Suzhou Jiangsu 215400\r
+DC-D9-AE (hex) Nokia Shanghai Bell Co., Ltd.\r
+DCD9AE (base 16) Nokia Shanghai Bell Co., Ltd.\r
+ No.388 Ning Qiao Road,Jin Qiao Pudong Shanghai\r
+ Shanghai 201206\r
CN\r
\r
-44-16-22 (hex) Microsoft Corporation\r
-441622 (base 16) Microsoft Corporation\r
- One Microsoft Way\r
- REDMOND WA 98052\r
- US\r
+1C-08-C1 (hex) LG Innotek\r
+1C08C1 (base 16) LG Innotek\r
+ 978-1 Jangduk dong, Gwangsangu\r
+ Gwangju Gwangju 506-731\r
+ KR\r
\r
44-E6-B0 (hex) China Mobile IOT Company Limited\r
44E6B0 (base 16) China Mobile IOT Company Limited\r
San Jose CA 94568\r
US\r
\r
-1C-08-C1 (hex) LG Innotek\r
-1C08C1 (base 16) LG Innotek\r
- 978-1 Jangduk dong, Gwangsangu\r
- Gwangju Gwangju 506-731\r
- KR\r
+00-92-7D (hex) Ficosa Internationa(Taicang) C0.,Ltd.\r
+00927D (base 16) Ficosa Internationa(Taicang) C0.,Ltd.\r
+ No.518, Middle Suzhou Rd., Taicang Economy Developing Area, Taicang,\r
+ Suzhou Jiangsu 215400\r
+ CN\r
+\r
+44-16-22 (hex) Microsoft Corporation\r
+441622 (base 16) Microsoft Corporation\r
+ One Microsoft Way\r
+ REDMOND WA 98052\r
+ US\r
+\r
+FC-73-FB (hex) HUAWEI TECHNOLOGIES CO.,LTD\r
+FC73FB (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
34-87-3D (hex) Quectel Wireless Solutions Co., Ltd.\r
34873D (base 16) Quectel Wireless Solutions Co., Ltd.\r
DH Weert 6003\r
NL\r
\r
+04-45-62 (hex) ANDRA Sp. z o. o.\r
+044562 (base 16) ANDRA Sp. z o. o.\r
+ Pryzmaty 6/8\r
+ Warszawa 02-226\r
+ PL\r
+\r
58-B6-23 (hex) Beijing Xiaomi Mobile Software Co., Ltd\r
58B623 (base 16) Beijing Xiaomi Mobile Software Co., Ltd\r
Xiaomi Campus, No. 33 Xi erqi Middle Road, Haidian District\r
Wusha,Chang'An DongGuan City,Guangdong, 523860\r
CN\r
\r
-FC-73-FB (hex) HUAWEI TECHNOLOGIES CO.,LTD\r
-FC73FB (base 16) HUAWEI TECHNOLOGIES CO.,LTD\r
- No.2 Xin Cheng Road, Room R6,Songshan Lake Technology Park\r
- Dongguan 523808\r
+74-F7-F6 (hex) Shanghai Sunmi Technology Co.,Ltd.\r
+74F7F6 (base 16) Shanghai Sunmi Technology Co.,Ltd.\r
+ Room 505, KIC Plaza, No.388 Song Hu Road, Yang Pu District, Shanghai, China\r
+ Shanghai Yang Pu District 200433\r
CN\r
\r
-04-45-62 (hex) ANDRA Sp. z o. o.\r
-044562 (base 16) ANDRA Sp. z o. o.\r
- Pryzmaty 6/8\r
- Warszawa 02-226\r
- PL\r
-\r
00-26-9E (hex) Quanta Computer Inc.\r
00269E (base 16) Quanta Computer Inc.\r
NO. 211, WEN HWA 2RD., KUEI SHAN HSIANG, TAIPEI, SHIEN\r
Tao Yuan 33377\r
TW\r
\r
-C0-8F-20 (hex) Shenzhen Skyworth Digital Technology CO., Ltd\r
-C08F20 (base 16) Shenzhen Skyworth Digital Technology CO., Ltd\r
- 4F,Block A, Skyworth?Building,\r
- Shenzhen Guangdong 518057\r
- CN\r
-\r
-74-F7-F6 (hex) Shanghai Sunmi Technology Co.,Ltd.\r
-74F7F6 (base 16) Shanghai Sunmi Technology Co.,Ltd.\r
- Room 505, KIC Plaza, No.388 Song Hu Road, Yang Pu District, Shanghai, China\r
- Shanghai Yang Pu District 200433\r
- CN\r
-\r
C0-CC-42 (hex) Sichuan Tianyi Comheart Telecom Co., Ltd.\r
C0CC42 (base 16) Sichuan Tianyi Comheart Telecom Co., Ltd.\r
No.198,First Section,Snow Mountain Avenue, Jinyuan Town, Dayi County\r
Chengdu Sichuan 611330\r
CN\r
\r
+C0-8F-20 (hex) Shenzhen Skyworth Digital Technology CO., Ltd\r
+C08F20 (base 16) Shenzhen Skyworth Digital Technology CO., Ltd\r
+ 4F,Block A, Skyworth?Building,\r
+ Shenzhen Guangdong 518057\r
+ CN\r
+\r
24-1A-E6 (hex) Huawei Device Co., Ltd.\r
241AE6 (base 16) Huawei Device Co., Ltd.\r
No.2 of Xincheng Road, Songshan Lake Zone\r
Mountain View CA 94043\r
US\r
\r
+1C-5D-80 (hex) Mitubishi Hitachi Power Systems Industries Co., Ltd.\r
+1C5D80 (base 16) Mitubishi Hitachi Power Systems Industries Co., Ltd.\r
+ Nakaku Aioimachi\r
+ Yokohama 2310012\r
+ JP\r
+\r
B4-23-30 (hex) Itron Inc\r
B42330 (base 16) Itron Inc\r
2111 N Molter Rd\r
Osaka 554-0024\r
JP\r
\r
+3C-9C-0F (hex) Intel Corporate\r
+3C9C0F (base 16) Intel Corporate\r
+ Lot 8, Jalan Hi-Tech 2/3 \r
+ Kulim Kedah 09000\r
+ MY\r
+\r
+08-FB-EA (hex) AMPAK Technology,Inc.\r
+08FBEA (base 16) AMPAK Technology,Inc.\r
+ 3F, No.15-1 Zhonghua Road, Hsinchu Industrail Park, Hukou,\r
+ Hsinchu Hsinchu,Taiwan R.O.C. 30352\r
+ TW\r
+\r
A8-02-DB (hex) zte corporation\r
A802DB (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
-1C-5D-80 (hex) Mitubishi Hitachi Power Systems Industries Co., Ltd.\r
-1C5D80 (base 16) Mitubishi Hitachi Power Systems Industries Co., Ltd.\r
- Nakaku Aioimachi\r
- Yokohama 2310012\r
- JP\r
-\r
80-16-05 (hex) Vodafone Italia S.p.A.\r
801605 (base 16) Vodafone Italia S.p.A.\r
Via Lorenteggio nr. 240\r
Milan Italy 20147\r
IT\r
\r
-3C-9C-0F (hex) Intel Corporate\r
-3C9C0F (base 16) Intel Corporate\r
- Lot 8, Jalan Hi-Tech 2/3 \r
- Kulim Kedah 09000\r
- MY\r
+58-65-E6 (hex) infomark\r
+5865E6 (base 16) infomark\r
+ #801, KINS TOWER, JEONGJA-DONG\r
+ SEONGNAM GYOUNGGI 463-847\r
+ KR\r
\r
5C-44-3E (hex) Skullcandy\r
5C443E (base 16) Skullcandy\r
Salt Lake City UT 84123\r
US\r
\r
-08-FB-EA (hex) AMPAK Technology,Inc.\r
-08FBEA (base 16) AMPAK Technology,Inc.\r
- 3F, No.15-1 Zhonghua Road, Hsinchu Industrail Park, Hukou,\r
- Hsinchu Hsinchu,Taiwan R.O.C. 30352\r
- TW\r
+60-EB-5A (hex) Asterfusion Data Technologies Co.,Ltd\r
+60EB5A (base 16) Asterfusion Data Technologies Co.,Ltd\r
+ B401, Building 2, Creative Industry Park, No.328 Xinghu Street, SIP, Suzhou\r
+ suzhou 215123\r
+ CN\r
\r
34-0F-66 (hex) Web Sensing LLC\r
340F66 (base 16) Web Sensing LLC\r
Hanover NH 03755\r
US\r
\r
-58-65-E6 (hex) infomark\r
-5865E6 (base 16) infomark\r
- #801, KINS TOWER, JEONGJA-DONG\r
- SEONGNAM GYOUNGGI 463-847\r
- KR\r
-\r
00-50-F1 (hex) Maxlinear, Inc\r
0050F1 (base 16) Maxlinear, Inc\r
94 Em-Hamoshavot Way.\r
Moscow Moscow 117545\r
RU\r
\r
+90-12-A1 (hex) We Corporation Inc.\r
+9012A1 (base 16) We Corporation Inc.\r
+ 201, 33, Deokcheon-ro, Manan-gu\r
+ Anyang-si Gyeonggi-do 14088\r
+ KR\r
+\r
+64-B6-23 (hex) CCS Care Communication Solutions GmbH\r
+64B623 (base 16) CCS Care Communication Solutions GmbH\r
+ Computerstrasse 6\r
+ Vienna 1100\r
+ AT\r
+\r
+B8-80-35 (hex) Shenzhen Qihu Intelligent Technology Company Limited\r
+B88035 (base 16) Shenzhen Qihu Intelligent Technology Company Limited\r
+ Room 201, Block A, No.1, Qianwan Road 1,Qianhai Shenzhen HongKong Modern Service Industry Cooperation Zone\r
+ Shenzhen Guangdong 518057\r
+ CN\r
+\r
08-54-BB (hex) SHENZHEN CHUANGWEI-RGB ELECTRONICS CO.,LTD\r
0854BB (base 16) SHENZHEN CHUANGWEI-RGB ELECTRONICS CO.,LTD\r
Unit East Block22-24/F,Skyworth semiconductor design Bldg., Gaoxin Ave.4.S.,Nanshan District,Shenzhen,China\r
SHENZHEN GUANGDONG 518057\r
CN\r
\r
-60-EB-5A (hex) Asterfusion Data Technologies Co.,Ltd\r
-60EB5A (base 16) Asterfusion Data Technologies Co.,Ltd\r
- B401, Building 2, Creative Industry Park, No.328 Xinghu Street, SIP, Suzhou\r
- suzhou 215123\r
- CN\r
-\r
E4-D3-73 (hex) HUAWEI TECHNOLOGIES CO.,LTD\r
E4D373 (base 16) HUAWEI TECHNOLOGIES CO.,LTD\r
No.2 Xin Cheng Road, Room R6,Songshan Lake Technology Park\r
KYOTO KYOTO 601-8501\r
JP\r
\r
-E8-1B-69 (hex) Sercomm Corporation.\r
-E81B69 (base 16) Sercomm Corporation.\r
- 3F,No.81,Yu-Yih Rd.,Chu-Nan Chen\r
- Miao-Lih Hsuan 115\r
- TW\r
-\r
68-52-D6 (hex) UGame Technology Co.,Ltd\r
6852D6 (base 16) UGame Technology Co.,Ltd\r
3F, Bld.7, F518 Idea Land, No. 1065 Baoyuan Road, Xixiang Street, Baoan District\r
NO.68, Qinghe Middle Street Haidian District, Beijing 100085\r
CN\r
\r
-90-12-A1 (hex) We Corporation Inc.\r
-9012A1 (base 16) We Corporation Inc.\r
- 201, 33, Deokcheon-ro, Manan-gu\r
- Anyang-si Gyeonggi-do 14088\r
- KR\r
-\r
-B8-80-35 (hex) Shenzhen Qihu Intelligent Technology Company Limited\r
-B88035 (base 16) Shenzhen Qihu Intelligent Technology Company Limited\r
- Room 201, Block A, No.1, Qianwan Road 1,Qianhai Shenzhen HongKong Modern Service Industry Cooperation Zone\r
- Shenzhen Guangdong 518057\r
- CN\r
-\r
-00-17-11 (hex) Cytiva Sweden AB\r
-001711 (base 16) Cytiva Sweden AB\r
- Björkgatan 30\r
- Uppsala SE 75184\r
- SE\r
-\r
B4-C2-6A (hex) Garmin International\r
B4C26A (base 16) Garmin International\r
1200 E. 151st St\r
Olathe KS 66062\r
US\r
\r
-64-B6-23 (hex) CCS Care Communication Solutions GmbH\r
-64B623 (base 16) CCS Care Communication Solutions GmbH\r
- Computerstrasse 6\r
- Vienna 1100\r
- AT\r
-\r
E8-9F-80 (hex) Belkin International Inc.\r
E89F80 (base 16) Belkin International Inc.\r
12045 East Waterfront Drive\r
Playa Vista 90094\r
US\r
\r
+E8-1B-69 (hex) Sercomm Corporation.\r
+E81B69 (base 16) Sercomm Corporation.\r
+ 3F,No.81,Yu-Yih Rd.,Chu-Nan Chen\r
+ Miao-Lih Hsuan 115\r
+ TW\r
+\r
+00-17-11 (hex) Cytiva Sweden AB\r
+001711 (base 16) Cytiva Sweden AB\r
+ Björkgatan 30\r
+ Uppsala SE 75184\r
+ SE\r
+\r
BC-5C-4C (hex) ELECOM CO.,LTD.\r
BC5C4C (base 16) ELECOM CO.,LTD.\r
2F Kudan First Place Bldg. 4-1-28\r
Chiyoda-ku Kudan Kita 102-0073\r
JP\r
\r
+A4-51-29 (hex) XAG\r
+A45129 (base 16) XAG\r
+ Block C, 115 Gaopu Road\r
+ Guangzhou 510663\r
+ CN\r
+\r
6C-E5-F7 (hex) New H3C Technologies Co., Ltd\r
6CE5F7 (base 16) New H3C Technologies Co., Ltd\r
466 Changhe Road, Binjiang District\r
kouka shiga 528-0061\r
JP\r
\r
-A4-51-29 (hex) XAG\r
-A45129 (base 16) XAG\r
- Block C, 115 Gaopu Road\r
- Guangzhou 510663\r
- CN\r
-\r
5C-02-72 (hex) Silicon Laboratories\r
5C0272 (base 16) Silicon Laboratories\r
400 West Cesar Chavez Street\r
Dongguan 523808\r
CN\r
\r
-BC-76-C5 (hex) HUAWEI TECHNOLOGIES CO.,LTD\r
-BC76C5 (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-77-4C (hex) Cisco Systems, Inc\r
DC774C (base 16) Cisco Systems, Inc\r
80 West Tasman Drive\r
Gunpo-si Gyeonggi-do 15880\r
KR\r
\r
-FC-44-82 (hex) Intel Corporate\r
-FC4482 (base 16) Intel Corporate\r
- Lot 8, Jalan Hi-Tech 2/3 \r
- Kulim Kedah 09000\r
- MY\r
-\r
-D8-F8-83 (hex) Intel Corporate\r
-D8F883 (base 16) Intel Corporate\r
- Lot 8, Jalan Hi-Tech 2/3 \r
- Kulim Kedah 09000\r
- MY\r
-\r
-B8-5F-98 (hex) Amazon Technologies Inc.\r
-B85F98 (base 16) Amazon Technologies Inc.\r
- P.O Box 8102\r
- Reno NV 89507\r
- US\r
+BC-76-C5 (hex) HUAWEI TECHNOLOGIES CO.,LTD\r
+BC76C5 (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-85-FC (hex) Microsoft Corporation\r
A085FC (base 16) Microsoft Corporation\r
#04-01 486058\r
SG\r
\r
+B8-5F-98 (hex) Amazon Technologies Inc.\r
+B85F98 (base 16) Amazon Technologies Inc.\r
+ P.O Box 8102\r
+ Reno NV 89507\r
+ US\r
+\r
94-FF-61 (hex) China Mobile Group Device Co.,Ltd.\r
94FF61 (base 16) China Mobile Group Device Co.,Ltd.\r
32 Xuanwumen West Street,Xicheng District\r
Beijing 100095\r
CN\r
\r
+F8-10-93 (hex) Apple, Inc.\r
+F81093 (base 16) Apple, Inc.\r
+ 1 Infinite Loop\r
+ Cupertino CA 95014\r
+ US\r
+\r
FC-66-CF (hex) Apple, Inc.\r
FC66CF (base 16) Apple, Inc.\r
1 Infinite Loop\r
Cupertino CA 95014\r
US\r
\r
-F8-10-93 (hex) Apple, Inc.\r
-F81093 (base 16) Apple, Inc.\r
- 1 Infinite Loop\r
- Cupertino CA 95014\r
- US\r
-\r
5C-D8-9E (hex) Huawei Device Co., Ltd.\r
5CD89E (base 16) Huawei Device Co., Ltd.\r
No.2 of Xincheng Road, Songshan Lake Zone\r
Wuhan Hubei 430074\r
CN\r
\r
-8C-CE-4E (hex) Espressif Inc.\r
-8CCE4E (base 16) Espressif Inc.\r
- Room 204, Building 2, 690 Bibo Rd, Pudong New Area\r
- Shanghai Shanghai 201203\r
- CN\r
-\r
B8-2D-28 (hex) AMPAK Technology,Inc.\r
B82D28 (base 16) AMPAK Technology,Inc.\r
3F, No.15-1 Zhonghua Road, Hsinchu Industrail Park, Hukou,\r
Shanghai 200233\r
CN\r
\r
-EC-C8-9C (hex) Hangzhou Hikvision Digital Technology Co.,Ltd.\r
-ECC89C (base 16) Hangzhou Hikvision Digital Technology Co.,Ltd.\r
- No.555 Qianmo Road\r
- Hangzhou Zhejiang 310052\r
- CN\r
-\r
-F0-13-C1 (hex) Hannto Technology Co., Ltd\r
-F013C1 (base 16) Hannto Technology Co., Ltd\r
- Rm 704,No.1,Lane 88,Shengrong Road, Free Trade Pilot Area,\r
- Shanghai Shanghai 200120\r
+8C-CE-4E (hex) Espressif Inc.\r
+8CCE4E (base 16) Espressif Inc.\r
+ Room 204, Building 2, 690 Bibo Rd, Pudong New Area\r
+ Shanghai Shanghai 201203\r
CN\r
\r
-F8-0D-AC (hex) HP Inc.\r
-F80DAC (base 16) HP Inc.\r
- 10300 Energy Dr\r
- Spring TX 77389\r
- US\r
-\r
88-DA-1A (hex) Redpine Signals, Inc.\r
88DA1A (base 16) Redpine Signals, Inc.\r
Plot 87, Sagar Society \r
Hyderabad AP 500034\r
IN\r
\r
-40-B5-C1 (hex) Cisco Systems, Inc\r
-40B5C1 (base 16) Cisco Systems, Inc\r
- 80 West Tasman Drive\r
- San Jose CA 94568\r
- US\r
-\r
-E4-47-91 (hex) Iris ID Systems, Inc.\r
-E44791 (base 16) Iris ID Systems, Inc.\r
- 8 Clarke Drive\r
- Cranbury 08512\r
+F8-0D-AC (hex) HP Inc.\r
+F80DAC (base 16) HP Inc.\r
+ 10300 Energy Dr\r
+ Spring TX 77389\r
US\r
\r
00-60-65 (hex) B&R Industrial Automation GmbH \r
Eggelsberg 5142\r
AT\r
\r
-84-9D-C2 (hex) Shanghai MXCHIP Information Technology Co., Ltd.\r
-849DC2 (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
-18-45-16 (hex) Texas Instruments\r
-184516 (base 16) Texas Instruments\r
- 12500 TI Blvd\r
- Dallas TX 75243\r
+E4-47-91 (hex) Iris ID Systems, Inc.\r
+E44791 (base 16) Iris ID Systems, Inc.\r
+ 8 Clarke Drive\r
+ Cranbury 08512\r
US\r
\r
+F0-13-C1 (hex) Hannto Technology Co., Ltd\r
+F013C1 (base 16) Hannto Technology Co., Ltd\r
+ Rm 704,No.1,Lane 88,Shengrong Road, Free Trade Pilot Area,\r
+ Shanghai Shanghai 200120\r
+ CN\r
+\r
D0-2E-AB (hex) Texas Instruments\r
D02EAB (base 16) Texas Instruments\r
12500 TI Blvd\r
Dallas TX 75243\r
US\r
\r
+EC-C8-9C (hex) Hangzhou Hikvision Digital Technology Co.,Ltd.\r
+ECC89C (base 16) Hangzhou Hikvision Digital Technology Co.,Ltd.\r
+ No.555 Qianmo Road\r
+ Hangzhou Zhejiang 310052\r
+ CN\r
+\r
84-54-DF (hex) Huawei Device Co., Ltd.\r
8454DF (base 16) Huawei Device Co., Ltd.\r
No.2 of Xincheng Road, Songshan Lake Zone\r
Dongguan Guangdong 523808\r
CN\r
\r
-F0-F7-E7 (hex) HUAWEI TECHNOLOGIES CO.,LTD\r
-F0F7E7 (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
-E8-84-A5 (hex) Intel Corporate\r
-E884A5 (base 16) Intel Corporate\r
- Lot 8, Jalan Hi-Tech 2/3 \r
- Kulim Kedah 09000\r
- MY\r
-\r
-8C-55-BB (hex) Songwoo Information & Technology Co., Ltd\r
-8C55BB (base 16) Songwoo Information & Technology Co., Ltd\r
- 24-9, Jinju-daero 404beon-gil, Jinju-si, Gyeongsangnam-do, Korea \r
- Jinju Gyeongsangnam-do 52826\r
- KR\r
+40-B5-C1 (hex) Cisco Systems, Inc\r
+40B5C1 (base 16) Cisco Systems, Inc\r
+ 80 West Tasman Drive\r
+ San Jose CA 94568\r
+ US\r
\r
-7C-8F-DE (hex) DWnet Technologies(Suzhou) Corporation\r
-7C8FDE (base 16) DWnet Technologies(Suzhou) Corporation\r
- No.8,Tangzhuang Road, Suzhou Industrial Park, Jiangsu, China\r
- Suzhou 21500\r
- CN\r
+18-45-16 (hex) Texas Instruments\r
+184516 (base 16) Texas Instruments\r
+ 12500 TI Blvd\r
+ Dallas TX 75243\r
+ US\r
\r
-98-F1-81 (hex) New H3C Technologies Co., Ltd\r
-98F181 (base 16) New H3C Technologies Co., Ltd\r
- 466 Changhe Road, Binjiang District\r
- Hangzhou Zhejiang 310052\r
+84-9D-C2 (hex) Shanghai MXCHIP Information Technology Co., Ltd.\r
+849DC2 (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
90-80-8F (hex) Huawei Device Co., Ltd.\r
Dongguan Guangdong 523808\r
CN\r
\r
+F0-F7-E7 (hex) HUAWEI TECHNOLOGIES CO.,LTD\r
+F0F7E7 (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
40-A9-CF (hex) Amazon Technologies Inc.\r
40A9CF (base 16) Amazon Technologies Inc.\r
P.O Box 8102\r
HongKong HongKong 999077\r
HK\r
\r
-48-D8-90 (hex) FN-LINK TECHNOLOGY LIMITED\r
-48D890 (base 16) FN-LINK TECHNOLOGY LIMITED\r
- A Building,HuiXin industial park,No 31, YongHe road, Fuyong town, Bao'an District\r
- SHENZHEN GUANGDONG 518100\r
- CN\r
+8C-55-BB (hex) Songwoo Information & Technology Co., Ltd\r
+8C55BB (base 16) Songwoo Information & Technology Co., Ltd\r
+ 24-9, Jinju-daero 404beon-gil, Jinju-si, Gyeongsangnam-do, Korea \r
+ Jinju Gyeongsangnam-do 52826\r
+ KR\r
\r
-78-1F-11 (hex) RAB Lighting\r
-781F11 (base 16) RAB Lighting\r
- Northvale (NJ) 141 Legrand Ave. Northvale, NJ 07647\r
- Northvale NJ 07647\r
- US\r
+7C-8F-DE (hex) DWnet Technologies(Suzhou) Corporation\r
+7C8FDE (base 16) DWnet Technologies(Suzhou) Corporation\r
+ No.8,Tangzhuang Road, Suzhou Industrial Park, Jiangsu, China\r
+ Suzhou 21500\r
+ CN\r
\r
-F8-B9-5A (hex) LG Innotek\r
-F8B95A (base 16) LG Innotek\r
- 26, Hanamsandan 5beon-ro\r
- Gwangju Gwangsan-gu 506-731\r
- KR\r
+98-F1-81 (hex) New H3C Technologies Co., Ltd\r
+98F181 (base 16) New H3C Technologies Co., Ltd\r
+ 466 Changhe Road, Binjiang District\r
+ Hangzhou Zhejiang 310052\r
+ CN\r
\r
C4-1C-9C (hex) JiQiDao\r
C41C9C (base 16) JiQiDao\r
Austin TX 78701\r
US\r
\r
-00-26-4E (hex) r2p GmbH\r
-00264E (base 16) r2p GmbH\r
- Norderhofenden 12-13\r
- Flensburg 24937\r
- DE\r
-\r
-B0-BB-E5 (hex) Sagemcom Broadband SAS\r
-B0BBE5 (base 16) Sagemcom Broadband SAS\r
- 250, route de l'Empereur\r
- Rueil Malmaison Cedex hauts de seine 92848\r
- FR\r
+48-D8-90 (hex) FN-LINK TECHNOLOGY LIMITED\r
+48D890 (base 16) FN-LINK TECHNOLOGY LIMITED\r
+ A Building,HuiXin industial park,No 31, YongHe road, Fuyong town, Bao'an District\r
+ SHENZHEN GUANGDONG 518100\r
+ CN\r
\r
-90-B4-DD (hex) Private\r
-90B4DD (base 16) Private\r
+78-1F-11 (hex) RAB Lighting\r
+781F11 (base 16) RAB Lighting\r
+ Northvale (NJ) 141 Legrand Ave. Northvale, NJ 07647\r
+ Northvale NJ 07647\r
+ US\r
\r
C4-18-E9 (hex) Samsung Electronics Co.,Ltd\r
C418E9 (base 16) Samsung Electronics Co.,Ltd\r
Gumi Gyeongbuk 730-350\r
KR\r
\r
-1C-E5-7F (hex) Samsung Electronics Co.,Ltd\r
-1CE57F (base 16) Samsung Electronics Co.,Ltd\r
- #94-1, Imsoo-Dong\r
- Gumi Gyeongbuk 730-350\r
- KR\r
-\r
-B0-C5-3C (hex) Cisco Systems, Inc\r
-B0C53C (base 16) Cisco Systems, Inc\r
- 80 West Tasman Drive\r
- San Jose CA 94568\r
- US\r
-\r
-EC-CE-13 (hex) Cisco Systems, Inc\r
-ECCE13 (base 16) Cisco Systems, Inc\r
- 80 West Tasman Drive\r
- San Jose CA 94568\r
- US\r
-\r
10-71-00 (hex) Huawei Device Co., Ltd.\r
107100 (base 16) Huawei Device Co., Ltd.\r
No.2 of Xincheng Road, Songshan Lake Zone\r
Rueil Malmaison Cedex hauts de seine 92848\r
FR\r
\r
-A4-68-BC (hex) Oakley Inc.\r
-A468BC (base 16) Oakley Inc.\r
- 1 Icon\r
- Foothill Ranch CA 92610\r
- US\r
+F8-B9-5A (hex) LG Innotek\r
+F8B95A (base 16) LG Innotek\r
+ 26, Hanamsandan 5beon-ro\r
+ Gwangju Gwangsan-gu 506-731\r
+ KR\r
\r
-60-7E-A4 (hex) Shanghai Imilab Technology Co.Ltd\r
-607EA4 (base 16) Shanghai Imilab Technology Co.Ltd\r
- 29F, A Tower, New Caohejing International Business Center, Guiping Road, Xuhui District\r
- Shanghai Shanghai 200000\r
- CN\r
+00-26-4E (hex) r2p GmbH\r
+00264E (base 16) r2p GmbH\r
+ Norderhofenden 12-13\r
+ Flensburg 24937\r
+ DE\r
+\r
+B0-BB-E5 (hex) Sagemcom Broadband SAS\r
+B0BBE5 (base 16) Sagemcom Broadband SAS\r
+ 250, route de l'Empereur\r
+ Rueil Malmaison Cedex hauts de seine 92848\r
+ FR\r
+\r
+90-B4-DD (hex) Private\r
+90B4DD (base 16) Private\r
+\r
+1C-9F-4E (hex) COOSEA GROUP (HK) COMPANY LIMITED\r
+1C9F4E (base 16) COOSEA GROUP (HK) COMPANY LIMITED\r
+ UNIT 5-6 16/F MULTIFIELD PLAZA 3-7A PRAT AVENUE TSIMSHATSUI\r
+ KL 999077\r
+ HK\r
+\r
+BC-5B-D5 (hex) ARRIS Group, Inc.\r
+BC5BD5 (base 16) ARRIS Group, Inc.\r
+ 6450 Sequence Drive\r
+ San Diego CA 92121\r
+ US\r
\r
24-11-45 (hex) Xiaomi Communications Co Ltd\r
241145 (base 16) Xiaomi Communications Co Ltd\r
Hong Kong KOWLOON 999077\r
HK\r
\r
-1C-9F-4E (hex) COOSEA GROUP (HK) COMPANY LIMITED\r
-1C9F4E (base 16) COOSEA GROUP (HK) COMPANY LIMITED\r
- UNIT 5-6 16/F MULTIFIELD PLAZA 3-7A PRAT AVENUE TSIMSHATSUI\r
- KL 999077\r
- HK\r
+1C-E5-7F (hex) Samsung Electronics Co.,Ltd\r
+1CE57F (base 16) Samsung Electronics Co.,Ltd\r
+ #94-1, Imsoo-Dong\r
+ Gumi Gyeongbuk 730-350\r
+ KR\r
\r
-14-AB-02 (hex) HUAWEI TECHNOLOGIES CO.,LTD\r
-14AB02 (base 16) HUAWEI TECHNOLOGIES CO.,LTD\r
- No.2 Xin Cheng Road, Room R6,Songshan Lake Technology Park\r
- Dongguan 523808\r
- CN\r
+B0-C5-3C (hex) Cisco Systems, Inc\r
+B0C53C (base 16) Cisco Systems, Inc\r
+ 80 West Tasman Drive\r
+ San Jose CA 94568\r
+ US\r
\r
-BC-5B-D5 (hex) ARRIS Group, Inc.\r
-BC5BD5 (base 16) ARRIS Group, Inc.\r
- 6450 Sequence Drive\r
- San Diego CA 92121\r
+EC-CE-13 (hex) Cisco Systems, Inc\r
+ECCE13 (base 16) Cisco Systems, Inc\r
+ 80 West Tasman Drive\r
+ San Jose CA 94568\r
US\r
\r
08-55-31 (hex) Routerboard.com\r
Riga Riga LV1009\r
LV\r
\r
+A4-68-BC (hex) Oakley Inc.\r
+A468BC (base 16) Oakley Inc.\r
+ 1 Icon\r
+ Foothill Ranch CA 92610\r
+ US\r
+\r
3C-61-05 (hex) Espressif Inc.\r
3C6105 (base 16) Espressif Inc.\r
Room 204, Building 2, 690 Bibo Rd, Pudong New Area\r
Shanghai Shanghai 201203\r
CN\r
\r
+60-7E-A4 (hex) Shanghai Imilab Technology Co.Ltd\r
+607EA4 (base 16) Shanghai Imilab Technology Co.Ltd\r
+ 29F, A Tower, New Caohejing International Business Center, Guiping Road, Xuhui District\r
+ Shanghai Shanghai 200000\r
+ CN\r
+\r
24-06-AA (hex) GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP.,LTD\r
2406AA (base 16) GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP.,LTD\r
NO.18 HAIBIN ROAD,\r
DONG GUAN GUANG DONG 523860\r
CN\r
\r
+08-65-F0 (hex) JM Zengge Co., Ltd\r
+0865F0 (base 16) JM Zengge Co., Ltd\r
+ 5/F Torch building, Jinou Road#288, Jianghai District\r
+ Jiangmen Guangdong 529080\r
+ CN\r
+\r
+14-AB-02 (hex) HUAWEI TECHNOLOGIES CO.,LTD\r
+14AB02 (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
84-30-95 (hex) Hon Hai Precision IND.CO.,LTD\r
843095 (base 16) Hon Hai Precision IND.CO.,LTD\r
No. 66 Chung Shan Road TU-Cheng Industrial district TAIPEI TAIWAN \r
TAIPEI TAIWAN 33859\r
CN\r
\r
-08-65-F0 (hex) JM Zengge Co., Ltd\r
-0865F0 (base 16) JM Zengge Co., Ltd\r
- 5/F Torch building, Jinou Road#288, Jianghai District\r
- Jiangmen Guangdong 529080\r
+00-8A-55 (hex) Huawei Device Co., Ltd.\r
+008A55 (base 16) Huawei Device Co., Ltd.\r
+ No.2 of Xincheng Road, Songshan Lake Zone\r
+ Dongguan Guangdong 523808\r
+ CN\r
+\r
+64-A2-8A (hex) Huawei Device Co., Ltd.\r
+64A28A (base 16) Huawei Device Co., Ltd.\r
+ No.2 of Xincheng Road, Songshan Lake Zone\r
+ Dongguan Guangdong 523808\r
CN\r
\r
AC-47-1B (hex) Huawei Device Co., Ltd.\r
Dongguan Guangdong 523808\r
CN\r
\r
+4C-20-B8 (hex) Apple, Inc.\r
+4C20B8 (base 16) Apple, Inc.\r
+ 1 Infinite Loop\r
+ Cupertino CA 95014\r
+ US\r
+\r
00-31-92 (hex) TP-Link Corporation Limited\r
003192 (base 16) TP-Link Corporation Limited\r
Room 901,9/F.New East Ocean Centre, 9 Science Museum Road\r
shenzhen guangdong 518057\r
CN\r
\r
-00-8A-55 (hex) Huawei Device Co., Ltd.\r
-008A55 (base 16) Huawei Device Co., Ltd.\r
- No.2 of Xincheng Road, Songshan Lake Zone\r
- Dongguan Guangdong 523808\r
- CN\r
-\r
-64-A2-8A (hex) Huawei Device Co., Ltd.\r
-64A28A (base 16) Huawei Device Co., Ltd.\r
- No.2 of Xincheng Road, Songshan Lake Zone\r
- Dongguan Guangdong 523808\r
- CN\r
-\r
-B4-56-E3 (hex) Apple, Inc.\r
-B456E3 (base 16) Apple, Inc.\r
- 1 Infinite Loop\r
- Cupertino CA 95014\r
- US\r
-\r
-4C-20-B8 (hex) Apple, Inc.\r
-4C20B8 (base 16) Apple, Inc.\r
- 1 Infinite Loop\r
- Cupertino CA 95014\r
- US\r
-\r
-14-88-E6 (hex) Apple, Inc.\r
-1488E6 (base 16) Apple, Inc.\r
- 1 Infinite Loop\r
- Cupertino CA 95014\r
- US\r
-\r
-EC-0D-E4 (hex) Amazon Technologies Inc.\r
-EC0DE4 (base 16) Amazon Technologies Inc.\r
- P.O Box 8102\r
- Reno NV 89507\r
- US\r
-\r
BC-0F-9A (hex) D-Link International\r
BC0F9A (base 16) D-Link International\r
1 Internal Business Park, #03-12,The Synergy\r
Fort Lauderdale FL 33301\r
US\r
\r
+B4-56-E3 (hex) Apple, Inc.\r
+B456E3 (base 16) Apple, Inc.\r
+ 1 Infinite Loop\r
+ Cupertino CA 95014\r
+ US\r
+\r
+14-88-E6 (hex) Apple, Inc.\r
+1488E6 (base 16) Apple, Inc.\r
+ 1 Infinite Loop\r
+ Cupertino CA 95014\r
+ US\r
+\r
24-64-9F (hex) Huawei Device Co., Ltd.\r
24649F (base 16) Huawei Device Co., Ltd.\r
No.2 of Xincheng Road, Songshan Lake Zone\r
Hong Kong 999077\r
CN\r
\r
-8C-AE-49 (hex) IEEE Registration Authority\r
-8CAE49 (base 16) IEEE Registration Authority\r
- 445 Hoes Lane\r
- Piscataway NJ 08554\r
- US\r
-\r
-74-95-EC (hex) ALPSALPINE CO,.LTD\r
-7495EC (base 16) ALPSALPINE CO,.LTD\r
- 6-1\r
- Kakuda Miyagi-Pref 981-1595\r
- JP\r
-\r
-00-21-4F (hex) ALPSALPINE CO,.LTD\r
-00214F (base 16) ALPSALPINE CO,.LTD\r
- 1-2-1, Okinouchi,\r
- Soma-city, Fukushima-pref., 976-8501\r
- JP\r
-\r
04-98-F3 (hex) ALPSALPINE CO,.LTD\r
0498F3 (base 16) ALPSALPINE CO,.LTD\r
6-1 NISHIDA\r
Kakuda-City Miyagi-Pref 981-1595\r
JP\r
\r
+20-FF-36 (hex) IFLYTEK CO.,LTD.\r
+20FF36 (base 16) IFLYTEK CO.,LTD.\r
+ National Intelligent Speech High-tech Industrialization Base, No. 666, Wangjiang Road West,\r
+ Hefei An hui 230088\r
+ CN\r
+\r
+74-95-EC (hex) ALPSALPINE CO,.LTD\r
+7495EC (base 16) ALPSALPINE CO,.LTD\r
+ 6-1\r
+ Kakuda Miyagi-Pref 981-1595\r
+ JP\r
+\r
+8C-AE-49 (hex) IEEE Registration Authority\r
+8CAE49 (base 16) IEEE Registration Authority\r
+ 445 Hoes Lane\r
+ Piscataway NJ 08554\r
+ US\r
+\r
+00-21-4F (hex) ALPSALPINE CO,.LTD\r
+00214F (base 16) ALPSALPINE CO,.LTD\r
+ 1-2-1, Okinouchi,\r
+ Soma-city, Fukushima-pref., 976-8501\r
+ JP\r
+\r
+88-23-8C (hex) Fiberhome Telecommunication Technologies Co.,LTD\r
+88238C (base 16) Fiberhome Telecommunication Technologies Co.,LTD\r
+ No.5 DongXin Road\r
+ Wuhan Hubei 430074\r
+ CN\r
+\r
+B0-EE-7B (hex) Roku, Inc\r
+B0EE7B (base 16) Roku, Inc\r
+ 1155 Coleman Ave\r
+ San Jose CA 95110\r
+ US\r
+\r
+D8-31-34 (hex) Roku, Inc\r
+D83134 (base 16) Roku, Inc\r
+ 1155 Coleman Ave\r
+ San Jose CA 95110\r
+ US\r
+\r
+64-05-E4 (hex) ALPSALPINE CO .,LTD\r
+6405E4 (base 16) ALPSALPINE CO .,LTD\r
+ nishida 6-1\r
+ kakuda-City Miyagi-Pref 981-1595\r
+ JP\r
+\r
+98-ED-7E (hex) eero inc.\r
+98ED7E (base 16) eero inc.\r
+ 660 3rd Street\r
+ San Francisco CA 94107\r
+ US\r
+\r
+10-59-32 (hex) Roku, Inc\r
+105932 (base 16) Roku, Inc\r
+ 1155 Coleman Ave\r
+ San Jose CA 95110\r
+ US\r
+\r
+E8-F4-08 (hex) Intel Corporate\r
+E8F408 (base 16) Intel Corporate\r
+ Lot 8, Jalan Hi-Tech 2/3 \r
+ Kulim Kedah 09000\r
+ MY\r
+\r
+5C-6F-69 (hex) Broadcom Limited\r
+5C6F69 (base 16) Broadcom Limited\r
+ 15191 Alton Parkway\r
+ Irvine CA 92618\r
+ US\r
+\r
+D0-12-CB (hex) AVM Audiovisuelles Marketing und Computersysteme GmbH\r
+D012CB (base 16) AVM Audiovisuelles Marketing und Computersysteme GmbH\r
+ Alt-Moabit 95\r
+ Berlin Berlin 10559\r
+ DE\r
+\r
+FC-44-82 (hex) Intel Corporate\r
+FC4482 (base 16) Intel Corporate\r
+ Lot 8, Jalan Hi-Tech 2/3 \r
+ Kulim Kedah 09000\r
+ MY\r
+\r
+D8-F8-83 (hex) Intel Corporate\r
+D8F883 (base 16) Intel Corporate\r
+ Lot 8, Jalan Hi-Tech 2/3 \r
+ Kulim Kedah 09000\r
+ MY\r
+\r
+E8-84-A5 (hex) Intel Corporate\r
+E884A5 (base 16) Intel Corporate\r
+ Lot 8, Jalan Hi-Tech 2/3 \r
+ Kulim Kedah 09000\r
+ MY\r
+\r
+78-CF-2F (hex) HUAWEI TECHNOLOGIES CO.,LTD\r
+78CF2F (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
+A8-3B-5C (hex) HUAWEI TECHNOLOGIES CO.,LTD\r
+A83B5C (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-B0-FE (hex) Team EPS GmbH\r
+58B0FE (base 16) Team EPS GmbH\r
+ Am Herdicksbach 2 - Halle 9\r
+ Waltrop 45731\r
+ DE\r
+\r
+A8-CC-6F (hex) HMD Global Oy\r
+A8CC6F (base 16) HMD Global Oy\r
+ Bertel Jungin aukio 9\r
+ Espoo 02600\r
+ FI\r
+\r
+14-3F-A6 (hex) Sony Home Entertainment&Sound Products Inc\r
+143FA6 (base 16) Sony Home Entertainment&Sound Products Inc\r
+ Sony City Osaki 2-10-1 Osaki Shinagawa-ku\r
+ Tokyo Japan 141-8610\r
+ JP\r
+\r
+74-8B-29 (hex) Micobiomed\r
+748B29 (base 16) Micobiomed\r
+ 54 Changeop-ro\r
+ 54 Changeop-ro Gyeonggi-do 13449\r
+ KR\r
+\r
+04-49-5D (hex) Huawei Device Co., Ltd.\r
+04495D (base 16) Huawei Device Co., Ltd.\r
+ No.2 of Xincheng Road, Songshan Lake Zone\r
+ Dongguan Guangdong 523808\r
+ CN\r
+\r
+44-D4-53 (hex) Sagemcom Broadband SAS\r
+44D453 (base 16) Sagemcom Broadband SAS\r
+ 250, route de l'Empereur\r
+ Rueil Malmaison Cedex hauts de seine 92848\r
+ FR\r
+\r
+DC-CD-74 (hex) Japan E.M.Solutions Co., Ltd.\r
+DCCD74 (base 16) Japan E.M.Solutions Co., Ltd.\r
+ 35 Saho\r
+ Kato 673-1447\r
+ JP\r
+\r
+00-25-50 (hex) Riverbed Technology, Inc.\r
+002550 (base 16) Riverbed Technology, Inc.\r
+ 680 Folsom St\r
+ San Francisco CA 94107\r
+ US\r
+\r
+00-12-93 (hex) ABB Power Protection (CH)\r
+001293 (base 16) ABB Power Protection (CH)\r
+ 1501 Roanoke Blvd.\r
+ Salem VA 24153\r
+ US\r
+\r
+0C-96-CD (hex) MERCURY CORPORATION\r
+0C96CD (base 16) MERCURY CORPORATION\r
+ 90, Gajaeul-ro, Seo-gu\r
+ INCHEON 22830\r
+ KR\r
+\r
+A0-3B-01 (hex) Kyung In Electronics\r
+A03B01 (base 16) Kyung In Electronics\r
+ #1411, Byucksan Digital Valley 2, 184, Gasan Digital2-ro, Geumcheon-gu\r
+ Seoul 08501\r
+ KR\r
+\r
+18-18-8B (hex) FUJITSU CONNECTED TECHNOLOGIES LIMITED\r
+18188B (base 16) FUJITSU CONNECTED TECHNOLOGIES LIMITED\r
+ Sanki Yamato Building, 7-10-1 Chuorinkan\r
+ Yamato Kanagawa 242-8588\r
+ JP\r
+\r
+14-5E-69 (hex) GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP.,LTD\r
+145E69 (base 16) GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP.,LTD\r
+ NO.18 HAIBIN ROAD,\r
+ DONG GUAN GUANG DONG 523860\r
+ CN\r
+\r
+C4-D4-38 (hex) HUAWEI TECHNOLOGIES CO.,LTD\r
+C4D438 (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
+C0-28-0B (hex) Honor Device Co., Ltd.\r
+C0280B (base 16) Honor Device Co., Ltd.\r
+ A1701, Block AB, Building 1, Tianan Yungu Phase I, Gangtou Community, Bantian Street\r
+ Shenzhen Guangdong 518129\r
+ CN\r
+\r
+9C-EA-97 (hex) Honor Device Co., Ltd.\r
+9CEA97 (base 16) Honor Device Co., Ltd.\r
+ A1701, Block AB, Building 1, Tianan Yungu Phase I, Gangtou Community, Bantian Street\r
+ Shenzhen Guangdong 518129\r
+ CN\r
+\r
+F0-FE-E7 (hex) Huawei Device Co., Ltd.\r
+F0FEE7 (base 16) Huawei Device Co., Ltd.\r
+ No.2 of Xincheng Road, Songshan Lake Zone\r
+ Dongguan Guangdong 523808\r
+ CN\r
+\r
+54-21-1D (hex) Huawei Device Co., Ltd.\r
+54211D (base 16) Huawei Device Co., Ltd.\r
+ No.2 of Xincheng Road, Songshan Lake Zone\r
+ Dongguan Guangdong 523808\r
+ CN\r
+\r
+C4-E2-87 (hex) HUAWEI TECHNOLOGIES CO.,LTD\r
+C4E287 (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
+48-4C-29 (hex) HUAWEI TECHNOLOGIES CO.,LTD\r
+484C29 (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-0D-E4 (hex) Amazon Technologies Inc.\r
+EC0DE4 (base 16) Amazon Technologies Inc.\r
+ P.O Box 8102 \r
+ Reno NV 89507\r
+ US\r
+\r
+DC-A1-20 (hex) Nokia\r
+DCA120 (base 16) Nokia\r
+ 600 March Road\r
+ Kanata Ontario K2K 2E6\r
+ CA\r
+\r
+50-52-3B (hex) Nokia\r
+50523B (base 16) Nokia\r
+ 600 March Road\r
+ Kanata Ontario K2K 2E6\r
+ CA\r
+\r
+E8-D2-FF (hex) Sagemcom Broadband SAS\r
+E8D2FF (base 16) Sagemcom Broadband SAS\r
+ 250, route de l'Empereur\r
+ Rueil Malmaison Cedex hauts de seine 92848\r
+ FR\r
+\r
+F4-B3-01 (hex) Intel Corporate\r
+F4B301 (base 16) Intel Corporate\r
+ Lot 8, Jalan Hi-Tech 2/3 \r
+ Kulim Kedah 09000\r
+ MY\r
+\r
+5C-DE-34 (hex) SHENZHEN MERCURY COMMUNICATION TECHNOLOGIES CO.,LTD.\r
+5CDE34 (base 16) SHENZHEN MERCURY COMMUNICATION TECHNOLOGIES CO.,LTD.\r
+ 3/F, Building R1-B, High-Tech Industrial Park, Nanshan District\r
+ Shenzhen Guangdong 518057\r
+ CN\r
+\r
+A0-A3-F0 (hex) D-Link International\r
+A0A3F0 (base 16) D-Link International\r
+ 1 Internal Business Park, #03-12,The Synergy\r
+ Singapore Singapore 609917\r
+ SG\r
+\r
+84-65-69 (hex) New H3C Technologies Co., Ltd\r
+846569 (base 16) New H3C Technologies Co., Ltd\r
+ 466 Changhe Road, Binjiang District\r
+ Hangzhou Zhejiang 310052\r
+ CN\r
+\r
+68-78-48 (hex) WESTUNITIS CO., LTD.\r
+687848 (base 16) WESTUNITIS CO., LTD.\r
+ 29F Grand Front Osaka Tower-A, 4-20, Ofukacho,\r
+ Osaka Kita-ku 530-0011\r
+ JP\r
+\r
+9C-82-3F (hex) Huawei Device Co., Ltd.\r
+9C823F (base 16) Huawei Device Co., Ltd.\r
+ No.2 of Xincheng Road, Songshan Lake Zone\r
+ Dongguan Guangdong 523808\r
+ CN\r
+\r
+54-F6-07 (hex) Huawei Device Co., Ltd.\r
+54F607 (base 16) Huawei Device Co., Ltd.\r
+ No.2 of Xincheng Road, Songshan Lake Zone\r
+ Dongguan Guangdong 523808\r
+ CN\r
+\r
9C-FF-C2 (hex) AVI Systems GmbH\r
9CFFC2 (base 16) AVI Systems GmbH\r
Dr. Franz Wilhelmstraße 2A\r
San Diego CA 92121\r
US\r
\r
-C0-41-21 (hex) Nokia\r
-C04121 (base 16) Nokia\r
- Karaportti 3\r
- Espoo Finland 02610\r
- FI\r
-\r
74-88-BB (hex) Cisco Systems, Inc\r
7488BB (base 16) Cisco Systems, Inc\r
80 West Tasman Drive\r
San Jose CA 94568\r
US\r
\r
-0C-7C-28 (hex) Nokia\r
-0C7C28 (base 16) Nokia\r
- Karaportti 3\r
- Espoo Finland 02610\r
- FI\r
-\r
68-43-D7 (hex) Agilecom Photonics Solutions Guangdong Limited\r
6843D7 (base 16) Agilecom Photonics Solutions Guangdong Limited\r
No.1-6, Shenwan Industrial Park, Shenwan Town\r
Dallas TX 75243\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
C8-DE-C9 (hex) Coriant\r
C8DEC9 (base 16) Coriant\r
1415 W. Diehl Rd\r
Logrono La Rioja 26001\r
ES\r
\r
-54-FA-96 (hex) Nokia\r
-54FA96 (base 16) Nokia\r
- Karaportti 3\r
- Espoo Finland 02610\r
- FI\r
-\r
60-33-4B (hex) Apple, Inc.\r
60334B (base 16) Apple, Inc.\r
1 Infinite Loop\r
Weifang Shandong 261061\r
CN\r
\r
-6C-98-EB (hex) Riverbed Technology, Inc.\r
-6C98EB (base 16) Riverbed Technology, Inc.\r
- 680 Folsom St.\r
- San Francisco CA 94107\r
- US\r
-\r
00-9E-1E (hex) Cisco Systems, Inc\r
009E1E (base 16) Cisco Systems, Inc\r
80 West Tasman Drive\r
Daejeon 305-510\r
KR\r
\r
-00-1F-F5 (hex) Kongsberg Defence & Aerospace\r
-001FF5 (base 16) Kongsberg Defence & Aerospace\r
- Olav Brunborgs vei 6\r
- Billingstad 1396\r
- NO\r
-\r
00-1F-F2 (hex) VIA Technologies, Inc.\r
001FF2 (base 16) VIA Technologies, Inc.\r
1F, 531, Chung-Cheng Road\r
SE-331 02 Värnamo SE-331 02\r
SE\r
\r
-00-15-E7 (hex) Quantec Tontechnik\r
-0015E7 (base 16) Quantec Tontechnik\r
- Mittenwalderstr.63\r
- München D-81377\r
- DE\r
-\r
00-15-D3 (hex) Pantech&Curitel Communications, Inc.\r
0015D3 (base 16) Pantech&Curitel Communications, Inc.\r
1451-34, Seocho-dong, Seocho-Gu\r
Mill Valley CA 94941\r
US\r
\r
-7C-DF-A1 (hex) Espressif Inc.\r
-7CDFA1 (base 16) Espressif Inc.\r
- Room 204, Building 2, 690 Bibo Rd, Pudong New Area\r
- Shanghai Shanghai 201203\r
- CN\r
-\r
-98-00-6A (hex) zte corporation\r
-98006A (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-26-74 (hex) Hunter Douglas\r
002674 (base 16) Hunter Douglas\r
One Duette Way\r
Broomfield CO 80020\r
US\r
\r
+FC-E1-4F (hex) BRK Brands, Inc.\r
+FCE14F (base 16) BRK Brands, Inc.\r
+ 3901 Liberty Street\r
+ Aurora IL 60504\r
+ US\r
+\r
+88-96-55 (hex) Zitte corporation\r
+889655 (base 16) Zitte corporation\r
+ 4F Yokohama Kusunoki-cho Building,4-7 Kusunoki-cho,Nishi-ku\r
+ Yokohama Kanagawa 2200003\r
+ JP\r
+\r
1C-97-C5 (hex) Ynomia Pty Ltd\r
1C97C5 (base 16) Ynomia Pty Ltd\r
153 Tooronga Rd\r
shenzhen guangdong 518000\r
CN\r
\r
-88-96-55 (hex) Zitte corporation\r
-889655 (base 16) Zitte corporation\r
- 4F Yokohama Kusunoki-cho Building,4-7 Kusunoki-cho,Nishi-ku\r
- Yokohama Kanagawa 2200003\r
- JP\r
+98-00-6A (hex) zte corporation\r
+98006A (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-DF-A1 (hex) Espressif Inc.\r
+7CDFA1 (base 16) Espressif Inc.\r
+ Room 204, Building 2, 690 Bibo Rd, Pudong New Area\r
+ Shanghai Shanghai 201203\r
+ CN\r
\r
F4-A4-D6 (hex) HUAWEI TECHNOLOGIES CO.,LTD\r
F4A4D6 (base 16) HUAWEI TECHNOLOGIES CO.,LTD\r
Dongguan 523808\r
CN\r
\r
-FC-E1-4F (hex) BRK Brands, Inc.\r
-FCE14F (base 16) BRK Brands, Inc.\r
- 3901 Liberty Street\r
- Aurora IL 60504\r
- US\r
-\r
74-B6-B6 (hex) eero inc.\r
74B6B6 (base 16) eero inc.\r
660 3rd Street\r
San Francisco CA 94107\r
US\r
\r
+84-2E-14 (hex) Silicon Laboratories\r
+842E14 (base 16) Silicon Laboratories\r
+ 7000 W. William Cannon Dr.\r
+ Austin TX 78735\r
+ US\r
+\r
+44-10-FE (hex) Huizhou Foryou General Electronics Co., Ltd.\r
+4410FE (base 16) Huizhou Foryou General Electronics Co., Ltd.\r
+ North Shangxia Road, Dongjiang Hi-tech Industry Park\r
+ Huizhou Guangdong 516000\r
+ CN\r
+\r
+EC-31-6D (hex) Hansgrohe\r
+EC316D (base 16) Hansgrohe\r
+ Auestraße 5-9\r
+ Schiltach 77761\r
+ DE\r
+\r
EC-97-B2 (hex) SUMEC Machinery & Electric Co.,Ltd.\r
EC97B2 (base 16) SUMEC Machinery & Electric Co.,Ltd.\r
198# ChangJiang Road, XuanWu District, 17F, SUMEC Building\r
Shenzhen GuangDong 518000\r
CN\r
\r
-84-2E-14 (hex) Silicon Laboratories\r
-842E14 (base 16) Silicon Laboratories\r
- 7000 W. William Cannon Dr.\r
- Austin TX 78735\r
- US\r
-\r
-10-05-E1 (hex) Nokia\r
-1005E1 (base 16) Nokia\r
- 600 March Road\r
- Kanata Ontario K2K 2E6\r
- CA\r
-\r
08-F4-58 (hex) Huawei Device Co., Ltd.\r
08F458 (base 16) Huawei Device Co., Ltd.\r
No.2 of Xincheng Road, Songshan Lake Zone\r
Odawara Kanagawa 250-0011\r
JP\r
\r
+10-05-E1 (hex) Nokia\r
+1005E1 (base 16) Nokia\r
+ 600 March Road\r
+ Kanata Ontario K2K 2E6\r
+ CA\r
+\r
6C-D9-4C (hex) vivo Mobile Communication Co., Ltd.\r
6CD94C (base 16) vivo Mobile Communication Co., Ltd.\r
#283,BBK Road\r
Wusha,Chang'An DongGuan City,Guangdong, 523860\r
CN\r
\r
-EC-31-6D (hex) Hansgrohe\r
-EC316D (base 16) Hansgrohe\r
- Auestraße 5-9\r
- Schiltach 77761\r
- DE\r
-\r
-44-10-FE (hex) Huizhou Foryou General Electronics Co., Ltd.\r
-4410FE (base 16) Huizhou Foryou General Electronics Co., Ltd.\r
- North Shangxia Road, Dongjiang Hi-tech Industry Park\r
- Huizhou Guangdong 516000\r
- CN\r
+AC-1E-D0 (hex) Temic Automotive Philippines Inc.\r
+AC1ED0 (base 16) Temic Automotive Philippines Inc.\r
+ Bagsakan Road, FTI estate\r
+ Taguig 1630\r
+ PH\r
\r
7C-AB-60 (hex) Apple, Inc.\r
7CAB60 (base 16) Apple, Inc.\r
North Point Hong Kong 180\r
HK\r
\r
+DC-35-F1 (hex) Positivo Tecnologia S.A.\r
+DC35F1 (base 16) Positivo Tecnologia S.A.\r
+ João Bettega, 5200\r
+ Curitiba Paraná 81350-000\r
+ BR\r
+\r
D4-DC-09 (hex) Mist Systems, Inc.\r
D4DC09 (base 16) Mist Systems, Inc.\r
1601 South De Anza Blvd, Suite 248\r
Cupertino CA 95014\r
US\r
\r
+E8-E9-8E (hex) SOLAR controls s.r.o.\r
+E8E98E (base 16) SOLAR controls s.r.o.\r
+ Brojova 25\r
+ Plzen 32600\r
+ CZ\r
+\r
00-88-BA (hex) NC&C\r
0088BA (base 16) NC&C\r
Gurogu\r
Seoul 08390\r
KR\r
\r
+40-2B-69 (hex) Kumho Electric Inc.\r
+402B69 (base 16) Kumho Electric Inc.\r
+ 309, Bongmu-ro, Namsa-myeon, Cheoin-gu\r
+ Yongin-si Gyeonggi-do 17118\r
+ KR\r
+\r
+64-F6-BB (hex) Fibocom Wireless Inc.\r
+64F6BB (base 16) Fibocom Wireless Inc.\r
+ 5/F,TowerA,Technology Building 2,1057 Nanhai Blvd, Nanshan\r
+ Shenzhen 518000 Guangdong\r
+ CN\r
+\r
F4-73-35 (hex) Logitech Far East\r
F47335 (base 16) Logitech Far East\r
#2 Creation Rd. 4,\r
Seoul Seoul 05510\r
KR\r
\r
-5C-A6-2D (hex) Cisco Systems, Inc\r
-5CA62D (base 16) Cisco Systems, Inc\r
- 80 West Tasman Drive\r
- San Jose CA 94568\r
- US\r
-\r
-40-2B-69 (hex) Kumho Electric Inc.\r
-402B69 (base 16) Kumho Electric Inc.\r
- 309, Bongmu-ro, Namsa-myeon, Cheoin-gu\r
- Yongin-si Gyeonggi-do 17118\r
- KR\r
-\r
-E8-E9-8E (hex) SOLAR controls s.r.o.\r
-E8E98E (base 16) SOLAR controls s.r.o.\r
- Brojova 25\r
- Plzen 32600\r
- CZ\r
+A4-CF-D2 (hex) Ubee Interactive Co., Limited\r
+A4CFD2 (base 16) Ubee Interactive Co., Limited\r
+ Flat/RM 1202, 12/F, AT Tower, 180 Electric Road\r
+ North Point 00000\r
+ HK\r
\r
-64-F6-BB (hex) Fibocom Wireless Inc.\r
-64F6BB (base 16) Fibocom Wireless Inc.\r
- 5/F,TowerA,Technology Building 2,1057 Nanhai Blvd, Nanshan\r
- Shenzhen 518000 Guangdong\r
- CN\r
+A8-A0-97 (hex) ScioTeq bvba\r
+A8A097 (base 16) ScioTeq bvba\r
+ President Kennedypark 35A\r
+ Kortrijk 8500\r
+ BE\r
\r
BC-16-95 (hex) zte corporation\r
BC1695 (base 16) zte corporation\r
shenzhen guangdong 518057\r
CN\r
\r
-DC-35-F1 (hex) Positivo Tecnologia S.A.\r
-DC35F1 (base 16) Positivo Tecnologia S.A.\r
- João Bettega, 5200\r
- Curitiba Paraná 81350-000\r
- BR\r
-\r
A4-08-01 (hex) Amazon Technologies Inc.\r
A40801 (base 16) Amazon Technologies Inc.\r
P.O Box 8102\r
Reno NV 89507\r
US\r
\r
-AC-1E-D0 (hex) Temic Automotive Philippines Inc.\r
-AC1ED0 (base 16) Temic Automotive Philippines Inc.\r
- Bagsakan Road, FTI estate\r
- Taguig 1630\r
- PH\r
-\r
-2C-EA-7F (hex) Dell Inc.\r
-2CEA7F (base 16) Dell Inc.\r
- One Dell Way\r
- Round Rock TX 78682\r
+5C-A6-2D (hex) Cisco Systems, Inc\r
+5CA62D (base 16) Cisco Systems, Inc\r
+ 80 West Tasman Drive\r
+ San Jose CA 94568\r
US\r
\r
34-51-80 (hex) TCL King Electrical Appliances (Huizhou) Co., Ltd\r
Shenzhen Guangdong 518052\r
CN\r
\r
-A4-CF-D2 (hex) Ubee Interactive Co., Limited\r
-A4CFD2 (base 16) Ubee Interactive Co., Limited\r
- Flat/RM 1202, 12/F, AT Tower, 180 Electric Road\r
- North Point 00000\r
- HK\r
-\r
-A8-A0-97 (hex) ScioTeq bvba\r
-A8A097 (base 16) ScioTeq bvba\r
- President Kennedypark 35A\r
- Kortrijk 8500\r
- BE\r
-\r
-08-6B-D1 (hex) Shenzhen SuperElectron Technology Co.,Ltd.\r
-086BD1 (base 16) Shenzhen SuperElectron Technology Co.,Ltd.\r
- 1213-1214, haosheng business center, dongbin road, nanshan street, nanshan district, shenzhen city\r
- Shenzhen Guangdong 518000\r
- CN\r
-\r
-AC-3A-67 (hex) Cisco Systems, Inc\r
-AC3A67 (base 16) Cisco Systems, Inc\r
- 80 West Tasman Drive\r
- San Jose CA 94568\r
- US\r
-\r
-3C-B5-3D (hex) HUNAN GOKE MICROELECTRONICS CO.,LTD\r
-3CB53D (base 16) HUNAN GOKE MICROELECTRONICS CO.,LTD\r
- No.9, East 10th Road(South), Xingsha, Changsha\r
- Changsha HUNAN 410131 \r
+B8-E3-B1 (hex) HUAWEI TECHNOLOGIES CO.,LTD\r
+B8E3B1 (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
98-0D-51 (hex) Huawei Device Co., Ltd.\r
Dongguan Guangdong 523808\r
CN\r
\r
+3C-B5-3D (hex) HUNAN GOKE MICROELECTRONICS CO.,LTD\r
+3CB53D (base 16) HUNAN GOKE MICROELECTRONICS CO.,LTD\r
+ No.9, East 10th Road(South), Xingsha, Changsha\r
+ Changsha HUNAN 410131 \r
+ CN\r
+\r
+2C-EA-7F (hex) Dell Inc.\r
+2CEA7F (base 16) Dell Inc.\r
+ One Dell Way\r
+ Round Rock TX 78682\r
+ US\r
+\r
+08-6B-D1 (hex) Shenzhen SuperElectron Technology Co.,Ltd.\r
+086BD1 (base 16) Shenzhen SuperElectron Technology Co.,Ltd.\r
+ 1213-1214, haosheng business center, dongbin road, nanshan street, nanshan district, shenzhen city\r
+ Shenzhen Guangdong 518000\r
+ CN\r
+\r
+AC-3A-67 (hex) Cisco Systems, Inc\r
+AC3A67 (base 16) Cisco Systems, Inc\r
+ 80 West Tasman Drive\r
+ San Jose CA 94568\r
+ US\r
+\r
90-5D-7C (hex) New H3C Technologies Co., Ltd\r
905D7C (base 16) New H3C Technologies Co., Ltd\r
466 Changhe Road, Binjiang District\r
Tsim Sha Tsui Kowloon 999077\r
HK\r
\r
-B8-E3-B1 (hex) HUAWEI TECHNOLOGIES CO.,LTD\r
-B8E3B1 (base 16) HUAWEI TECHNOLOGIES CO.,LTD\r
- No.2 Xin Cheng Road, Room R6,Songshan Lake Technology Park\r
- Dongguan 523808\r
- CN\r
+EC-79-49 (hex) FUJITSU LIMITED\r
+EC7949 (base 16) FUJITSU LIMITED\r
+ 403, Kosugi-cho 1-chome, Nakahara-ku\r
+ Kawasaki Kanagawa 211-0063\r
+ JP\r
\r
00-B7-A8 (hex) Heinzinger electronic GmbH\r
00B7A8 (base 16) Heinzinger electronic GmbH\r
Rosenheim BY 83026\r
DE\r
\r
-EC-79-49 (hex) FUJITSU LIMITED\r
-EC7949 (base 16) FUJITSU LIMITED\r
- 403, Kosugi-cho 1-chome, Nakahara-ku\r
- Kawasaki Kanagawa 211-0063\r
- JP\r
-\r
D4-D2-D6 (hex) FN-LINK TECHNOLOGY LIMITED\r
D4D2D6 (base 16) FN-LINK TECHNOLOGY LIMITED\r
A Building,HuiXin industial park,No 31, YongHe road, Fuyong town, Bao'an District\r
Miao-Lih Hsuan 115\r
TW\r
\r
+28-54-71 (hex) Huawei Device Co., Ltd.\r
+285471 (base 16) Huawei Device Co., Ltd.\r
+ No.2 of Xincheng Road, Songshan Lake Zone\r
+ Dongguan Guangdong 523808\r
+ CN\r
+\r
+B8-8E-82 (hex) Huawei Device Co., Ltd.\r
+B88E82 (base 16) Huawei Device Co., Ltd.\r
+ No.2 of Xincheng Road, Songshan Lake Zone\r
+ Dongguan Guangdong 523808\r
+ CN\r
+\r
+DC-33-3D (hex) Huawei Device Co., Ltd.\r
+DC333D (base 16) Huawei Device Co., Ltd.\r
+ No.2 of Xincheng Road, Songshan Lake Zone\r
+ Dongguan Guangdong 523808\r
+ CN\r
+\r
90-0A-84 (hex) Mellanox Technologies, Inc.\r
900A84 (base 16) Mellanox Technologies, Inc.\r
350 Oakmead Parkway, Suite 100 \r
Charlottesville VA 22911\r
US\r
\r
+D8-78-7F (hex) Ubee Interactive Co., Limited\r
+D8787F (base 16) Ubee Interactive Co., Limited\r
+ Flat/RM 1202, 12/F, AT Tower, 180 Electric Road\r
+ North Point 00000\r
+ HK\r
+\r
+BC-F3-10 (hex) Extreme Networks, Inc.\r
+BCF310 (base 16) Extreme Networks, Inc.\r
+ 1011 McCarthy Blvd\r
+ Milpitas CA 95035\r
+ US\r
+\r
C8-66-5D (hex) Extreme Networks, Inc.\r
C8665D (base 16) Extreme Networks, Inc.\r
1011 McCarthy Blvd\r
Milpitas CA 95035\r
US\r
\r
-08-66-1F (hex) Palo Alto Networks\r
-08661F (base 16) Palo Alto Networks\r
+D4-1D-71 (hex) Palo Alto Networks\r
+D41D71 (base 16) Palo Alto Networks\r
3000 Tannery Way\r
Santa Clara CA 95054\r
US\r
\r
-BC-F3-10 (hex) Extreme Networks, Inc.\r
-BCF310 (base 16) Extreme Networks, Inc.\r
- 1011 McCarthy Blvd\r
- Milpitas CA 95035\r
- US\r
-\r
-28-54-71 (hex) Huawei Device Co., Ltd.\r
-285471 (base 16) Huawei Device Co., Ltd.\r
- No.2 of Xincheng Road, Songshan Lake Zone\r
- Dongguan Guangdong 523808\r
- CN\r
-\r
-B8-8E-82 (hex) Huawei Device Co., Ltd.\r
-B88E82 (base 16) Huawei Device Co., Ltd.\r
- No.2 of Xincheng Road, Songshan Lake Zone\r
- Dongguan Guangdong 523808\r
- CN\r
-\r
-DC-33-3D (hex) Huawei Device Co., Ltd.\r
-DC333D (base 16) Huawei Device Co., Ltd.\r
- No.2 of Xincheng Road, Songshan Lake Zone\r
- Dongguan Guangdong 523808\r
- CN\r
-\r
-D8-78-7F (hex) Ubee Interactive Co., Limited\r
-D8787F (base 16) Ubee Interactive Co., Limited\r
- Flat/RM 1202, 12/F, AT Tower, 180 Electric Road\r
- North Point 00000\r
- HK\r
-\r
-D4-1D-71 (hex) Palo Alto Networks\r
-D41D71 (base 16) Palo Alto Networks\r
+08-66-1F (hex) Palo Alto Networks\r
+08661F (base 16) Palo Alto Networks\r
3000 Tannery Way\r
Santa Clara CA 95054\r
US\r
San Diego CA 92121\r
US\r
\r
+9C-BD-6E (hex) DERA Co., Ltd\r
+9CBD6E (base 16) DERA Co., Ltd\r
+ Zhichun road NO7 Building B Room1203 Haidian District\r
+ Beijing 100191\r
+ CN\r
+\r
+4C-33-29 (hex) Sweroam\r
+4C3329 (base 16) Sweroam\r
+ Stortorget 16\r
+ Orebro N/A 70211\r
+ SE\r
+\r
+48-8F-5A (hex) Routerboard.com\r
+488F5A (base 16) Routerboard.com\r
+ Mikrotikls SIA\r
+ Riga Riga LV1009\r
+ LV\r
+\r
+10-06-45 (hex) Sagemcom Broadband SAS\r
+100645 (base 16) Sagemcom Broadband SAS\r
+ 250, route de l'Empereur\r
+ Rueil Malmaison Cedex hauts de seine 92848\r
+ FR\r
+\r
68-33-2C (hex) KENSTEL NETWORKS LIMITED\r
68332C (base 16) KENSTEL NETWORKS LIMITED\r
34D SECTOR 57 HSIIDC INDUSTRIAL AREA PHASE 4\r
Cambridge CAMBRIDGESHIRE CB3 0AX\r
GB\r
\r
+AC-67-B2 (hex) Espressif Inc.\r
+AC67B2 (base 16) Espressif Inc.\r
+ Room 204, Building 2, 690 Bibo Rd, Pudong New Area\r
+ Shanghai Shanghai 201203\r
+ CN\r
+\r
70-61-7B (hex) Cisco Systems, Inc\r
70617B (base 16) Cisco Systems, Inc\r
80 West Tasman Drive\r
Milano MI 20132\r
IT\r
\r
-AC-67-B2 (hex) Espressif Inc.\r
-AC67B2 (base 16) Espressif Inc.\r
- Room 204, Building 2, 690 Bibo Rd, Pudong New Area\r
- Shanghai Shanghai 201203\r
- CN\r
-\r
-9C-BD-6E (hex) DERA Co., Ltd\r
-9CBD6E (base 16) DERA Co., Ltd\r
- Zhichun road NO7 Building B Room1203 Haidian District\r
- Beijing 100191\r
- CN\r
+C4-89-ED (hex) Solid Optics EU N.V.\r
+C489ED (base 16) Solid Optics EU N.V.\r
+ De Huchtstraat 35\r
+ Almere Flevoland 1327 EC\r
+ NL\r
\r
-4C-33-29 (hex) Sweroam\r
-4C3329 (base 16) Sweroam\r
- Stortorget 16\r
- Orebro N/A 70211\r
- SE\r
+58-A8-7B (hex) Fitbit, Inc.\r
+58A87B (base 16) Fitbit, Inc.\r
+ 199 Fremont Street, 14th Fl\r
+ San Francisco CA 94105\r
+ US\r
\r
64-E1-72 (hex) Shenzhen Qihoo Intelligent Technology Co.,Ltd\r
64E172 (base 16) Shenzhen Qihoo Intelligent Technology Co.,Ltd\r
Shenzhen Guangdong 5181000\r
CN\r
\r
-48-8F-5A (hex) Routerboard.com\r
-488F5A (base 16) Routerboard.com\r
- Mikrotikls SIA\r
- Riga Riga LV1009\r
- LV\r
-\r
-10-06-45 (hex) Sagemcom Broadband SAS\r
-100645 (base 16) Sagemcom Broadband SAS\r
- 250, route de l'Empereur\r
- Rueil Malmaison Cedex hauts de seine 92848\r
- FR\r
-\r
-00-14-C9 (hex) Brocade Communications Systems LLC\r
-0014C9 (base 16) Brocade Communications Systems LLC\r
- 1320 Ridder Park Dr\r
- San Jose CA 95131\r
- US\r
-\r
00-24-38 (hex) Brocade Communications Systems LLC\r
002438 (base 16) Brocade Communications Systems LLC\r
1320 Ridder Park Dr\r
Hangzhou Zhejiang 310052\r
CN\r
\r
+64-E8-81 (hex) Aruba, a Hewlett Packard Enterprise Company\r
+64E881 (base 16) Aruba, a Hewlett Packard Enterprise Company\r
+ 3333 Scott Blvd\r
+ Santa Clara CA 95054\r
+ US\r
+\r
D8-1F-CC (hex) Brocade Communications Systems LLC\r
D81FCC (base 16) Brocade Communications Systems LLC\r
1320 Ridder Park Dr\r
San Jose CA 95131\r
US\r
\r
-C4-89-ED (hex) Solid Optics EU N.V.\r
-C489ED (base 16) Solid Optics EU N.V.\r
- De Huchtstraat 35\r
- Almere Flevoland 1327 EC\r
- NL\r
+98-9D-5D (hex) Technicolor CH USA Inc.\r
+989D5D (base 16) Technicolor CH USA Inc.\r
+ 5030 Sugarloaf Parkway Bldg 6 \r
+ Lawrenceville GA 30044\r
+ US\r
\r
60-F4-3A (hex) Edifier International\r
60F43A (base 16) Edifier International\r
Hong Kong 070\r
CN\r
\r
-58-A8-7B (hex) Fitbit, Inc.\r
-58A87B (base 16) Fitbit, Inc.\r
- 199 Fremont Street, 14th Fl\r
- San Francisco CA 94105\r
+00-14-C9 (hex) Brocade Communications Systems LLC\r
+0014C9 (base 16) Brocade Communications Systems LLC\r
+ 1320 Ridder Park Dr\r
+ San Jose CA 95131\r
US\r
\r
5C-6B-D7 (hex) Foshan VIOMI Electric Appliance Technology Co. Ltd.\r
Nagaokakyo-shi Kyoto 617-8555\r
JP\r
\r
-90-EE-C7 (hex) Samsung Electronics Co.,Ltd\r
-90EEC7 (base 16) Samsung Electronics Co.,Ltd\r
- #94-1, Imsoo-Dong\r
- Gumi Gyeongbuk 730-350\r
- KR\r
-\r
-10-29-AB (hex) Samsung Electronics Co.,Ltd\r
-1029AB (base 16) Samsung Electronics Co.,Ltd\r
- #94-1, Imsoo-Dong\r
- Gumi Gyeongbuk 730-350\r
- KR\r
-\r
-18-4E-CB (hex) Samsung Electronics Co.,Ltd\r
-184ECB (base 16) Samsung Electronics Co.,Ltd\r
- #94-1, Imsoo-Dong\r
- Gumi Gyeongbuk 730-350\r
- KR\r
-\r
80-22-A7 (hex) NEC Platforms, Ltd.\r
8022A7 (base 16) NEC Platforms, Ltd.\r
2-3 Kandatsukasamachi\r
Chiyodaku Tokyo 101-8532\r
JP\r
\r
-64-E8-81 (hex) Aruba, a Hewlett Packard Enterprise Company\r
-64E881 (base 16) Aruba, a Hewlett Packard Enterprise Company\r
- 3333 Scott Blvd\r
- Santa Clara CA 95054\r
- US\r
-\r
-98-9D-5D (hex) Technicolor CH USA Inc.\r
-989D5D (base 16) Technicolor CH USA Inc.\r
- 5030 Sugarloaf Parkway Bldg 6 \r
- Lawrenceville GA 30044\r
- US\r
-\r
5C-23-16 (hex) Squirrels Research Labs LLC\r
5C2316 (base 16) Squirrels Research Labs LLC\r
8050 Freedom Ave NW Suite B\r
Taipei County 231 231141\r
CN\r
\r
-A0-27-B6 (hex) Samsung Electronics Co.,Ltd\r
-A027B6 (base 16) Samsung Electronics Co.,Ltd\r
+98-80-EE (hex) Samsung Electronics Co.,Ltd\r
+9880EE (base 16) Samsung Electronics Co.,Ltd\r
#94-1, Imsoo-Dong\r
Gumi Gyeongbuk 730-350\r
KR\r
\r
-10-39-17 (hex) Samsung Electronics Co.,Ltd\r
-103917 (base 16) Samsung Electronics Co.,Ltd\r
+90-EE-C7 (hex) Samsung Electronics Co.,Ltd\r
+90EEC7 (base 16) Samsung Electronics Co.,Ltd\r
#94-1, Imsoo-Dong\r
Gumi Gyeongbuk 730-350\r
KR\r
\r
-98-80-EE (hex) Samsung Electronics Co.,Ltd\r
-9880EE (base 16) Samsung Electronics Co.,Ltd\r
+10-29-AB (hex) Samsung Electronics Co.,Ltd\r
+1029AB (base 16) Samsung Electronics Co.,Ltd\r
+ #94-1, Imsoo-Dong\r
+ Gumi Gyeongbuk 730-350\r
+ KR\r
+\r
+18-4E-CB (hex) Samsung Electronics Co.,Ltd\r
+184ECB (base 16) Samsung Electronics Co.,Ltd\r
+ #94-1, Imsoo-Dong\r
+ Gumi Gyeongbuk 730-350\r
+ KR\r
+\r
+A0-27-B6 (hex) Samsung Electronics Co.,Ltd\r
+A027B6 (base 16) Samsung Electronics Co.,Ltd\r
+ #94-1, Imsoo-Dong\r
+ Gumi Gyeongbuk 730-350\r
+ KR\r
+\r
+10-39-17 (hex) Samsung Electronics Co.,Ltd\r
+103917 (base 16) Samsung Electronics Co.,Ltd\r
#94-1, Imsoo-Dong\r
Gumi Gyeongbuk 730-350\r
KR\r
Chicago IL 60654\r
US\r
\r
+A8-40-25 (hex) Oxide Computer Company\r
+A84025 (base 16) Oxide Computer Company\r
+ 1251 Park Avenue\r
+ Emeryville CA 94608\r
+ US\r
+\r
94-BF-94 (hex) Juniper Networks\r
94BF94 (base 16) Juniper Networks\r
1133 Innovation Way\r
Hanover MD 21076\r
US\r
\r
-A8-40-25 (hex) Oxide Computer Company\r
-A84025 (base 16) Oxide Computer Company\r
- 1251 Park Avenue\r
- Emeryville CA 94608\r
+B8-80-4F (hex) Texas Instruments\r
+B8804F (base 16) Texas Instruments\r
+ 12500 TI Blvd\r
+ Dallas TX 75243\r
+ US\r
+\r
+00-12-E3 (hex) Agat Soft LLC\r
+0012E3 (base 16) Agat Soft LLC\r
+ building 14, stroenie 15, room 7\r
+ Moscow Serebryakova proezd 129343\r
+ RU\r
+\r
+00-13-51 (hex) Niles Audio Corporation\r
+001351 (base 16) Niles Audio Corporation\r
+ 5919 Sea Otter Place\r
+ Carlsbad CA 92010\r
US\r
\r
10-65-A3 (hex) Panamax LLC\r
Carlsbad CA 92010\r
US\r
\r
+FC-A5-D0 (hex) GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP.,LTD\r
+FCA5D0 (base 16) GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP.,LTD\r
+ NO.18 HAIBIN ROAD,\r
+ DONG GUAN GUANG DONG 523860\r
+ CN\r
+\r
C8-5B-A0 (hex) Shenzhen Qihu Intelligent Technology Company Limited\r
C85BA0 (base 16) Shenzhen Qihu Intelligent Technology Company Limited\r
Room 201, Block A, No.1, Qianwan Road 1,Qianhai Shenzhen HongKong Modern Service Industry Cooperation Zone\r
Piscataway NJ 08554\r
US\r
\r
-98-CB-A4 (hex) Benchmark Electronics\r
-98CBA4 (base 16) Benchmark Electronics\r
- Free Industrial Zone, Phase 1, \r
- Bayan Lepas Penang 11900\r
- MY\r
-\r
-00-12-E3 (hex) Agat Soft LLC\r
-0012E3 (base 16) Agat Soft LLC\r
- building 14, stroenie 15, room 7\r
- Moscow Serebryakova proezd 129343\r
- RU\r
-\r
-00-13-51 (hex) Niles Audio Corporation\r
-001351 (base 16) Niles Audio Corporation\r
- 5919 Sea Otter Place\r
- Carlsbad CA 92010\r
- US\r
-\r
18-3C-B7 (hex) Huawei Device Co., Ltd.\r
183CB7 (base 16) Huawei Device Co., Ltd.\r
No.2 of Xincheng Road, Songshan Lake Zone\r
Dongguan Guangdong 523808\r
CN\r
\r
+98-CB-A4 (hex) Benchmark Electronics\r
+98CBA4 (base 16) Benchmark Electronics\r
+ Free Industrial Zone, Phase 1, \r
+ Bayan Lepas Penang 11900\r
+ MY\r
+\r
A4-88-73 (hex) Cisco Systems, Inc\r
A48873 (base 16) Cisco Systems, Inc\r
80 West Tasman Drive\r
San Jose CA 94568\r
US\r
\r
-B8-80-4F (hex) Texas Instruments\r
-B8804F (base 16) Texas Instruments\r
- 12500 TI Blvd\r
- Dallas TX 75243\r
- US\r
-\r
-FC-A5-D0 (hex) GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP.,LTD\r
-FCA5D0 (base 16) GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP.,LTD\r
- NO.18 HAIBIN ROAD,\r
- DONG GUAN GUANG DONG 523860\r
- CN\r
-\r
04-CB-88 (hex) Shenzhen Jingxun Software Telecommunication Technology Co.,Ltd\r
04CB88 (base 16) Shenzhen Jingxun Software Telecommunication Technology Co.,Ltd\r
3/F,A5 Building Zhiyuan Community No.1001,Xueyuan Road Nanshan District\r
Shenzhen Guangdong 518055\r
CN\r
\r
+24-14-07 (hex) Xiamen Sigmastar Technology Ltd.\r
+241407 (base 16) Xiamen Sigmastar Technology Ltd.\r
+ 15th Floor ,Unit A,Chuangxin Building, Software Park, Xiamen Torch Hi-Tech Industrial Development Zone, Xiamen,China\r
+ Xiamen Fujian 361005\r
+ CN\r
+\r
A0-62-60 (hex) Private\r
A06260 (base 16) Private\r
\r
Hsinchu 30077\r
TW\r
\r
-38-F0-C8 (hex) Mevo Inc.\r
-38F0C8 (base 16) Mevo Inc.\r
- 19 Morris Avenue\r
- Brooklyn NY 11205\r
- US\r
-\r
5C-FE-9E (hex) Wiwynn Corporation Tainan Branch\r
5CFE9E (base 16) Wiwynn Corporation Tainan Branch\r
4F, NO. 8, Beiyuan 3rd Rd., Anding Dist.,\r
NEW TAIPEI TAIWAN 23585\r
TW\r
\r
-24-14-07 (hex) Xiamen Sigmastar Technology Ltd.\r
-241407 (base 16) Xiamen Sigmastar Technology Ltd.\r
- 15th Floor ,Unit A,Chuangxin Building, Software Park, Xiamen Torch Hi-Tech Industrial Development Zone, Xiamen,China\r
- Xiamen Fujian 361005\r
- CN\r
-\r
08-E9-F6 (hex) AMPAK Technology,Inc.\r
08E9F6 (base 16) AMPAK Technology,Inc.\r
3F, No.15-1 Zhonghua Road, Hsinchu Industrail Park, Hukou,\r
Piscataway NJ 08554\r
US\r
\r
+38-F0-C8 (hex) Mevo Inc.\r
+38F0C8 (base 16) Mevo Inc.\r
+ 19 Morris Avenue\r
+ Brooklyn NY 11205\r
+ US\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
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
-48-A4-72 (hex) Intel Corporate\r
-48A472 (base 16) Intel Corporate\r
- Lot 8, Jalan Hi-Tech 2/3 \r
- Kulim Kedah 09000\r
- MY\r
-\r
-D8-F2-CA (hex) Intel Corporate\r
-D8F2CA (base 16) Intel Corporate\r
- Lot 8, Jalan Hi-Tech 2/3 \r
- Kulim Kedah 09000\r
- MY\r
-\r
-48-F1-7F (hex) Intel Corporate\r
-48F17F (base 16) Intel Corporate\r
- Lot 8, Jalan Hi-Tech 2/3 \r
- Kulim Kedah 09000\r
- MY\r
-\r
44-56-E2 (hex) Sichuan Tianyi Comheart Telecom Co., Ltd.\r
4456E2 (base 16) Sichuan Tianyi Comheart Telecom Co., Ltd.\r
No.198,First Section,Snow Mountain Avenue, Jinyuan Town, Dayi County\r
Chengdu Sichuan 611330\r
CN\r
\r
+4C-C9-5E (hex) Samsung Electronics Co.,Ltd\r
+4CC95E (base 16) Samsung Electronics Co.,Ltd\r
+ 129, Samsung-ro, Youngtongl-Gu\r
+ Suwon Gyeonggi-Do 16677\r
+ KR\r
+\r
68-EC-C5 (hex) Intel Corporate\r
68ECC5 (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
-64-0B-D7 (hex) Apple, Inc.\r
-640BD7 (base 16) Apple, Inc.\r
+A8-91-3D (hex) Apple, Inc.\r
+A8913D (base 16) Apple, Inc.\r
1 Infinite Loop\r
Cupertino CA 95014\r
US\r
\r
-A8-91-3D (hex) Apple, Inc.\r
-A8913D (base 16) Apple, Inc.\r
+64-0B-D7 (hex) Apple, Inc.\r
+640BD7 (base 16) Apple, Inc.\r
1 Infinite Loop\r
Cupertino CA 95014\r
US\r
\r
-4C-C9-5E (hex) Samsung Electronics Co.,Ltd\r
-4CC95E (base 16) Samsung Electronics Co.,Ltd\r
- 129, Samsung-ro, Youngtongl-Gu\r
- Suwon Gyeonggi-Do 16677\r
- KR\r
-\r
0C-3B-50 (hex) Apple, Inc.\r
0C3B50 (base 16) Apple, Inc.\r
1 Infinite Loop\r
Cupertino CA 95014\r
US\r
\r
+34-CF-F6 (hex) Intel Corporate\r
+34CFF6 (base 16) Intel Corporate\r
+ Lot 8, Jalan Hi-Tech 2/3 \r
+ Kulim Kedah 09000\r
+ MY\r
+\r
78-2B-46 (hex) Intel Corporate\r
782B46 (base 16) Intel Corporate\r
Lot 8, Jalan Hi-Tech 2/3 \r
Kulim Kedah 09000\r
MY\r
\r
+0C-7A-15 (hex) Intel Corporate\r
+0C7A15 (base 16) Intel Corporate\r
+ Lot 8, Jalan Hi-Tech 2/3 \r
+ Kulim Kedah 09000\r
+ MY\r
+\r
+54-8D-5A (hex) Intel Corporate\r
+548D5A (base 16) Intel Corporate\r
+ Lot 8, Jalan Hi-Tech 2/3 \r
+ Kulim Kedah 09000\r
+ MY\r
+\r
B8-9A-2A (hex) Intel Corporate\r
B89A2A (base 16) Intel Corporate\r
Lot 8, Jalan Hi-Tech 2/3 \r
Kulim Kedah 09000\r
MY\r
\r
-34-CF-F6 (hex) Intel Corporate\r
-34CFF6 (base 16) Intel Corporate\r
- Lot 8, Jalan Hi-Tech 2/3 \r
- Kulim Kedah 09000\r
- MY\r
-\r
C8-7E-A1 (hex) TCL MOKA International Limited\r
C87EA1 (base 16) TCL MOKA International Limited\r
7/F, Building 22E 22 Science Park East Avenue\r
Kulim Kedah 09000\r
MY\r
\r
-0C-7A-15 (hex) Intel Corporate\r
-0C7A15 (base 16) Intel Corporate\r
+48-A4-72 (hex) Intel Corporate\r
+48A472 (base 16) Intel Corporate\r
Lot 8, Jalan Hi-Tech 2/3 \r
Kulim Kedah 09000\r
MY\r
\r
-54-8D-5A (hex) Intel Corporate\r
-548D5A (base 16) Intel Corporate\r
+D8-F2-CA (hex) Intel Corporate\r
+D8F2CA (base 16) Intel Corporate\r
+ Lot 8, Jalan Hi-Tech 2/3 \r
+ Kulim Kedah 09000\r
+ MY\r
+\r
+48-F1-7F (hex) Intel Corporate\r
+48F17F (base 16) Intel Corporate\r
Lot 8, Jalan Hi-Tech 2/3 \r
Kulim Kedah 09000\r
MY\r
Santa Ana CA 92707\r
US\r
\r
-AC-5F-EA (hex) OnePlus Technology (Shenzhen) Co., Ltd\r
-AC5FEA (base 16) OnePlus Technology (Shenzhen) Co., Ltd\r
- 18C02, 18C03, 18C04 ,18C05,TAIRAN BUILDING,\r
- Shenzhen Guangdong 518000\r
- CN\r
-\r
-04-4A-C6 (hex) Aipon Electronics Co., Ltd\r
-044AC6 (base 16) Aipon Electronics Co., Ltd\r
- #78, Qiaojiao Dong road, Qiaolong, Tangxia Town\r
- Dongguan City Guangdong Province 523-710\r
- CN\r
-\r
5C-D5-B5 (hex) Shenzhen WiSiYiLink Technology Co.,Ltd\r
5CD5B5 (base 16) Shenzhen WiSiYiLink Technology Co.,Ltd\r
Building a 3, huafengzhigu Yuanshan hi tech Industrial Park, No.62, Yinhe Road, he'ao community, Yuanshan street, Longgang District\r
Shenzhen 518100\r
CN\r
\r
+AC-5F-EA (hex) OnePlus Technology (Shenzhen) Co., Ltd\r
+AC5FEA (base 16) OnePlus Technology (Shenzhen) Co., Ltd\r
+ 18C02, 18C03, 18C04 ,18C05,TAIRAN BUILDING,\r
+ Shenzhen Guangdong 518000\r
+ CN\r
+\r
88-94-8F (hex) Xi'an Zhisensor Technologies Co.,Ltd\r
88948F (base 16) Xi'an Zhisensor Technologies Co.,Ltd\r
No.52 Jinye 1st Road Xi'an,Shaanxi,China\r
Xi an Xi an High-Tech Zone 710077\r
CN\r
\r
-18-95-52 (hex) 1MORE\r
-189552 (base 16) 1MORE\r
- TianliaoBuilding F14, New Materials Industrial Park, Xueyuan Blvd?Nanshan\r
- Shenzhen Guangdong 518055\r
+04-4A-C6 (hex) Aipon Electronics Co., Ltd\r
+044AC6 (base 16) Aipon Electronics Co., Ltd\r
+ #78, Qiaojiao Dong road, Qiaolong, Tangxia Town\r
+ Dongguan City Guangdong Province 523-710\r
CN\r
\r
C0-FF-A8 (hex) HUAWEI TECHNOLOGIES CO.,LTD\r
Shenzhen Guangdong 518055\r
CN\r
\r
+18-95-52 (hex) 1MORE\r
+189552 (base 16) 1MORE\r
+ TianliaoBuilding F14, New Materials Industrial Park, Xueyuan Blvd?Nanshan\r
+ Shenzhen Guangdong 518055\r
+ CN\r
+\r
98-C7-A4 (hex) Shenzhen HS Fiber Communication Equipment CO., LTD\r
98C7A4 (base 16) Shenzhen HS Fiber Communication Equipment CO., LTD\r
6F, Bld#A, Dezhong Industrial Park, Yangmei Village, Bantian Town, Longgang District\r
Shenzhen Guangdong 518129\r
CN\r
\r
-00-BE-D5 (hex) New H3C Technologies Co., Ltd\r
-00BED5 (base 16) New H3C Technologies Co., Ltd\r
- 466 Changhe Road, Binjiang District\r
- Hangzhou Zhejiang 310052\r
- CN\r
-\r
-00-02-C4 (hex) OPT Machine Vision Tech Co., Ltd\r
-0002C4 (base 16) OPT Machine Vision Tech Co., Ltd\r
- no. 8 JInSheng Road, JinXia Zone, Chang'An Town\r
- Dongguan Guangdong 523000\r
- CN\r
+00-05-C9 (hex) LG Innotek\r
+0005C9 (base 16) LG Innotek\r
+ LG Component R&D Center\r
+ Ansan-si Gyeonggi-do 426-791\r
+ KR\r
\r
AC-F1-08 (hex) LG Innotek\r
ACF108 (base 16) LG Innotek\r
Hong Kong Hong Kong 999077\r
HK\r
\r
+00-BE-D5 (hex) New H3C Technologies Co., Ltd\r
+00BED5 (base 16) New H3C Technologies Co., Ltd\r
+ 466 Changhe Road, Binjiang District\r
+ Hangzhou Zhejiang 310052\r
+ CN\r
+\r
E8-6D-CB (hex) Samsung Electronics Co.,Ltd\r
E86DCB (base 16) Samsung Electronics Co.,Ltd\r
#94-1, Imsoo-Dong\r
Piscataway NJ 08554\r
US\r
\r
-00-05-C9 (hex) LG Innotek\r
-0005C9 (base 16) LG Innotek\r
- LG Component R&D Center\r
- Ansan-si Gyeonggi-do 426-791\r
- KR\r
-\r
0C-DC-7E (hex) Espressif Inc.\r
0CDC7E (base 16) Espressif Inc.\r
Room 204, Building 2, 690 Bibo Rd, Pudong New Area\r
Shenzhen 518055\r
CN\r
\r
+60-32-B1 (hex) TP-LINK TECHNOLOGIES CO.,LTD.\r
+6032B1 (base 16) TP-LINK TECHNOLOGIES CO.,LTD.\r
+ Building 24(floors 1,3,4,5)and 28(floors 1-4)Central Science and Technology Park,Shennan Road,Nanshan\r
+ Shenzhen Guangdong 518057\r
+ CN\r
+\r
+7C-FD-6B (hex) Xiaomi Communications Co Ltd\r
+7CFD6B (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
7C-C7-7E (hex) Fiberhome Telecommunication Technologies Co.,LTD\r
7CC77E (base 16) Fiberhome Telecommunication Technologies Co.,LTD\r
No.5 DongXin Road\r
Dongguan Guangdong 523808\r
CN\r
\r
-C0-A3-6E (hex) BSkyB Ltd\r
-C0A36E (base 16) BSkyB Ltd\r
- 130 Kings Road\r
- Brentwood Essex 08854\r
- GB\r
-\r
-60-32-B1 (hex) TP-LINK TECHNOLOGIES CO.,LTD.\r
-6032B1 (base 16) TP-LINK TECHNOLOGIES CO.,LTD.\r
- Building 24(floors 1,3,4,5)and 28(floors 1-4)Central Science and Technology Park,Shennan Road,Nanshan\r
- Shenzhen Guangdong 518057\r
- CN\r
-\r
-7C-FD-6B (hex) Xiaomi Communications Co Ltd\r
-7CFD6B (base 16) Xiaomi Communications Co Ltd\r
- The Rainbow City of China Resources\r
- NO.68, Qinghe Middle Street Haidian District, Beijing 100085\r
+00-02-C4 (hex) OPT Machine Vision Tech Co., Ltd\r
+0002C4 (base 16) OPT Machine Vision Tech Co., Ltd\r
+ no. 8 JInSheng Road, JinXia Zone, Chang'An Town\r
+ Dongguan Guangdong 523000\r
CN\r
\r
E4-1F-7B (hex) Cisco Systems, Inc\r
San Jose CA 94568\r
US\r
\r
-18-26-49 (hex) Intel Corporate\r
-182649 (base 16) Intel Corporate\r
- Lot 8, Jalan Hi-Tech 2/3 \r
- Kulim Kedah 09000\r
- MY\r
+C0-A3-6E (hex) BSkyB Ltd\r
+C0A36E (base 16) BSkyB Ltd\r
+ 130 Kings Road\r
+ Brentwood Essex 08854\r
+ GB\r
\r
88-03-E9 (hex) GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP.,LTD\r
8803E9 (base 16) GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP.,LTD\r
Dongguan 523808\r
CN\r
\r
+18-26-49 (hex) Intel Corporate\r
+182649 (base 16) Intel Corporate\r
+ Lot 8, Jalan Hi-Tech 2/3 \r
+ Kulim Kedah 09000\r
+ MY\r
+\r
B4-6F-2D (hex) Wahoo Fitness\r
B46F2D (base 16) Wahoo Fitness\r
90 W Wieuca Rd, Suite 110\r
Piscataway NJ 08554\r
US\r
\r
-84-6B-48 (hex) ShenZhen EepuLink Co., Ltd.\r
-846B48 (base 16) ShenZhen EepuLink Co., Ltd.\r
- 4th Floor, Building 3, Nangang 1st industrial zone, Xili street, Nanshan district,\r
- ShenZhen Guangdong 518000\r
- CN\r
-\r
-B4-60-ED (hex) Beijing Xiaomi Mobile Software Co., Ltd\r
-B460ED (base 16) Beijing Xiaomi Mobile Software Co., Ltd\r
- The Rainbow City Office Building, 68 Qinghe Middle Street Haidian District\r
- Beijing Beijing 100085\r
- CN\r
-\r
-30-CC-21 (hex) zte corporation\r
-30CC21 (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
-64-6C-80 (hex) CHONGQING FUGUI ELECTRONICS CO.,LTD.\r
-646C80 (base 16) CHONGQING FUGUI ELECTRONICS CO.,LTD.\r
- Building D21,No.1, East Zone 1st Road,Xiyong Town,Shapingba District\r
- Chongqing Chongqing 401332\r
- CN\r
-\r
08-9E-01 (hex) Quanta Computer Inc.\r
089E01 (base 16) Quanta Computer Inc.\r
No.211, Wen Hwa 2nd Rd\r
Tao Yuan 33377\r
TW\r
\r
+64-6C-80 (hex) CHONGQING FUGUI ELECTRONICS CO.,LTD.\r
+646C80 (base 16) CHONGQING FUGUI ELECTRONICS CO.,LTD.\r
+ Building D21,No.1, East Zone 1st Road,Xiyong Town,Shapingba District\r
+ Chongqing Chongqing 401332\r
+ CN\r
+\r
C0-18-50 (hex) Quanta Computer Inc.\r
C01850 (base 16) Quanta Computer Inc.\r
No. 211, Wen-Hwa 2nd Rd.,Kuei-Shan Dist.\r
Taoyuan City Taiwan 33377\r
TW\r
\r
+30-CC-21 (hex) zte corporation\r
+30CC21 (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
44-27-F3 (hex) 70mai Co.,Ltd.\r
4427F3 (base 16) 70mai Co.,Ltd.\r
Room 2220, building 2, No. 588, Zixing road\r
Osaka 554-0024\r
JP\r
\r
+84-6B-48 (hex) ShenZhen EepuLink Co., Ltd.\r
+846B48 (base 16) ShenZhen EepuLink Co., Ltd.\r
+ 4th Floor, Building 3, Nangang 1st industrial zone, Xili street, Nanshan district,\r
+ ShenZhen Guangdong 518000\r
+ CN\r
+\r
+B4-60-ED (hex) Beijing Xiaomi Mobile Software Co., Ltd\r
+B460ED (base 16) Beijing Xiaomi Mobile Software Co., Ltd\r
+ The Rainbow City Office Building, 68 Qinghe Middle Street Haidian District\r
+ Beijing Beijing 100085\r
+ CN\r
+\r
D4-F3-37 (hex) Xunison Ltd.\r
D4F337 (base 16) Xunison Ltd.\r
25 Kilbarbery Business Park, Upper Nangor Road\r
Chengdu Sichuan 610041\r
CN\r
\r
+58-E8-73 (hex) HANGZHOU DANGBEI NETWORK TECH.Co.,Ltd\r
+58E873 (base 16) HANGZHOU DANGBEI NETWORK TECH.Co.,Ltd\r
+ Build C,Wanfu Center,Binkang Road No.228,Binjiang Area\r
+ China 210051\r
+ CN\r
+\r
C0-B8-E6 (hex) Ruijie Networks Co.,LTD\r
C0B8E6 (base 16) Ruijie Networks Co.,LTD\r
No. 2, 7th floor, xingwangruijie, haixi hi-tech industrial park, high-tech zone, fuzhou city\r
San Jose CA 94568\r
US\r
\r
-58-E8-73 (hex) HANGZHOU DANGBEI NETWORK TECH.Co.,Ltd\r
-58E873 (base 16) HANGZHOU DANGBEI NETWORK TECH.Co.,Ltd\r
- Build C,Wanfu Center,Binkang Road No.228,Binjiang Area\r
- China 210051\r
- CN\r
-\r
-B0-30-C8 (hex) Teal Drones, Inc.\r
-B030C8 (base 16) Teal Drones, Inc.\r
- 5200 South Highland Drive\r
- Holladay UT 84117\r
- US\r
-\r
DC-41-A9 (hex) Intel Corporate\r
DC41A9 (base 16) Intel Corporate\r
Lot 8, Jalan Hi-Tech 2/3 \r
Dongguan Guangdong 523808\r
CN\r
\r
+B0-30-C8 (hex) Teal Drones, Inc.\r
+B030C8 (base 16) Teal Drones, Inc.\r
+ 5200 South Highland Drive\r
+ Holladay UT 84117\r
+ US\r
+\r
44-AF-28 (hex) Intel Corporate\r
44AF28 (base 16) Intel Corporate\r
Lot 8, Jalan Hi-Tech 2/3 \r
Kulim Kedah 09000\r
MY\r
\r
-9C-9D-7E (hex) Beijing Xiaomi Mobile Software Co., Ltd\r
-9C9D7E (base 16) Beijing Xiaomi Mobile Software Co., Ltd\r
- The Rainbow City Office Building, 68 Qinghe Middle Street Haidian District\r
- Beijing Beijing 100085\r
- CN\r
-\r
-74-12-B3 (hex) CHONGQING FUGUI ELECTRONICS CO.,LTD.\r
-7412B3 (base 16) CHONGQING FUGUI ELECTRONICS CO.,LTD.\r
- Building D21,No.1, East Zone 1st Road,Xiyong Town,Shapingba District\r
- Chongqing Chongqing 401332\r
+84-22-5E (hex) SHENZHEN TECHNEWCHIP TECHNOLOGY CO.,LTD.\r
+84225E (base 16) SHENZHEN TECHNEWCHIP TECHNOLOGY CO.,LTD.\r
+ XILI STREET\r
+ SHENZHEN GUANGDONG 5180000\r
CN\r
\r
-94-47-B0 (hex) BEIJING ESWIN COMPUTING TECHNOLOGY CO., LTD\r
-9447B0 (base 16) BEIJING ESWIN COMPUTING TECHNOLOGY CO., LTD\r
- Room 2179, Floor2,Block D, Building 33, Centralised Office Area, No.99, Kechuangshisi Road, BDA, Beijing\r
- BEIJING BEIJING 100176\r
+F8-5C-7D (hex) Shenzhen Honesty Electronics Co.,Ltd.\r
+F85C7D (base 16) Shenzhen Honesty Electronics Co.,Ltd.\r
+ 5/F,Zone B,Chitat Industrial Park,West Longping Road, Longgang District,Shenzhen City\r
+ Shenzhen Guangdong 518172\r
CN\r
\r
A0-68-1C (hex) GD Midea Air-Conditioning Equipment Co.,Ltd.\r
Foshan Guangdong 528311\r
CN\r
\r
-6C-44-2A (hex) HUAWEI TECHNOLOGIES CO.,LTD\r
-6C442A (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
A4-7C-C9 (hex) HUAWEI TECHNOLOGIES CO.,LTD\r
A47CC9 (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-5C-7D (hex) Shenzhen Honesty Electronics Co.,Ltd.\r
-F85C7D (base 16) Shenzhen Honesty Electronics Co.,Ltd.\r
- 5/F,Zone B,Chitat Industrial Park,West Longping Road, Longgang District,Shenzhen City\r
- Shenzhen Guangdong 518172\r
+6C-44-2A (hex) HUAWEI TECHNOLOGIES CO.,LTD\r
+6C442A (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
-84-22-5E (hex) SHENZHEN TECHNEWCHIP TECHNOLOGY CO.,LTD.\r
-84225E (base 16) SHENZHEN TECHNEWCHIP TECHNOLOGY CO.,LTD.\r
- XILI STREET\r
- SHENZHEN GUANGDONG 5180000\r
+84-2A-FD (hex) HP Inc.\r
+842AFD (base 16) HP Inc.\r
+ 10300 Energy Dr\r
+ Spring TX 77389\r
+ US\r
+\r
+74-12-B3 (hex) CHONGQING FUGUI ELECTRONICS CO.,LTD.\r
+7412B3 (base 16) CHONGQING FUGUI ELECTRONICS CO.,LTD.\r
+ Building D21,No.1, East Zone 1st Road,Xiyong Town,Shapingba District\r
+ Chongqing Chongqing 401332\r
+ CN\r
+\r
+94-47-B0 (hex) BEIJING ESWIN COMPUTING TECHNOLOGY CO., LTD\r
+9447B0 (base 16) BEIJING ESWIN COMPUTING TECHNOLOGY CO., LTD\r
+ Room 2179, Floor2,Block D, Building 33, Centralised Office Area, No.99, Kechuangshisi Road, BDA, Beijing\r
+ BEIJING BEIJING 100176\r
CN\r
\r
E4-5A-D4 (hex) Eltex Enterprise Ltd.\r
Novosibirsk 630020\r
RU\r
\r
-84-2A-FD (hex) HP Inc.\r
-842AFD (base 16) HP Inc.\r
- 10300 Energy Dr\r
- Spring TX 77389\r
- US\r
-\r
-1C-FE-2B (hex) Amazon Technologies Inc.\r
-1CFE2B (base 16) Amazon Technologies Inc.\r
- P.O Box 8102\r
- Reno NV 89507\r
- US\r
-\r
CC-48-3A (hex) Dell Inc.\r
CC483A (base 16) Dell Inc.\r
One Dell Way\r
ShenZhen GuangDong 518109\r
CN\r
\r
+1C-FE-2B (hex) Amazon Technologies Inc.\r
+1CFE2B (base 16) Amazon Technologies Inc.\r
+ P.O Box 8102\r
+ Reno NV 89507\r
+ US\r
+\r
+EC-57-0D (hex) AFE Inc.\r
+EC570D (base 16) AFE Inc.\r
+ 11210 County Line Rd\r
+ Mount Pleasant WI 53177\r
+ US\r
+\r
+9C-9D-7E (hex) Beijing Xiaomi Mobile Software Co., Ltd\r
+9C9D7E (base 16) Beijing Xiaomi Mobile Software Co., Ltd\r
+ The Rainbow City Office Building, 68 Qinghe Middle Street Haidian District\r
+ Beijing Beijing 100085\r
+ CN\r
+\r
DC-A3-A2 (hex) Feng mi(Beijing)technology co., LTD\r
DCA3A2 (base 16) Feng mi(Beijing)technology co., LTD\r
RenHe Town barracks south street 10 yuan 33 level 301\r
Redwood Shores CA 94065\r
US\r
\r
-EC-57-0D (hex) AFE Inc.\r
-EC570D (base 16) AFE Inc.\r
- 11210 County Line Rd\r
- Mount Pleasant WI 53177\r
- US\r
-\r
A4-AC-0F (hex) Huawei Device Co., Ltd.\r
A4AC0F (base 16) Huawei Device Co., Ltd.\r
No.2 of Xincheng Road, Songshan Lake Zone\r
Dongguan Guangdong 523808\r
CN\r
\r
-CC-FF-90 (hex) Huawei Device Co., Ltd.\r
-CCFF90 (base 16) Huawei Device Co., Ltd.\r
- No.2 of Xincheng Road, Songshan Lake Zone\r
- Dongguan Guangdong 523808\r
- CN\r
-\r
54-05-DB (hex) LCFC(HeFei) Electronics Technology co., ltd\r
5405DB (base 16) LCFC(HeFei) Electronics Technology co., ltd\r
YunGu Road 3188-1\r
Hefei Anhui 230000\r
CN\r
\r
+CC-FF-90 (hex) Huawei Device Co., Ltd.\r
+CCFF90 (base 16) Huawei Device Co., Ltd.\r
+ No.2 of Xincheng Road, Songshan Lake Zone\r
+ Dongguan Guangdong 523808\r
+ CN\r
+\r
D4-D5-1B (hex) HUAWEI TECHNOLOGIES CO.,LTD\r
D4D51B (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-B3-BC (hex) Intel Corporate\r
-FCB3BC (base 16) Intel Corporate\r
- Lot 8, Jalan Hi-Tech 2/3 \r
- Kulim Kedah 09000\r
- MY\r
-\r
30-57-8E (hex) eero inc.\r
30578E (base 16) eero inc.\r
660 3rd Street\r
Taipei City 112030\r
TW\r
\r
+48-4B-D4 (hex) Technicolor CH USA Inc.\r
+484BD4 (base 16) Technicolor CH USA Inc.\r
+ 5030 Sugarloaf Parkway Bldg 6 \r
+ Lawrenceville GA 30044\r
+ US\r
+\r
C8-16-DA (hex) Realme Chongqing Mobile Telecommunications Corp.,Ltd.\r
C816DA (base 16) Realme Chongqing Mobile Telecommunications Corp.,Ltd.\r
No.178 Yulong Avenue, Yufengshan, Yubei District, Chongqing.\r
Hangzhou Zhejiang 310052\r
CN\r
\r
-48-4B-D4 (hex) Technicolor CH USA Inc.\r
-484BD4 (base 16) Technicolor CH USA Inc.\r
- 5030 Sugarloaf Parkway Bldg 6 \r
- Lawrenceville GA 30044\r
- US\r
-\r
-30-96-10 (hex) Huawei Device Co., Ltd.\r
-309610 (base 16) Huawei Device Co., Ltd.\r
- No.2 of Xincheng Road, Songshan Lake Zone\r
- Dongguan Guangdong 523808\r
- CN\r
-\r
78-45-58 (hex) Ubiquiti Networks Inc.\r
784558 (base 16) Ubiquiti Networks Inc.\r
685 Third Avenue, 27th Floor\r
New York NY 10017\r
US\r
\r
+B4-FB-E3 (hex) AltoBeam (China) Inc.\r
+B4FBE3 (base 16) AltoBeam (China) Inc.\r
+ B808, Tsinghua Tongfang Hi-Tech Plaza, Haidian\r
+ Beijing Beijing 100083\r
+ CN\r
+\r
+18-87-40 (hex) Xiaomi Communications Co Ltd\r
+188740 (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
64-F9-47 (hex) Senscomm Semiconductor Co., Ltd.\r
64F947 (base 16) Senscomm Semiconductor Co., Ltd.\r
Room 303-309, 3rd Floor International Building, NO.2 Suzhou Avenue West\r
Shanghai Shanghai 201203\r
CN\r
\r
-B4-FB-E3 (hex) AltoBeam (China) Inc.\r
-B4FBE3 (base 16) AltoBeam (China) Inc.\r
- B808, Tsinghua Tongfang Hi-Tech Plaza, Haidian\r
- Beijing Beijing 100083\r
- CN\r
-\r
-18-87-40 (hex) Xiaomi Communications Co Ltd\r
-188740 (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
-34-1C-F0 (hex) Xiaomi Communications Co Ltd\r
-341CF0 (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
-10-D7-B0 (hex) Sagemcom Broadband SAS\r
-10D7B0 (base 16) Sagemcom Broadband SAS\r
- 250, route de l'Empereur\r
- Rueil Malmaison Cedex hauts de seine 92848\r
- FR\r
-\r
44-59-43 (hex) zte corporation\r
445943 (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
+30-96-10 (hex) Huawei Device Co., Ltd.\r
+309610 (base 16) Huawei Device Co., Ltd.\r
+ No.2 of Xincheng Road, Songshan Lake Zone\r
+ Dongguan Guangdong 523808\r
+ CN\r
+\r
74-8F-3C (hex) Apple, Inc.\r
748F3C (base 16) Apple, Inc.\r
1 Infinite Loop\r
Cupertino CA 95014\r
US\r
\r
+34-1C-F0 (hex) Xiaomi Communications Co Ltd\r
+341CF0 (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
+30-B2-16 (hex) Hitachi ABB Power Grids – Grid Automation\r
+30B216 (base 16) Hitachi ABB Power Grids – Grid Automation\r
+ Kallstadter Strasse 1\r
+ Mannheim 68309\r
+ DE\r
+\r
6C-09-BF (hex) Fiberhome Telecommunication Technologies Co.,LTD\r
6C09BF (base 16) Fiberhome Telecommunication Technologies Co.,LTD\r
No.5 DongXin Road\r
Wuhan Hubei 430074\r
CN\r
\r
-30-AF-CE (hex) vivo Mobile Communication Co., Ltd.\r
-30AFCE (base 16) vivo Mobile Communication Co., Ltd.\r
- #283,BBK Road\r
- Wusha,Chang'An DongGuan City,Guangdong, 523860\r
- CN\r
-\r
FC-6D-D1 (hex) APRESIA Systems, Ltd.\r
FC6DD1 (base 16) APRESIA Systems, Ltd.\r
Tsukuba Network Technical Center, Kidamari 3550\r
Tsuchiura-shi Ibaraki-ken 300-0026\r
JP\r
\r
-80-C9-55 (hex) Redpine Signals, Inc.\r
-80C955 (base 16) Redpine Signals, Inc.\r
- Plot 87, Sagar Society \r
- Hyderabad AP 500034\r
- IN\r
+10-D7-B0 (hex) Sagemcom Broadband SAS\r
+10D7B0 (base 16) Sagemcom Broadband SAS\r
+ 250, route de l'Empereur\r
+ Rueil Malmaison Cedex hauts de seine 92848\r
+ FR\r
\r
CC-4F-5C (hex) IEEE Registration Authority\r
CC4F5C (base 16) IEEE Registration Authority\r
Piscataway NJ 08554\r
US\r
\r
-30-B2-16 (hex) Hitachi ABB Power Grids – Grid Automation\r
-30B216 (base 16) Hitachi ABB Power Grids – Grid Automation\r
- Kallstadter Strasse 1\r
- Mannheim 68309\r
- DE\r
-\r
4C-6D-58 (hex) Juniper Networks\r
4C6D58 (base 16) Juniper Networks\r
1133 Innovation Way\r
Roseville CA 95747\r
US\r
\r
-30-D0-42 (hex) Dell Inc.\r
-30D042 (base 16) Dell Inc.\r
- One Dell Way\r
- Round Rock TX 78682\r
- US\r
-\r
C0-C9-E3 (hex) TP-LINK TECHNOLOGIES CO.,LTD.\r
C0C9E3 (base 16) TP-LINK TECHNOLOGIES CO.,LTD.\r
Building 24(floors 1,3,4,5)and 28(floors 1-4)Central Science and Technology Park,Shennan Road,Nanshan\r
São José Santa Catarina 88104800\r
BR\r
\r
-18-CC-18 (hex) Intel Corporate\r
-18CC18 (base 16) Intel Corporate\r
- Lot 8, Jalan Hi-Tech 2/3 \r
- Kulim Kedah 09000\r
- MY\r
-\r
7C-73-EB (hex) Huawei Device Co., Ltd.\r
7C73EB (base 16) Huawei Device Co., Ltd.\r
No.2 of Xincheng Road, Songshan Lake Zone\r
Dongguan Guangdong 523808\r
CN\r
\r
-84-E3-42 (hex) Tuya?HK?Limietd\r
-84E342 (base 16) Tuya?HK?Limietd\r
- FLAT/RM 806 BLK ? 8/F CHEUNG SHA WAN PLAZA 833 CHEUNG SHA WAN ROAD KL\r
- hongkong Hong Kong 999077\r
+30-AF-CE (hex) vivo Mobile Communication Co., Ltd.\r
+30AFCE (base 16) vivo Mobile Communication Co., Ltd.\r
+ #283,BBK Road\r
+ Wusha,Chang'An DongGuan City,Guangdong, 523860\r
CN\r
\r
-C0-3C-59 (hex) Intel Corporate\r
-C03C59 (base 16) Intel Corporate\r
- Lot 8, Jalan Hi-Tech 2/3 \r
- Kulim Kedah 09000\r
- MY\r
+80-C9-55 (hex) Redpine Signals, Inc.\r
+80C955 (base 16) Redpine Signals, Inc.\r
+ Plot 87, Sagar Society \r
+ Hyderabad AP 500034\r
+ IN\r
\r
-FC-CD-2F (hex) IEEE Registration Authority\r
-FCCD2F (base 16) IEEE Registration Authority\r
- 445 Hoes Lane\r
- Piscataway NJ 08554\r
+30-D0-42 (hex) Dell Inc.\r
+30D042 (base 16) Dell Inc.\r
+ One Dell Way\r
+ Round Rock TX 78682\r
US\r
\r
94-B2-71 (hex) HUAWEI TECHNOLOGIES CO.,LTD\r
SHENZHEN GUANGDONG 518057\r
CN\r
\r
+FC-CD-2F (hex) IEEE Registration Authority\r
+FCCD2F (base 16) IEEE Registration Authority\r
+ 445 Hoes Lane\r
+ Piscataway NJ 08554\r
+ US\r
+\r
+84-E3-42 (hex) Tuya?HK?Limietd\r
+84E342 (base 16) Tuya?HK?Limietd\r
+ FLAT/RM 806 BLK ? 8/F CHEUNG SHA WAN PLAZA 833 CHEUNG SHA WAN ROAD KL\r
+ hongkong Hong Kong 999077\r
+ CN\r
+\r
+4C-3B-DF (hex) Microsoft Corporation\r
+4C3BDF (base 16) Microsoft Corporation\r
+ One Microsoft Way\r
+ REDMOND WA 98052\r
+ US\r
+\r
CC-F5-5F (hex) E FOCUS INSTRUMENTS INDIA PRIVATE LIMITED\r
CCF55F (base 16) E FOCUS INSTRUMENTS INDIA PRIVATE LIMITED\r
PLOT NO 21, 1ST FLOOR, NO 22, SAMAYAPURAM MAIN ROAD PORUR\r
Qingdao Shandong 266510\r
CN\r
\r
-4C-3B-DF (hex) Microsoft Corporation\r
-4C3BDF (base 16) Microsoft Corporation\r
- One Microsoft Way\r
- REDMOND WA 98052\r
- US\r
-\r
08-7C-39 (hex) Amazon Technologies Inc.\r
087C39 (base 16) Amazon Technologies Inc.\r
P.O Box 8102\r
Shenzhen Gangdong 518057\r
CN\r
\r
+00-1B-2E (hex) Sinkyo Electron Inc\r
+001B2E (base 16) Sinkyo Electron Inc\r
+ 1-22-19 Daimachi\r
+ Hachioji-city Tokyo 193-0931\r
+ JP\r
+\r
3C-D2-E5 (hex) New H3C Technologies Co., Ltd\r
3CD2E5 (base 16) New H3C Technologies Co., Ltd\r
466 Changhe Road, Binjiang District\r
Moscow 117105\r
RU\r
\r
-00-1B-2E (hex) Sinkyo Electron Inc\r
-001B2E (base 16) Sinkyo Electron Inc\r
- 1-22-19 Daimachi\r
- Hachioji-city Tokyo 193-0931\r
- JP\r
-\r
-C4-37-72 (hex) Virtuozzo International GmbH\r
-C43772 (base 16) Virtuozzo International GmbH\r
- Vordergasse 59\r
- Schaffhausen 8200\r
- CH\r
-\r
-CC-3B-27 (hex) TECNO MOBILE LIMITED\r
-CC3B27 (base 16) TECNO MOBILE LIMITED\r
- ROOMS 05-15, 13A/F., SOUTH TOWER, WORLD FINANCE CENTRE, HARBOUR CITY, 17 CANTON ROAD, TSIM SHA TSUI, KOWLOON, HONG KONG\r
- Hong Kong Hong Kong 999077\r
- HK\r
-\r
-08-58-A5 (hex) Beijing Vrv Software Corpoaration Limited.\r
-0858A5 (base 16) Beijing Vrv Software Corpoaration Limited.\r
- Room 1602, block C, Zhongguancun Science and technology development building, 34 Zhongguancun South Street\r
- Beijing Beijing 100000\r
+9C-73-70 (hex) HUAWEI TECHNOLOGIES CO.,LTD\r
+9C7370 (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
98-3F-60 (hex) HUAWEI TECHNOLOGIES CO.,LTD\r
Dongguan 523808\r
CN\r
\r
+08-58-A5 (hex) Beijing Vrv Software Corpoaration Limited.\r
+0858A5 (base 16) Beijing Vrv Software Corpoaration Limited.\r
+ Room 1602, block C, Zhongguancun Science and technology development building, 34 Zhongguancun South Street\r
+ Beijing Beijing 100000\r
+ CN\r
+\r
+CC-3B-27 (hex) TECNO MOBILE LIMITED\r
+CC3B27 (base 16) TECNO MOBILE LIMITED\r
+ ROOMS 05-15, 13A/F., SOUTH TOWER, WORLD FINANCE CENTRE, HARBOUR CITY, 17 CANTON ROAD, TSIM SHA TSUI, KOWLOON, HONG KONG\r
+ Hong Kong Hong Kong 999077\r
+ HK\r
+\r
30-32-35 (hex) Qingdao Intelligent&Precise Electronics Co.,Ltd.\r
303235 (base 16) Qingdao Intelligent&Precise Electronics Co.,Ltd.\r
No.218 Qianwangang Road\r
Shanghai Shanghai 201203\r
CN\r
\r
-9C-73-70 (hex) HUAWEI TECHNOLOGIES CO.,LTD\r
-9C7370 (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-24-29 (hex) Google, Inc.\r
582429 (base 16) Google, Inc.\r
1600 Amphitheatre Parkway\r
Mountain View CA 94043\r
US\r
\r
+C4-37-72 (hex) Virtuozzo International GmbH\r
+C43772 (base 16) Virtuozzo International GmbH\r
+ Vordergasse 59\r
+ Schaffhausen 8200\r
+ CH\r
+\r
E8-0A-EC (hex) Jiangsu Hengtong Optic-Electric Co., LTD\r
E80AEC (base 16) Jiangsu Hengtong Optic-Electric Co., LTD\r
88 Hengtong Dadao, Qidu Town, Wujiang District\r
Suzhou Jiangsu Province 215200\r
CN\r
\r
-C4-DE-7B (hex) Huawei Device Co., Ltd.\r
-C4DE7B (base 16) Huawei Device Co., Ltd.\r
- No.2 of Xincheng Road, Songshan Lake Zone\r
- Dongguan Guangdong 523808\r
- CN\r
-\r
-84-1B-77 (hex) Intel Corporate\r
-841B77 (base 16) Intel Corporate\r
- Lot 8, Jalan Hi-Tech 2/3 \r
- Kulim Kedah 09000\r
- MY\r
-\r
7C-C2-94 (hex) Beijing Xiaomi Mobile Software Co., Ltd\r
7CC294 (base 16) Beijing Xiaomi Mobile Software Co., Ltd\r
The Rainbow City Office Building, 68 Qinghe Middle Street Haidian District\r
Tel Aviv 6789139\r
IL\r
\r
+18-EE-86 (hex) Novatel Wireless Solutions, Inc.\r
+18EE86 (base 16) Novatel Wireless Solutions, Inc.\r
+ 9710 Scranton Rd., Suite 200\r
+ San Diego CA 92121\r
+ US\r
+\r
+C4-DE-7B (hex) Huawei Device Co., Ltd.\r
+C4DE7B (base 16) Huawei Device Co., Ltd.\r
+ No.2 of Xincheng Road, Songshan Lake Zone\r
+ Dongguan Guangdong 523808\r
+ CN\r
+\r
6C-1A-75 (hex) Huawei Device Co., Ltd.\r
6C1A75 (base 16) Huawei Device Co., Ltd.\r
No.2 of Xincheng Road, Songshan Lake Zone\r
Dongguan Guangdong 523808\r
CN\r
\r
-18-EE-86 (hex) Novatel Wireless Solutions, Inc.\r
-18EE86 (base 16) Novatel Wireless Solutions, Inc.\r
- 9710 Scranton Rd., Suite 200\r
- San Diego CA 92121\r
- US\r
-\r
-A0-9F-10 (hex) SHENZHEN BILIAN ELECTRONIC CO.,LTD\r
-A09F10 (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
-20-1B-88 (hex) Dongguan Liesheng Electronic Co., Ltd.\r
-201B88 (base 16) Dongguan Liesheng Electronic Co., Ltd.\r
- F5, Building B, North Block, Gaosheng Tech Park, No. 84 Zhongli Road, Nancheng District, Dongguan Ci\r
- dongguan guangdong 523000\r
- CN\r
-\r
24-94-93 (hex) FibRSol Global Network Limited\r
249493 (base 16) FibRSol Global Network Limited\r
17, Deep vihar, Vikas Nagar,, Near Mayank hospital,, Uttam Nagar,\r
East Farmingdale NY 11735\r
US\r
\r
-5C-10-C5 (hex) Samsung Electronics Co.,Ltd\r
-5C10C5 (base 16) Samsung Electronics Co.,Ltd\r
- #94-1, Imsoo-Dong\r
- Gumi Gyeongbuk 730-350\r
- KR\r
-\r
-E8-EB-34 (hex) Cisco Systems, Inc\r
-E8EB34 (base 16) Cisco Systems, Inc\r
- 80 West Tasman Drive\r
- San Jose CA 94568\r
- US\r
-\r
-58-60-D8 (hex) ARRIS Group, Inc.\r
-5860D8 (base 16) ARRIS Group, Inc.\r
- 6450 Sequence Drive\r
- San Diego CA 92121\r
- US\r
-\r
9C-9A-C0 (hex) LEGO System A/S\r
9C9AC0 (base 16) LEGO System A/S\r
Aastvej 1\r
Billund DK-7190\r
DK\r
\r
+A0-9F-10 (hex) SHENZHEN BILIAN ELECTRONIC CO.,LTD\r
+A09F10 (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
3C-BD-C5 (hex) Arcadyan Corporation\r
3CBDC5 (base 16) Arcadyan Corporation\r
No.8, Sec.2, Guangfu Rd.\r
Hsinchu City Hsinchu 30071\r
TW\r
\r
-DC-8C-1B (hex) vivo Mobile Communication Co., Ltd.\r
-DC8C1B (base 16) vivo Mobile Communication Co., Ltd.\r
- #283,BBK Road\r
- Wusha,Chang'An DongGuan City,Guangdong, 523860\r
+20-1B-88 (hex) Dongguan Liesheng Electronic Co., Ltd.\r
+201B88 (base 16) Dongguan Liesheng Electronic Co., Ltd.\r
+ F5, Building B, North Block, Gaosheng Tech Park, No. 84 Zhongli Road, Nancheng District, Dongguan Ci\r
+ dongguan guangdong 523000\r
CN\r
\r
+58-60-D8 (hex) ARRIS Group, Inc.\r
+5860D8 (base 16) ARRIS Group, Inc.\r
+ 6450 Sequence Drive\r
+ San Diego CA 92121\r
+ US\r
+\r
+50-A5-DC (hex) ARRIS Group, Inc.\r
+50A5DC (base 16) ARRIS Group, Inc.\r
+ 6450 Sequence Drive\r
+ San Diego CA 92121\r
+ US\r
+\r
A8-DA-0C (hex) SERVERCOM (INDIA) PRIVATE LIMITED\r
A8DA0C (base 16) SERVERCOM (INDIA) PRIVATE LIMITED\r
E-43/1 OKHLA INDUSTRIAL AREA PHASE-II NEW DELHI SOUTH DELHI\r
NEW DELHI 110001\r
IN\r
\r
-F8-53-29 (hex) HUAWEI TECHNOLOGIES CO.,LTD\r
-F85329 (base 16) HUAWEI TECHNOLOGIES CO.,LTD\r
- No.2 Xin Cheng Road, Room R6,Songshan Lake Technology Park\r
- Dongguan 523808\r
- CN\r
+5C-10-C5 (hex) Samsung Electronics Co.,Ltd\r
+5C10C5 (base 16) Samsung Electronics Co.,Ltd\r
+ #94-1, Imsoo-Dong\r
+ Gumi Gyeongbuk 730-350\r
+ KR\r
\r
-50-A5-DC (hex) ARRIS Group, Inc.\r
-50A5DC (base 16) ARRIS Group, Inc.\r
- 6450 Sequence Drive\r
- San Diego CA 92121\r
+E8-EB-34 (hex) Cisco Systems, Inc\r
+E8EB34 (base 16) Cisco Systems, Inc\r
+ 80 West Tasman Drive\r
+ San Jose CA 94568\r
US\r
\r
74-B7-B3 (hex) Shenzhen YOUHUA Technology Co., Ltd\r
Shenzhen Guangdong 518055\r
CN\r
\r
+DC-8C-1B (hex) vivo Mobile Communication Co., Ltd.\r
+DC8C1B (base 16) vivo Mobile Communication Co., Ltd.\r
+ #283,BBK Road\r
+ Wusha,Chang'An DongGuan City,Guangdong, 523860\r
+ CN\r
+\r
+DC-9B-D6 (hex) TCT mobile ltd\r
+DC9BD6 (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
+F8-53-29 (hex) HUAWEI TECHNOLOGIES CO.,LTD\r
+F85329 (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
+04-E7-7E (hex) We Corporation Inc.\r
+04E77E (base 16) We Corporation Inc.\r
+ 201, 33, Deokcheon-ro, Manan-gu\r
+ Anyang-si Gyeonggi-do 14088\r
+ KR\r
+\r
+F8-3B-7E (hex) Huawei Device Co., Ltd.\r
+F83B7E (base 16) Huawei Device Co., Ltd.\r
+ No.2 of Xincheng Road, Songshan Lake Zone\r
+ Dongguan Guangdong 523808\r
+ CN\r
+\r
88-15-C5 (hex) Huawei Device Co., Ltd.\r
8815C5 (base 16) Huawei Device Co., Ltd.\r
No.2 of Xincheng Road, Songshan Lake Zone\r
Dongguan Guangdong 523808\r
CN\r
\r
-B4-1B-B0 (hex) Apple, Inc.\r
-B41BB0 (base 16) Apple, Inc.\r
+A0-78-17 (hex) Apple, Inc.\r
+A07817 (base 16) Apple, Inc.\r
1 Infinite Loop\r
Cupertino CA 95014\r
US\r
\r
-58-D3-49 (hex) Apple, Inc.\r
-58D349 (base 16) Apple, Inc.\r
+5C-87-30 (hex) Apple, Inc.\r
+5C8730 (base 16) Apple, Inc.\r
1 Infinite Loop\r
Cupertino CA 95014\r
US\r
\r
-F4-34-F0 (hex) Apple, Inc.\r
-F434F0 (base 16) Apple, Inc.\r
+B4-1B-B0 (hex) Apple, Inc.\r
+B41BB0 (base 16) Apple, Inc.\r
1 Infinite Loop\r
Cupertino CA 95014\r
US\r
\r
-B0-8C-75 (hex) Apple, Inc.\r
-B08C75 (base 16) Apple, Inc.\r
+58-D3-49 (hex) Apple, Inc.\r
+58D349 (base 16) Apple, Inc.\r
1 Infinite Loop\r
Cupertino CA 95014\r
US\r
Dongguan Guangdong 523808\r
CN\r
\r
-F8-3B-7E (hex) Huawei Device Co., Ltd.\r
-F83B7E (base 16) Huawei Device Co., Ltd.\r
- No.2 of Xincheng Road, Songshan Lake Zone\r
- Dongguan Guangdong 523808\r
- CN\r
-\r
-9C-28-B3 (hex) Apple, Inc.\r
-9C28B3 (base 16) Apple, Inc.\r
+F4-34-F0 (hex) Apple, Inc.\r
+F434F0 (base 16) Apple, Inc.\r
1 Infinite Loop\r
Cupertino CA 95014\r
US\r
\r
-A0-78-17 (hex) Apple, Inc.\r
-A07817 (base 16) Apple, Inc.\r
+B0-8C-75 (hex) Apple, Inc.\r
+B08C75 (base 16) Apple, Inc.\r
1 Infinite Loop\r
Cupertino CA 95014\r
US\r
\r
-5C-87-30 (hex) Apple, Inc.\r
-5C8730 (base 16) Apple, Inc.\r
+14-6B-9A (hex) zte corporation\r
+146B9A (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
+9C-28-B3 (hex) Apple, Inc.\r
+9C28B3 (base 16) Apple, Inc.\r
1 Infinite Loop\r
Cupertino CA 95014\r
US\r
\r
-DC-9B-D6 (hex) TCT mobile ltd\r
-DC9BD6 (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
-74-EC-B2 (hex) Amazon Technologies Inc.\r
-74ECB2 (base 16) Amazon Technologies Inc.\r
- P.O Box 8102\r
- Reno NV 89507\r
- US\r
+4C-52-EC (hex) SOLARWATT GmbH\r
+4C52EC (base 16) SOLARWATT GmbH\r
+ Maria-Reiche-Str. 2a\r
+ Dresden 01109\r
+ DE\r
\r
70-40-FF (hex) Huawei Device Co., Ltd.\r
7040FF (base 16) Huawei Device Co., Ltd.\r
Shanghai 201206\r
CN\r
\r
-14-6B-9A (hex) zte corporation\r
-146B9A (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
78-32-1B (hex) D-Link International\r
78321B (base 16) D-Link International\r
1 Internal Business Park, #03-12,The Synergy\r
Singapore Singapore 609917\r
SG\r
\r
-04-E7-7E (hex) We Corporation Inc.\r
-04E77E (base 16) We Corporation Inc.\r
- 201, 33, Deokcheon-ro, Manan-gu\r
- Anyang-si Gyeonggi-do 14088\r
- KR\r
-\r
-4C-52-EC (hex) SOLARWATT GmbH\r
-4C52EC (base 16) SOLARWATT GmbH\r
- Maria-Reiche-Str. 2a\r
- Dresden 01109\r
- DE\r
-\r
30-D9-41 (hex) Raydium Semiconductor Corp.\r
30D941 (base 16) Raydium Semiconductor Corp.\r
2F, No. 23, LiHsin Rd., Hsinchu Science Park\r
Hsinchu, Taiwan, R.O.C. TW 300\r
TW\r
\r
-00-26-43 (hex) ALPSALPINE CO,.LTD\r
-002643 (base 16) ALPSALPINE CO,.LTD\r
- 1-2-1, Okinouchi,\r
- Soma-city, Fukushima-pref., 976-8501\r
- JP\r
+40-8F-9D (hex) Juniper Networks\r
+408F9D (base 16) Juniper Networks\r
+ 1133 Innovation Way\r
+ Sunnyvale CA 94089\r
+ US\r
\r
38-C0-96 (hex) ALPSALPINE CO,.LTD\r
38C096 (base 16) ALPSALPINE CO,.LTD\r
Osaki Miyagi-pref 989-6181\r
JP\r
\r
+68-76-27 (hex) Zhuhai Dingzhi Electronic Technology Co., Ltd\r
+687627 (base 16) Zhuhai Dingzhi Electronic Technology Co., Ltd\r
+ 6th floor, No.2 Jinliang Road, Hongqi Town, Jinwan District\r
+ Zhuhai GuangDong 519000\r
+ CN\r
+\r
+24-E4-C8 (hex) Fiberhome Telecommunication Technologies Co.,LTD\r
+24E4C8 (base 16) Fiberhome Telecommunication Technologies Co.,LTD\r
+ No.5 DongXin Road\r
+ Wuhan Hubei 430074\r
+ CN\r
+\r
+20-0B-CF (hex) Nintendo Co.,Ltd\r
+200BCF (base 16) Nintendo Co.,Ltd\r
+ 11-1 HOKOTATE-CHO KAMITOBA,MINAMI-KU\r
+ KYOTO KYOTO 601-8501\r
+ JP\r
+\r
+94-8E-D3 (hex) Arista Networks\r
+948ED3 (base 16) Arista Networks\r
+ 5453 Great America Parkway\r
+ Santa Clara CA 95054\r
+ US\r
+\r
+00-26-43 (hex) ALPSALPINE CO,.LTD\r
+002643 (base 16) ALPSALPINE CO,.LTD\r
+ 1-2-1, Okinouchi,\r
+ Soma-city, Fukushima-pref., 976-8501\r
+ JP\r
+\r
+FC-B3-BC (hex) Intel Corporate\r
+FCB3BC (base 16) Intel Corporate\r
+ Lot 8, Jalan Hi-Tech 2/3 \r
+ Kulim Kedah 09000\r
+ MY\r
+\r
+18-CC-18 (hex) Intel Corporate\r
+18CC18 (base 16) Intel Corporate\r
+ Lot 8, Jalan Hi-Tech 2/3 \r
+ Kulim Kedah 09000\r
+ MY\r
+\r
+C0-3C-59 (hex) Intel Corporate\r
+C03C59 (base 16) Intel Corporate\r
+ Lot 8, Jalan Hi-Tech 2/3 \r
+ Kulim Kedah 09000\r
+ MY\r
+\r
+84-1B-77 (hex) Intel Corporate\r
+841B77 (base 16) Intel Corporate\r
+ Lot 8, Jalan Hi-Tech 2/3 \r
+ Kulim Kedah 09000\r
+ MY\r
+\r
+38-90-52 (hex) HUAWEI TECHNOLOGIES CO.,LTD\r
+389052 (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
+C0-F6-EC (hex) HUAWEI TECHNOLOGIES CO.,LTD\r
+C0F6EC (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-20-8C (hex) HUAWEI TECHNOLOGIES CO.,LTD\r
+CC208C (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-5A-85 (hex) Wistron Neweb Corporation\r
+885A85 (base 16) Wistron Neweb Corporation\r
+ No.20,Park Avenue II,Hsinchu Science Park\r
+ Hsin-Chu R.O.C. 308\r
+ TW\r
+\r
+D8-00-93 (hex) Aurender Inc.\r
+D80093 (base 16) Aurender Inc.\r
+ #1612, OBIZTOWER, 126, Beolmal-ro, Dongan-gu\r
+ Anyang-si Gyeonggi-do 14057\r
+ KR\r
+\r
+34-C9-3D (hex) Intel Corporate\r
+34C93D (base 16) Intel Corporate\r
+ Lot 8, Jalan Hi-Tech 2/3 \r
+ Kulim Kedah 09000\r
+ MY\r
+\r
+00-15-E7 (hex) Quantec Tontechnik\r
+0015E7 (base 16) Quantec Tontechnik\r
+ Maenherstr. 35\r
+ München D-81375\r
+ DE\r
+\r
+2C-A5-9C (hex) Hangzhou Hikvision Digital Technology Co.,Ltd.\r
+2CA59C (base 16) Hangzhou Hikvision Digital Technology Co.,Ltd.\r
+ No.555 Qianmo Road\r
+ Hangzhou Zhejiang 310052\r
+ CN\r
+\r
+AC-78-D1 (hex) Juniper Networks\r
+AC78D1 (base 16) Juniper Networks\r
+ 1133 Innovation Way\r
+ Sunnyvale CA 94089\r
+ US\r
+\r
+6C-98-EB (hex) Riverbed Technology, Inc.\r
+6C98EB (base 16) Riverbed Technology, Inc.\r
+ 680 Folsom St\r
+ San Francisco CA 94107\r
+ US\r
+\r
+00-1F-F5 (hex) Kongsberg Defence & Aerospace\r
+001FF5 (base 16) Kongsberg Defence & Aerospace\r
+ Kirkegaardsveien 45 P.O.Box 1003\r
+ Kongsberg NO-3601\r
+ NO\r
+\r
+08-9A-C7 (hex) zte corporation\r
+089AC7 (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
+74-4C-A1 (hex) Liteon Technology Corporation\r
+744CA1 (base 16) Liteon Technology Corporation\r
+ 4F, 90, Chien 1 Road\r
+ New Taipei City Taiwan 23585\r
+ TW\r
+\r
+B4-B2-91 (hex) LG Electronics\r
+B4B291 (base 16) LG Electronics\r
+ 222 LG-ro, JINWI-MYEON\r
+ Pyeongtaek-si Gyeonggi-do 451-713\r
+ KR\r
+\r
+BC-6D-05 (hex) Dusun Electron Co.,Ltd.\r
+BC6D05 (base 16) Dusun Electron Co.,Ltd.\r
+ NO.640 FengQing str.,DeQing, ZheJiang, China\r
+ huzhou zhejiang 313200\r
+ CN\r
+\r
+C0-41-21 (hex) Nokia Solutions and Networks GmbH & Co. KG\r
+C04121 (base 16) Nokia Solutions and Networks GmbH & Co. KG\r
+ Werinherstrasse 91\r
+ München Bavaria D-81541\r
+ DE\r
+\r
+0C-7C-28 (hex) Nokia Solutions and Networks GmbH & Co. KG\r
+0C7C28 (base 16) Nokia Solutions and Networks GmbH & Co. KG\r
+ Werinherstrasse 91\r
+ München Bavaria D-81541\r
+ DE\r
+\r
+20-78-52 (hex) Nokia Solutions and Networks GmbH & Co. KG\r
+207852 (base 16) Nokia Solutions and Networks GmbH & Co. KG\r
+ Werinherstrasse 91\r
+ München Bavaria D-81541\r
+ DE\r
+\r
+C0-E0-18 (hex) HUAWEI TECHNOLOGIES CO.,LTD\r
+C0E018 (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-E7-47 (hex) HUAWEI TECHNOLOGIES CO.,LTD\r
+5CE747 (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
+A8-FF-BA (hex) HUAWEI TECHNOLOGIES CO.,LTD\r
+A8FFBA (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-C2-C6 (hex) TP-Link Corporation Limited\r
+7CC2C6 (base 16) TP-Link Corporation Limited\r
+ Room 901,9/F.New East Ocean Centre, 9 Science Museum Road\r
+ Tsim Sha Tsui Kowloon 999077\r
+ HK\r
+\r
+74-EC-B2 (hex) Amazon Technologies Inc.\r
+74ECB2 (base 16) Amazon Technologies Inc.\r
+ P.O Box 8102 \r
+ Reno NV 89507\r
+ US\r
+\r
+C8-6C-3D (hex) Amazon Technologies Inc.\r
+C86C3D (base 16) Amazon Technologies Inc.\r
+ P.O Box 8102 \r
+ Reno NV 89507\r
+ US\r
+\r
+54-FA-96 (hex) Nokia Solutions and Networks GmbH & Co. KG\r
+54FA96 (base 16) Nokia Solutions and Networks GmbH & Co. KG\r
+ Werinherstrasse 91\r
+ München Bavaria D-81541\r
+ DE\r
+\r
+20-EF-BD (hex) Roku, Inc\r
+20EFBD (base 16) Roku, Inc\r
+ 1155 Coleman Ave\r
+ San Jose CA 95110\r
+ US\r
+\r
+EC-BE-5F (hex) Vestel Elektronik San ve Tic. A.Ş.\r
+ECBE5F (base 16) Vestel Elektronik San ve Tic. A.Ş.\r
+ Organize san\r
+ Manisa Turket 45030\r
+ TR\r
+\r
+A4-42-3B (hex) Intel Corporate\r
+A4423B (base 16) Intel Corporate\r
+ Lot 8, Jalan Hi-Tech 2/3 \r
+ Kulim Kedah 09000\r
+ MY\r
+\r
+70-CF-49 (hex) Intel Corporate\r
+70CF49 (base 16) Intel Corporate\r
+ Lot 8, Jalan Hi-Tech 2/3 \r
+ Kulim Kedah 09000\r
+ MY\r
+\r
+48-51-C5 (hex) Intel Corporate\r
+4851C5 (base 16) Intel Corporate\r
+ Lot 8, Jalan Hi-Tech 2/3 \r
+ Kulim Kedah 09000\r
+ MY\r
+\r
+74-50-4E (hex) New H3C Technologies Co., Ltd\r
+74504E (base 16) New H3C Technologies Co., Ltd\r
+ 466 Changhe Road, Binjiang District\r
+ Hangzhou Zhejiang 310052\r
+ CN\r
+\r
+8C-0F-C9 (hex) Huawei Device Co., Ltd.\r
+8C0FC9 (base 16) Huawei Device Co., Ltd.\r
+ No.2 of Xincheng Road, Songshan Lake Zone\r
+ Dongguan Guangdong 523808\r
+ CN\r
+\r
+30-4E-1B (hex) Huawei Device Co., Ltd.\r
+304E1B (base 16) Huawei Device Co., Ltd.\r
+ No.2 of Xincheng Road, Songshan Lake Zone\r
+ Dongguan Guangdong 523808\r
+ CN\r
+\r
84-80-94 (hex) Meter, Inc.\r
848094 (base 16) Meter, Inc.\r
148 Townsend St\r
Irvine 92618\r
US\r
\r
-8C-49-62 (hex) Roku, Inc\r
-8C4962 (base 16) Roku, Inc\r
- 150 Winchester Circle\r
- Los Gatos CA 95032\r
- US\r
-\r
10-33-BF (hex) Technicolor CH USA Inc.\r
1033BF (base 16) Technicolor CH USA Inc.\r
5030 Sugarloaf Parkway Bldg 6 \r
Tianjin Pilot Free Trade Zone Airport EconomicArea Airport International Logistics Zone, Tianjin 300300\r
CN\r
\r
-E4-D3-AA (hex) FUJITSU CONNECTED TECHNOLOGIES LIMITED\r
-E4D3AA (base 16) FUJITSU CONNECTED TECHNOLOGIES LIMITED\r
- 4-1-1, Kamikodanaka, Nakahara-ku\r
- Kawasaki Kanagawa 2118588\r
- JP\r
-\r
D4-67-D3 (hex) GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP.,LTD\r
D467D3 (base 16) GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP.,LTD\r
NO.18 HAIBIN ROAD,\r
Qingdao Shandong 266101\r
CN\r
\r
-78-F9-B4 (hex) Nokia\r
-78F9B4 (base 16) Nokia\r
- Karaportti 3\r
- Espoo Finland 02610\r
- FI\r
-\r
D0-76-E7 (hex) TP-LINK TECHNOLOGIES CO.,LTD.\r
D076E7 (base 16) TP-LINK TECHNOLOGIES CO.,LTD.\r
Building 24(floors 1,3,4,5)and 28(floors 1-4)Central Science and Technology Park,Shennan Road,Nanshan\r
San Jose CA 94568\r
US\r
\r
-C8-3A-6B (hex) Roku, Inc\r
-C83A6B (base 16) Roku, Inc\r
- 150 Winchester Circle\r
- Los Gatos CA 95032\r
- US\r
-\r
B4-C6-F8 (hex) Axilspot Communication\r
B4C6F8 (base 16) Axilspot Communication\r
A302 Han's Innovation Building, No.9018 Beihuan Ave., Nanshan District\r
Salo NA 24101\r
FI\r
\r
-60-A8-FE (hex) Nokia\r
-60A8FE (base 16) Nokia\r
- Karaportti 3\r
- Espoo 02610\r
- FI\r
-\r
00-11-9F (hex) Nokia Danmark A/S\r
00119F (base 16) Nokia Danmark A/S\r
Frederikskaj\r
HangZhou ZheJiang 311258\r
CN\r
\r
-D8-EF-CD (hex) Nokia\r
-D8EFCD (base 16) Nokia\r
- Karaportti 3\r
- Espoo Finland 02610\r
- FI\r
-\r
4C-C6-81 (hex) Shenzhen Aisat Electronic Co., Ltd.\r
4CC681 (base 16) Shenzhen Aisat Electronic Co., Ltd.\r
Golden Building 419#, Design Park,\r
York YO30 4RY\r
GB\r
\r
+28-11-EC (hex) HUAWEI TECHNOLOGIES CO.,LTD\r
+2811EC (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
B0-B1-94 (hex) zte corporation\r
B0B194 (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
-10-C3-AB (hex) HUAWEI TECHNOLOGIES CO.,LTD\r
-10C3AB (base 16) HUAWEI TECHNOLOGIES CO.,LTD\r
- No.2 Xin Cheng Road, Room R6,Songshan Lake Technology Park\r
- Dongguan 523808\r
+E4-26-86 (hex) DWnet Technologies(Suzhou) Corporation\r
+E42686 (base 16) DWnet Technologies(Suzhou) Corporation\r
+ No.8,Tangzhuang Road, Suzhou Industrial Park, Jiangsu, China\r
+ Suzhou 21500\r
CN\r
\r
-28-11-EC (hex) HUAWEI TECHNOLOGIES CO.,LTD\r
-2811EC (base 16) HUAWEI TECHNOLOGIES CO.,LTD\r
+38-EB-47 (hex) HUAWEI TECHNOLOGIES CO.,LTD\r
+38EB47 (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
-E4-26-86 (hex) DWnet Technologies(Suzhou) Corporation\r
-E42686 (base 16) DWnet Technologies(Suzhou) Corporation\r
- No.8,Tangzhuang Road, Suzhou Industrial Park, Jiangsu, China\r
- Suzhou 21500\r
+10-C3-AB (hex) HUAWEI TECHNOLOGIES CO.,LTD\r
+10C3AB (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
00-69-2D (hex) Sunnovo International Limited\r
Beijing Beijing 100083\r
CN\r
\r
-38-EB-47 (hex) HUAWEI TECHNOLOGIES CO.,LTD\r
-38EB47 (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-37-96 (hex) BIZLINK TECHNOLOGY, INC.\r
0C3796 (base 16) BIZLINK TECHNOLOGY, INC.\r
47211 BAYSIDE PARKWAY\r
Yantai Shandong 264000\r
CN\r
\r
+70-38-11 (hex) Siemens Mobility Limited\r
+703811 (base 16) Siemens Mobility Limited\r
+ 17 Langley Park Way\r
+ Chippenham Wiltshire SN15 1GG\r
+ GB\r
+\r
00-E0-EC (hex) CELESTICA INC.\r
00E0EC (base 16) CELESTICA INC.\r
1900-5140 Yonge Street PO Box 42 \r
Toronto Ontario M2N 6L7\r
CA\r
\r
-70-38-11 (hex) Siemens Mobility Limited\r
-703811 (base 16) Siemens Mobility Limited\r
- 17 Langley Park Way\r
- Chippenham Wiltshire SN15 1GG\r
- GB\r
+B8-90-47 (hex) Apple, Inc.\r
+B89047 (base 16) Apple, Inc.\r
+ 1 Infinite Loop\r
+ Cupertino CA 95014\r
+ US\r
\r
64-62-66 (hex) IEEE Registration Authority\r
646266 (base 16) IEEE Registration Authority\r
Mianyang Sichuan 622650\r
CN\r
\r
+20-82-6A (hex) GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP.,LTD\r
+20826A (base 16) GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP.,LTD\r
+ NO.18 HAIBIN ROAD,\r
+ DONG GUAN GUANG DONG 523860\r
+ CN\r
+\r
D8-5F-77 (hex) Telink Semiconductor (Shanghai) Co., Ltd.\r
D85F77 (base 16) Telink Semiconductor (Shanghai) Co., Ltd.\r
No. 1500 Zuchongzhi Rd, Building #3\r
minato-ku Tokyo 108-0075\r
JP\r
\r
-20-82-6A (hex) GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP.,LTD\r
-20826A (base 16) GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP.,LTD\r
- NO.18 HAIBIN ROAD,\r
- DONG GUAN GUANG DONG 523860\r
- CN\r
-\r
-B8-90-47 (hex) Apple, Inc.\r
-B89047 (base 16) Apple, Inc.\r
- 1 Infinite Loop\r
- Cupertino CA 95014\r
- US\r
-\r
90-9C-4A (hex) Apple, Inc.\r
909C4A (base 16) Apple, Inc.\r
1 Infinite Loop\r
Cupertino CA 95014\r
US\r
\r
+F0-10-90 (hex) New H3C Technologies Co., Ltd\r
+F01090 (base 16) New H3C Technologies Co., Ltd\r
+ 466 Changhe Road, Binjiang District\r
+ Hangzhou Zhejiang 310052\r
+ CN\r
+\r
+20-50-E7 (hex) AMPAK Technology,Inc.\r
+2050E7 (base 16) AMPAK Technology,Inc.\r
+ 3F, No.15-1 Zhonghua Road, Hsinchu Industrail Park, Hukou,\r
+ Hsinchu Hsinchu,Taiwan R.O.C. 30352\r
+ TW\r
+\r
+38-22-E2 (hex) HP Inc.\r
+3822E2 (base 16) HP Inc.\r
+ 10300 Energy Dr\r
+ Spring TX 77389\r
+ US\r
+\r
+70-1F-3C (hex) Samsung Electronics Co.,Ltd\r
+701F3C (base 16) Samsung Electronics Co.,Ltd\r
+ #94-1, Imsoo-Dong\r
+ Gumi Gyeongbuk 730-350\r
+ KR\r
+\r
D4-8A-39 (hex) Samsung Electronics Co.,Ltd\r
D48A39 (base 16) Samsung Electronics Co.,Ltd\r
#94-1, Imsoo-Dong\r
shenzhen guangdong 518057\r
CN\r
\r
-F0-10-90 (hex) New H3C Technologies Co., Ltd\r
-F01090 (base 16) New H3C Technologies Co., Ltd\r
- 466 Changhe Road, Binjiang District\r
- Hangzhou Zhejiang 310052\r
+D8-A8-C8 (hex) zte corporation\r
+D8A8C8 (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
08-BF-A0 (hex) Samsung Electronics Co.,Ltd\r
Gumi Gyeongbuk 730-350\r
KR\r
\r
-70-1F-3C (hex) Samsung Electronics Co.,Ltd\r
-701F3C (base 16) Samsung Electronics Co.,Ltd\r
- #94-1, Imsoo-Dong\r
- Gumi Gyeongbuk 730-350\r
- KR\r
-\r
-20-50-E7 (hex) AMPAK Technology,Inc.\r
-2050E7 (base 16) AMPAK Technology,Inc.\r
- 3F, No.15-1 Zhonghua Road, Hsinchu Industrail Park, Hukou,\r
- Hsinchu Hsinchu,Taiwan R.O.C. 30352\r
- TW\r
+5C-55-78 (hex) iryx corp\r
+5C5578 (base 16) iryx corp\r
+ 14 Hughes\r
+ Irvine CA 92618\r
+ US\r
\r
-D8-A8-C8 (hex) zte corporation\r
-D8A8C8 (base 16) zte corporation\r
- 12/F.,zte R&D building ,kejinan Road,Shenzhen,P.R.China\r
- shenzhen guangdong 518057\r
+B8-C6-AA (hex) Earda Technologies co Ltd\r
+B8C6AA (base 16) Earda Technologies co Ltd\r
+ Block A,Lianfeng Creative Park, #2 Jisheng Rd., Nansha District\r
+ Guangzhou Guangdong 511455\r
CN\r
\r
-38-22-E2 (hex) HP Inc.\r
-3822E2 (base 16) HP Inc.\r
- 10300 Energy Dr\r
- Spring TX 77389\r
- US\r
+54-AE-D0 (hex) DASAN Networks, Inc. \r
+54AED0 (base 16) DASAN Networks, Inc. \r
+ DASAN Tower, 49, Daewangpangyo-ro, 644 Beon-gil, Bundang-gu\r
+ Seongnam-si Gyeonggi-do 13493\r
+ KR\r
\r
08-C0-EB (hex) Mellanox Technologies, Inc.\r
08C0EB (base 16) Mellanox Technologies, Inc.\r
Dongguan Guangdong 523808\r
CN\r
\r
-5C-55-78 (hex) iryx corp\r
-5C5578 (base 16) iryx corp\r
- 14 Hughes\r
- Irvine CA 92618\r
+40-DE-AD (hex) Juniper Networks\r
+40DEAD (base 16) Juniper Networks\r
+ 1133 Innovation Way\r
+ Sunnyvale CA 94089\r
US\r
\r
-6C-F7-12 (hex) Nokia\r
-6CF712 (base 16) Nokia\r
- Karaportti 3\r
- Espoo Finland 02610\r
- FI\r
+68-B9-D3 (hex) Shenzhen Trolink Technology CO, LTD\r
+68B9D3 (base 16) Shenzhen Trolink Technology CO, LTD\r
+ 201 B building 4 shijie, Chashu industry 505 block, Baoan airport Sanwei community, Hangcheng street Baoan area.\r
+ Shenzhen GuangDong 518000\r
+ CN\r
\r
4C-C5-3E (hex) Zyxel Communications Corporation\r
4CC53E (base 16) Zyxel Communications Corporation\r
Hong Kong Hong Kong 999077\r
HK\r
\r
+10-70-FD (hex) Mellanox Technologies, Inc.\r
+1070FD (base 16) Mellanox Technologies, Inc.\r
+ 350 Oakmead Parkway, Suite 100 \r
+ Sunnyvale CA 94085\r
+ US\r
+\r
+98-ED-5C (hex) Tesla,Inc.\r
+98ED5C (base 16) Tesla,Inc.\r
+ 3500 Deer Creek Road\r
+ Palo Alto CA 94304\r
+ US\r
+\r
+C4-42-68 (hex) CRESTRON ELECTRONICS, INC.\r
+C44268 (base 16) CRESTRON ELECTRONICS, INC.\r
+ 15 Volvo Drive\r
+ Rockleigh NJ 07647\r
+ US\r
+\r
B8-63-92 (hex) GUANGDONG GENIUS TECHNOLOGY CO., LTD.\r
B86392 (base 16) GUANGDONG GENIUS TECHNOLOGY CO., LTD.\r
No.168, Middle Road Of East Gate\r
Xiaobian Community Chang'an Town 523851\r
CN\r
\r
-68-B9-D3 (hex) Shenzhen Trolink Technology CO, LTD\r
-68B9D3 (base 16) Shenzhen Trolink Technology CO, LTD\r
- 201 B building 4 shijie, Chashu industry 505 block, Baoan airport Sanwei community, Hangcheng street Baoan area.\r
- Shenzhen GuangDong 518000\r
+78-AA-82 (hex) New H3C Technologies Co., Ltd\r
+78AA82 (base 16) New H3C Technologies Co., Ltd\r
+ 466 Changhe Road, Binjiang District\r
+ Hangzhou Zhejiang 310052\r
CN\r
\r
-B8-C6-AA (hex) Earda Technologies co Ltd\r
-B8C6AA (base 16) Earda Technologies co Ltd\r
- Block A,Lianfeng Creative Park, #2 Jisheng Rd., Nansha District\r
- Guangzhou Guangdong 511455\r
+54-71-DD (hex) Huawei Device Co., Ltd.\r
+5471DD (base 16) Huawei Device Co., Ltd.\r
+ No.2 of Xincheng Road, Songshan Lake Zone\r
+ Dongguan Guangdong 523808\r
CN\r
\r
-54-AE-D0 (hex) DASAN Networks, Inc. \r
-54AED0 (base 16) DASAN Networks, Inc. \r
- DASAN Tower, 49, Daewangpangyo-ro, 644 Beon-gil, Bundang-gu\r
- Seongnam-si Gyeonggi-do 13493\r
- KR\r
-\r
-10-70-FD (hex) Mellanox Technologies, Inc.\r
-1070FD (base 16) Mellanox Technologies, Inc.\r
- 350 Oakmead Parkway, Suite 100 \r
- Sunnyvale CA 94085\r
- US\r
+40-F5-20 (hex) Espressif Inc.\r
+40F520 (base 16) Espressif Inc.\r
+ Room 204, Building 2, 690 Bibo Rd, Pudong New Area\r
+ Shanghai Shanghai 201203\r
+ CN\r
\r
38-F6-01 (hex) Solid State Storage Technology Corporation\r
38F601 (base 16) Solid State Storage Technology Corporation\r
Taipei 11492\r
TW\r
\r
-40-DE-AD (hex) Juniper Networks\r
-40DEAD (base 16) Juniper Networks\r
- 1133 Innovation Way\r
- Sunnyvale CA 94089\r
- US\r
-\r
-40-F5-20 (hex) Espressif Inc.\r
-40F520 (base 16) Espressif Inc.\r
- Room 204, Building 2, 690 Bibo Rd, Pudong New Area\r
- Shanghai Shanghai 201203\r
- CN\r
-\r
-78-AA-82 (hex) New H3C Technologies Co., Ltd\r
-78AA82 (base 16) New H3C Technologies Co., Ltd\r
- 466 Changhe Road, Binjiang District\r
- Hangzhou Zhejiang 310052\r
- CN\r
+60-54-64 (hex) Eyedro Green Solutions Inc.\r
+605464 (base 16) Eyedro Green Solutions Inc.\r
+ 130 Weber St W, Suite 201\r
+ Kitchener Ontario N2H4A2\r
+ CA\r
\r
20-6C-8A (hex) Extreme Networks, Inc.\r
206C8A (base 16) Extreme Networks, Inc.\r
Milpitas CA 95035\r
US\r
\r
-88-5B-DD (hex) Extreme Networks, Inc.\r
-885BDD (base 16) Extreme Networks, Inc.\r
- 1011 McCarthy Blvd\r
- Milpitas CA 95035\r
- US\r
-\r
-98-ED-5C (hex) Tesla,Inc.\r
-98ED5C (base 16) Tesla,Inc.\r
- 3500 Deer Creek Road\r
- Palo Alto CA 94304\r
- US\r
-\r
-C4-42-68 (hex) CRESTRON ELECTRONICS, INC.\r
-C44268 (base 16) CRESTRON ELECTRONICS, INC.\r
- 15 Volvo Drive\r
- Rockleigh NJ 07647\r
- US\r
-\r
-54-71-DD (hex) Huawei Device Co., Ltd.\r
-5471DD (base 16) Huawei Device Co., Ltd.\r
- No.2 of Xincheng Road, Songshan Lake Zone\r
- Dongguan Guangdong 523808\r
- CN\r
-\r
E4-A7-49 (hex) Palo Alto Networks\r
E4A749 (base 16) Palo Alto Networks\r
3000 Tannery Way\r
Herzelia 46725\r
IL\r
\r
+88-5B-DD (hex) Extreme Networks, Inc.\r
+885BDD (base 16) Extreme Networks, Inc.\r
+ 1011 McCarthy Blvd\r
+ Milpitas CA 95035\r
+ US\r
+\r
D8-91-36 (hex) Dover Fueling Solutions\r
D89136 (base 16) Dover Fueling Solutions\r
Industrieweg 5\r
Vista CA 92081\r
US\r
\r
+FC-95-6A (hex) OCTAGON SYSTEMS CORP.\r
+FC956A (base 16) OCTAGON SYSTEMS CORP.\r
+ 7403 Church Ranch Blvd\r
+ Westminster CO 80021\r
+ US\r
+\r
B8-E3-EE (hex) Universal Electronics, Inc.\r
B8E3EE (base 16) Universal Electronics, Inc.\r
201 E. Sandpointe Ave\r
Coimbatore Tamil Nadu 641015\r
IN\r
\r
-60-54-64 (hex) Eyedro Green Solutions Inc.\r
-605464 (base 16) Eyedro Green Solutions Inc.\r
- 130 Weber St W, Suite 201\r
- Kitchener Ontario N2H4A2\r
- CA\r
+88-40-33 (hex) HUAWEI TECHNOLOGIES CO.,LTD\r
+884033 (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-95-6A (hex) OCTAGON SYSTEMS CORP.\r
-FC956A (base 16) OCTAGON SYSTEMS CORP.\r
- 7403 Church Ranch Blvd\r
- Westminster CO 80021\r
+AC-7A-56 (hex) Cisco Systems, Inc\r
+AC7A56 (base 16) Cisco Systems, Inc\r
+ 80 West Tasman Drive\r
+ San Jose CA 94568\r
+ US\r
+\r
+C0-A6-6D (hex) Inspur Group Co., Ltd.\r
+C0A66D (base 16) Inspur Group Co., Ltd.\r
+ No.1036 Langchao Rd.\r
+ Jinan Shandong 250101\r
+ CN\r
+\r
+70-F0-96 (hex) Cisco Systems, Inc\r
+70F096 (base 16) Cisco Systems, Inc\r
+ 80 West Tasman Drive\r
+ San Jose CA 94568\r
US\r
\r
40-B3-1E (hex) Universal Electronics, Inc.\r
Santa Ana CA 92707\r
US\r
\r
-88-40-33 (hex) HUAWEI TECHNOLOGIES CO.,LTD\r
-884033 (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-F6-B5 (hex) Nintendo Co.,Ltd\r
E0F6B5 (base 16) Nintendo Co.,Ltd\r
11-1 HOKOTATE-CHO KAMITOBA,MINAMI-KU\r
KYOTO KYOTO 601-8501\r
JP\r
\r
-AC-7A-56 (hex) Cisco Systems, Inc\r
-AC7A56 (base 16) Cisco Systems, Inc\r
- 80 West Tasman Drive\r
- San Jose CA 94568\r
- US\r
-\r
44-8D-BF (hex) Rhino Mobility LLC\r
448DBF (base 16) Rhino Mobility LLC\r
8 The Green, Suite A\r
Dover DE 19901\r
US\r
\r
+00-05-1E (hex) Brocade Communications Systems LLC\r
+00051E (base 16) Brocade Communications Systems LLC\r
+ 1320 Ridder Park Dr\r
+ San Jose CA 95131\r
+ US\r
+\r
94-8A-C6 (hex) Realme Chongqing Mobile Telecommunications Corp.,Ltd.\r
948AC6 (base 16) Realme Chongqing Mobile Telecommunications Corp.,Ltd.\r
No.178 Yulong Avenue, Yufengshan, Yubei District, Chongqing.\r
Chongqing China 401120\r
CN\r
\r
-C0-A6-6D (hex) Inspur Group Co., Ltd.\r
-C0A66D (base 16) Inspur Group Co., Ltd.\r
- No.1036 Langchao Rd.\r
- Jinan Shandong 250101\r
+E0-D4-62 (hex) Huawei Device Co., Ltd.\r
+E0D462 (base 16) Huawei Device Co., Ltd.\r
+ No.2 of Xincheng Road, Songshan Lake Zone\r
+ Dongguan Guangdong 523808\r
CN\r
\r
-70-F0-96 (hex) Cisco Systems, Inc\r
-70F096 (base 16) Cisco Systems, Inc\r
- 80 West Tasman Drive\r
- San Jose CA 94568\r
+90-98-38 (hex) Huawei Device Co., Ltd.\r
+909838 (base 16) Huawei Device Co., Ltd.\r
+ No.2 of Xincheng Road, Songshan Lake Zone\r
+ Dongguan Guangdong 523808\r
+ CN\r
+\r
+00-12-F2 (hex) Brocade Communications Systems LLC\r
+0012F2 (base 16) Brocade Communications Systems LLC\r
+ 1320 Ridder Park Dr\r
+ San Jose CA 95131\r
+ US\r
+\r
+C4-F5-7C (hex) Brocade Communications Systems LLC\r
+C4F57C (base 16) Brocade Communications Systems LLC\r
+ 1320 Ridder Park Dr\r
+ San Jose CA 95131\r
US\r
\r
00-20-A6 (hex) Proxim Wireless\r
Hangzhou Zhejiang 310052\r
CN\r
\r
-00-05-1E (hex) Brocade Communications Systems LLC\r
-00051E (base 16) Brocade Communications Systems LLC\r
- 1320 Ridder Park Dr\r
- San Jose CA 95131\r
- US\r
-\r
98-8B-0A (hex) Hangzhou Hikvision Digital Technology Co.,Ltd.\r
988B0A (base 16) Hangzhou Hikvision Digital Technology Co.,Ltd.\r
No.555 Qianmo Road\r
Hangzhou Zhejiang 310052\r
CN\r
\r
-E0-D4-62 (hex) Huawei Device Co., Ltd.\r
-E0D462 (base 16) Huawei Device Co., Ltd.\r
- No.2 of Xincheng Road, Songshan Lake Zone\r
- Dongguan Guangdong 523808\r
- CN\r
-\r
-90-98-38 (hex) Huawei Device Co., Ltd.\r
-909838 (base 16) Huawei Device Co., Ltd.\r
- No.2 of Xincheng Road, Songshan Lake Zone\r
- Dongguan Guangdong 523808\r
- CN\r
+2C-9F-FB (hex) Wistron Neweb Corporation\r
+2C9FFB (base 16) Wistron Neweb Corporation\r
+ No.20,Park Avenue II,Hsinchu Science Park\r
+ Hsin-Chu R.O.C. 308\r
+ TW\r
\r
84-CC-A8 (hex) Espressif Inc.\r
84CCA8 (base 16) Espressif Inc.\r
Shanghai Shanghai 201203\r
CN\r
\r
-C4-F5-7C (hex) Brocade Communications Systems LLC\r
-C4F57C (base 16) Brocade Communications Systems LLC\r
- 1320 Ridder Park Dr\r
- San Jose CA 95131\r
- US\r
-\r
-00-12-F2 (hex) Brocade Communications Systems LLC\r
-0012F2 (base 16) Brocade Communications Systems LLC\r
- 1320 Ridder Park Dr\r
- San Jose CA 95131\r
- US\r
+0C-14-D2 (hex) China Mobile Group Device Co.,Ltd.\r
+0C14D2 (base 16) China Mobile Group Device Co.,Ltd.\r
+ 32 Xuanwumen West Street,Xicheng District\r
+ Beijing 100053\r
+ CN\r
\r
-6C-2F-8A (hex) Samsung Electronics Co.,Ltd\r
-6C2F8A (base 16) Samsung Electronics Co.,Ltd\r
- #94-1, Imsoo-Dong\r
- Gumi Gyeongbuk 730-350\r
+70-8C-BB (hex) MIMODISPLAYKOREA\r
+708CBB (base 16) MIMODISPLAYKOREA\r
+ #812, 19, Ojeongongeop-gil\r
+ Uiwang-si Gyeonggi-do 16072\r
KR\r
\r
-F0-B0-22 (hex) TOHO Electronics INC.\r
-F0B022 (base 16) TOHO Electronics INC.\r
- 1-13-21 Tanashioda, Chuo-Ku\r
- Sagamihara-City Kanagawa 252-0245\r
- JP\r
-\r
98-7E-CA (hex) Inventus Power Eletronica do Brasil LTDA\r
987ECA (base 16) Inventus Power Eletronica do Brasil LTDA\r
Av Buriti, 4285 Distrito Industrial\r
Manaus Amazonas 69075000\r
BR\r
\r
-2C-9F-FB (hex) Wistron Neweb Corporation\r
-2C9FFB (base 16) Wistron Neweb Corporation\r
- No.20,Park Avenue II,Hsinchu Science Park\r
- Hsin-Chu R.O.C. 308\r
- TW\r
+F0-B0-22 (hex) TOHO Electronics INC.\r
+F0B022 (base 16) TOHO Electronics INC.\r
+ 1-13-21 Tanashioda, Chuo-Ku\r
+ Sagamihara-City Kanagawa 252-0245\r
+ JP\r
\r
50-38-2F (hex) ASE Group Chung-Li\r
50382F (base 16) ASE Group Chung-Li\r
Chung-Li , Taoyuan Taoyuan 32016\r
TW\r
\r
-0C-14-D2 (hex) China Mobile Group Device Co.,Ltd.\r
-0C14D2 (base 16) China Mobile Group Device Co.,Ltd.\r
- 32 Xuanwumen West Street,Xicheng District\r
- Beijing 100053\r
- CN\r
-\r
-D4-F8-29 (hex) Sagemcom Broadband SAS\r
-D4F829 (base 16) Sagemcom Broadband SAS\r
- 250, route de l'Empereur\r
- Rueil Malmaison Cedex hauts de seine 92848\r
- FR\r
-\r
-E0-62-34 (hex) Texas Instruments\r
-E06234 (base 16) Texas Instruments\r
- 12500 TI Blvd\r
- Dallas TX 75243\r
- US\r
-\r
-70-8C-BB (hex) MIMODISPLAYKOREA\r
-708CBB (base 16) MIMODISPLAYKOREA\r
- #812, 19, Ojeongongeop-gil\r
- Uiwang-si Gyeonggi-do 16072\r
+6C-2F-8A (hex) Samsung Electronics Co.,Ltd\r
+6C2F8A (base 16) Samsung Electronics Co.,Ltd\r
+ #94-1, Imsoo-Dong\r
+ Gumi Gyeongbuk 730-350\r
KR\r
\r
B8-48-AA (hex) EM Microelectronic\r
Irvine CA 92614\r
US\r
\r
+D4-F8-29 (hex) Sagemcom Broadband SAS\r
+D4F829 (base 16) Sagemcom Broadband SAS\r
+ 250, route de l'Empereur\r
+ Rueil Malmaison Cedex hauts de seine 92848\r
+ FR\r
+\r
+24-4B-FE (hex) ASUSTek COMPUTER INC.\r
+244BFE (base 16) ASUSTek COMPUTER INC.\r
+ 15,Li-Te Rd., Peitou, Taipei 112, Taiwan\r
+ Taipei Taiwan 112\r
+ TW\r
+\r
+28-B3-71 (hex) Ruckus Wireless\r
+28B371 (base 16) Ruckus Wireless\r
+ 350 West Java Drive\r
+ Sunnyvale CA 94089\r
+ US\r
+\r
+E0-62-34 (hex) Texas Instruments\r
+E06234 (base 16) Texas Instruments\r
+ 12500 TI Blvd\r
+ Dallas TX 75243\r
+ US\r
+\r
F8-57-2E (hex) Core Brands, LLC\r
F8572E (base 16) Core Brands, LLC\r
5919 Sea Otter Place\r
Carlsbad CA 92010\r
US\r
\r
-24-4B-FE (hex) ASUSTek COMPUTER INC.\r
-244BFE (base 16) ASUSTek COMPUTER INC.\r
- 15,Li-Te Rd., Peitou, Taipei 112, Taiwan\r
- Taipei Taiwan 112\r
- TW\r
+08-AC-C4 (hex) FMTech\r
+08ACC4 (base 16) FMTech\r
+ yuehai\r
+ ShenZhen 518000\r
+ CN\r
\r
-7C-DD-E9 (hex) ATOM tech Inc.\r
-7CDDE9 (base 16) ATOM tech Inc.\r
- Sky Menor Yokohama 422, 2-11-2 Takashima, Nishi-ku \r
- Yokohama-shi Kanagawa 220-0011\r
- JP\r
+DC-50-3A (hex) Nanjing Ticom Tech Co., Ltd.\r
+DC503A (base 16) Nanjing Ticom Tech Co., Ltd.\r
+ No.35 Fenghui Road, Yuhuatai District\r
+ Nanjing Jiangsu 210039\r
+ CN\r
\r
-F8-6B-D9 (hex) Cisco Systems, Inc\r
-F86BD9 (base 16) Cisco Systems, Inc\r
- 80 West Tasman Drive\r
- San Jose CA 94568\r
- US\r
+18-47-3D (hex) CHONGQING FUGUI ELECTRONICS CO.,LTD.\r
+18473D (base 16) CHONGQING FUGUI ELECTRONICS CO.,LTD.\r
+ Building D21,No.1, East Zone 1st Road,Xiyong Town,Shapingba District\r
+ Chongqing Chongqing 401332\r
+ CN\r
+\r
+F8-2F-65 (hex) Huawei Device Co., Ltd.\r
+F82F65 (base 16) Huawei Device Co., Ltd.\r
+ No.2 of Xincheng Road, Songshan Lake Zone\r
+ Dongguan Guangdong 523808\r
+ CN\r
+\r
+08-31-A4 (hex) Huawei Device Co., Ltd.\r
+0831A4 (base 16) Huawei Device Co., Ltd.\r
+ No.2 of Xincheng Road, Songshan Lake Zone\r
+ Dongguan Guangdong 523808\r
+ CN\r
\r
C0-14-FE (hex) Cisco Systems, Inc\r
C014FE (base 16) Cisco Systems, Inc\r
San Jose CA 94568\r
US\r
\r
-08-31-A4 (hex) Huawei Device Co., Ltd.\r
-0831A4 (base 16) Huawei Device Co., Ltd.\r
- No.2 of Xincheng Road, Songshan Lake Zone\r
- Dongguan Guangdong 523808\r
- CN\r
-\r
A8-E9-78 (hex) Huawei Device Co., Ltd.\r
A8E978 (base 16) Huawei Device Co., Ltd.\r
No.2 of Xincheng Road, Songshan Lake Zone\r
Dongguan Guangdong 523808\r
CN\r
\r
-F8-2F-65 (hex) Huawei Device Co., Ltd.\r
-F82F65 (base 16) Huawei Device Co., Ltd.\r
- No.2 of Xincheng Road, Songshan Lake Zone\r
- Dongguan Guangdong 523808\r
- CN\r
+7C-DD-E9 (hex) ATOM tech Inc.\r
+7CDDE9 (base 16) ATOM tech Inc.\r
+ Sky Menor Yokohama 422, 2-11-2 Takashima, Nishi-ku \r
+ Yokohama-shi Kanagawa 220-0011\r
+ JP\r
\r
-28-B3-71 (hex) Ruckus Wireless\r
-28B371 (base 16) Ruckus Wireless\r
- 350 West Java Drive\r
- Sunnyvale CA 94089\r
+F8-6B-D9 (hex) Cisco Systems, Inc\r
+F86BD9 (base 16) Cisco Systems, Inc\r
+ 80 West Tasman Drive\r
+ San Jose CA 94568\r
US\r
\r
-08-AC-C4 (hex) FMTech\r
-08ACC4 (base 16) FMTech\r
- yuehai\r
- ShenZhen 518000\r
- CN\r
-\r
-DC-50-3A (hex) Nanjing Ticom Tech Co., Ltd.\r
-DC503A (base 16) Nanjing Ticom Tech Co., Ltd.\r
- No.35 Fenghui Road, Yuhuatai District\r
- Nanjing Jiangsu 210039\r
- CN\r
-\r
-18-47-3D (hex) CHONGQING FUGUI ELECTRONICS CO.,LTD.\r
-18473D (base 16) CHONGQING FUGUI ELECTRONICS CO.,LTD.\r
- Building D21,No.1, East Zone 1st Road,Xiyong Town,Shapingba District\r
- Chongqing Chongqing 401332\r
- CN\r
+44-F4-E7 (hex) Cohesity Inc\r
+44F4E7 (base 16) Cohesity Inc\r
+ 300 park ave\r
+ san jose CA 95110\r
+ US\r
\r
D4-77-B2 (hex) Netix Global B.V.\r
D477B2 (base 16) Netix Global B.V.\r
Sunnyvale CA 94089\r
US\r
\r
-44-F4-E7 (hex) Cohesity Inc\r
-44F4E7 (base 16) Cohesity Inc\r
- 300 park ave\r
- san jose CA 95110\r
- US\r
-\r
70-69-79 (hex) IEEE Registration Authority\r
706979 (base 16) IEEE Registration Authority\r
445 Hoes Lane\r
Guangzhou Guangdong 511458\r
CN\r
\r
+10-8B-6A (hex) Antailiye Technology Co.,Ltd\r
+108B6A (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
30-42-40 (hex) zte corporation\r
304240 (base 16) zte corporation\r
12/F.,zte R&D building ,kejinan Road,Shenzhen,P.R.China\r
San Jose CA 94568\r
US\r
\r
+60-F6-77 (hex) Intel Corporate\r
+60F677 (base 16) Intel Corporate\r
+ Lot 8, Jalan Hi-Tech 2/3 \r
+ Kulim Kedah 09000\r
+ MY\r
+\r
+A0-88-69 (hex) Intel Corporate\r
+A08869 (base 16) Intel Corporate\r
+ Lot 8, Jalan Hi-Tech 2/3 \r
+ Kulim Kedah 09000\r
+ MY\r
+\r
+74-E5-F9 (hex) Intel Corporate\r
+74E5F9 (base 16) Intel Corporate\r
+ Lot 8, Jalan Hi-Tech 2/3 \r
+ Kulim Kedah 09000\r
+ MY\r
+\r
+80-00-0B (hex) Intel Corporate\r
+80000B (base 16) Intel Corporate\r
+ Lot 8, Jalan Hi-Tech 2/3 \r
+ Kulim Kedah 09000\r
+ MY\r
+\r
24-F1-50 (hex) Guangzhou Qi'an Technology Co., Ltd.\r
24F150 (base 16) Guangzhou Qi'an Technology Co., Ltd.\r
No. 3, Dasonggang, Jiangnan Avenue Middle Road, Haizhu District, Guangzhou (office only)\r
Guangzhou Guangdong 510220\r
CN\r
\r
-10-8B-6A (hex) Antailiye Technology Co.,Ltd\r
-108B6A (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
14-C8-8B (hex) Apple, Inc.\r
14C88B (base 16) Apple, Inc.\r
1 Infinite Loop\r
Cupertino CA 95014\r
US\r
\r
-60-7E-C9 (hex) Apple, Inc.\r
-607EC9 (base 16) Apple, Inc.\r
- 1 Infinite Loop\r
- Cupertino CA 95014\r
- US\r
-\r
40-88-2F (hex) Extreme Networks, Inc.\r
40882F (base 16) Extreme Networks, Inc.\r
6480 Via Del Oro\r
Irvine CA 92618\r
US\r
\r
+60-7E-C9 (hex) Apple, Inc.\r
+607EC9 (base 16) Apple, Inc.\r
+ 1 Infinite Loop\r
+ Cupertino CA 95014\r
+ US\r
+\r
+08-FA-79 (hex) vivo Mobile Communication Co., Ltd.\r
+08FA79 (base 16) vivo Mobile Communication Co., Ltd.\r
+ #283,BBK Road\r
+ Wusha,Chang'An DongGuan City,Guangdong, 523860\r
+ CN\r
+\r
+8C-5E-BD (hex) Huawei Device Co., Ltd.\r
+8C5EBD (base 16) Huawei Device Co., Ltd.\r
+ No.2 of Xincheng Road, Songshan Lake Zone\r
+ Dongguan Guangdong 523808\r
+ CN\r
+\r
+3C-F0-11 (hex) Intel Corporate\r
+3CF011 (base 16) Intel Corporate\r
+ Lot 8, Jalan Hi-Tech 2/3 \r
+ Kulim Kedah 09000\r
+ MY\r
+\r
64-4C-36 (hex) Intel Corporate\r
644C36 (base 16) Intel Corporate\r
Lot 8, Jalan Hi-Tech 2/3 \r
Kulim Kedah 09000\r
MY\r
\r
+34-41-5D (hex) Intel Corporate\r
+34415D (base 16) Intel Corporate\r
+ Lot 8, Jalan Hi-Tech 2/3 \r
+ Kulim Kedah 09000\r
+ MY\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
-60-F6-77 (hex) Intel Corporate\r
-60F677 (base 16) Intel Corporate\r
- Lot 8, Jalan Hi-Tech 2/3 \r
- Kulim Kedah 09000\r
- MY\r
-\r
-A0-88-69 (hex) Intel Corporate\r
-A08869 (base 16) Intel Corporate\r
- Lot 8, Jalan Hi-Tech 2/3 \r
- Kulim Kedah 09000\r
- MY\r
-\r
-74-E5-F9 (hex) Intel Corporate\r
-74E5F9 (base 16) Intel Corporate\r
- Lot 8, Jalan Hi-Tech 2/3 \r
- Kulim Kedah 09000\r
- MY\r
-\r
-80-00-0B (hex) Intel Corporate\r
-80000B (base 16) Intel Corporate\r
- Lot 8, Jalan Hi-Tech 2/3 \r
- Kulim Kedah 09000\r
- MY\r
-\r
-34-41-5D (hex) Intel Corporate\r
-34415D (base 16) Intel Corporate\r
- Lot 8, Jalan Hi-Tech 2/3 \r
- Kulim Kedah 09000\r
- MY\r
+10-12-FB (hex) Hangzhou Hikvision Digital Technology Co.,Ltd.\r
+1012FB (base 16) Hangzhou Hikvision Digital Technology Co.,Ltd.\r
+ No.555 Qianmo Road\r
+ Hangzhou Zhejiang 310052\r
+ CN\r
\r
FC-77-74 (hex) Intel Corporate\r
FC7774 (base 16) Intel Corporate\r
Kulim Kedah 09000\r
MY\r
\r
-3C-F0-11 (hex) Intel Corporate\r
-3CF011 (base 16) Intel Corporate\r
- Lot 8, Jalan Hi-Tech 2/3 \r
- Kulim Kedah 09000\r
- MY\r
-\r
28-7F-CF (hex) Intel Corporate\r
287FCF (base 16) Intel Corporate\r
Lot 8, Jalan Hi-Tech 2/3 \r
Kulim Kedah 09000\r
MY\r
\r
-10-12-FB (hex) Hangzhou Hikvision Digital Technology Co.,Ltd.\r
-1012FB (base 16) Hangzhou Hikvision Digital Technology Co.,Ltd.\r
- No.555 Qianmo Road\r
- Hangzhou Zhejiang 310052\r
- CN\r
-\r
-08-FA-79 (hex) vivo Mobile Communication Co., Ltd.\r
-08FA79 (base 16) vivo Mobile Communication Co., Ltd.\r
- #283,BBK Road\r
- Wusha,Chang'An DongGuan City,Guangdong, 523860\r
- CN\r
+CC-D0-83 (hex) Aruba, a Hewlett Packard Enterprise Company\r
+CCD083 (base 16) Aruba, a Hewlett Packard Enterprise Company\r
+ 3333 Scott Blvd\r
+ Santa Clara CA 95054\r
+ US\r
\r
-F0-9B-B8 (hex) HUAWEI TECHNOLOGIES CO.,LTD\r
-F09BB8 (base 16) HUAWEI TECHNOLOGIES CO.,LTD\r
- No.2 Xin Cheng Road, Room R6,Songshan Lake Technology Park\r
- Dongguan 523808\r
+C0-1C-30 (hex) Shenzhen WIFI-3L Technology Co.,Ltd\r
+C01C30 (base 16) Shenzhen WIFI-3L Technology Co.,Ltd\r
+ East 5 Floor,B Building, WeiHao Technology Park,Sunny Indusrtrial zone, Xili Town, Nanshan District\r
+ Shenzhen Guangdong 518055\r
CN\r
\r
-BC-17-B8 (hex) Intel Corporate\r
-BC17B8 (base 16) Intel Corporate\r
- Lot 8, Jalan Hi-Tech 2/3 \r
- Kulim Kedah 09000\r
- MY\r
+D8-C6-78 (hex) MitraStar Technology Corp.\r
+D8C678 (base 16) MitraStar Technology Corp.\r
+ No. 6, Innovation Road II,\r
+ Hsinchu 300\r
+ TW\r
\r
B8-CB-29 (hex) Dell Inc.\r
B8CB29 (base 16) Dell Inc.\r
Mountain View CA 94043\r
US\r
\r
-8C-5E-BD (hex) Huawei Device Co., Ltd.\r
-8C5EBD (base 16) Huawei Device Co., Ltd.\r
- No.2 of Xincheng Road, Songshan Lake Zone\r
- Dongguan Guangdong 523808\r
- CN\r
-\r
2C-A0-42 (hex) Huawei Device Co., Ltd.\r
2CA042 (base 16) Huawei Device Co., Ltd.\r
No.2 of Xincheng Road, Songshan Lake Zone\r
Dongguan Guangdong 523808\r
CN\r
\r
-EC-C0-1B (hex) HUAWEI TECHNOLOGIES CO.,LTD\r
-ECC01B (base 16) HUAWEI TECHNOLOGIES CO.,LTD\r
- No.2 Xin Cheng Road, Room R6,Songshan Lake Technology Park\r
- Dongguan 523808\r
+C0-83-C9 (hex) Huawei Device Co., Ltd.\r
+C083C9 (base 16) Huawei Device Co., Ltd.\r
+ No.2 of Xincheng Road, Songshan Lake Zone\r
+ Dongguan Guangdong 523808\r
CN\r
\r
98-44-CE (hex) HUAWEI TECHNOLOGIES CO.,LTD\r
Dongguan 523808\r
CN\r
\r
-CC-D0-83 (hex) Aruba, a Hewlett Packard Enterprise Company\r
-CCD083 (base 16) Aruba, a Hewlett Packard Enterprise Company\r
- 3333 Scott Blvd\r
- Santa Clara CA 95054\r
- US\r
-\r
-C0-83-C9 (hex) Huawei Device Co., Ltd.\r
-C083C9 (base 16) Huawei Device Co., Ltd.\r
- No.2 of Xincheng Road, Songshan Lake Zone\r
- Dongguan Guangdong 523808\r
+F0-9B-B8 (hex) HUAWEI TECHNOLOGIES CO.,LTD\r
+F09BB8 (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
-C0-1C-30 (hex) Shenzhen WIFI-3L Technology Co.,Ltd\r
-C01C30 (base 16) Shenzhen WIFI-3L Technology Co.,Ltd\r
- East 5 Floor,B Building, WeiHao Technology Park,Sunny Indusrtrial zone, Xili Town, Nanshan District\r
- Shenzhen Guangdong 518055\r
+EC-C0-1B (hex) HUAWEI TECHNOLOGIES CO.,LTD\r
+ECC01B (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
-D8-C6-78 (hex) MitraStar Technology Corp.\r
-D8C678 (base 16) MitraStar Technology Corp.\r
- No. 6, Innovation Road II,\r
- Hsinchu 300\r
- TW\r
+BC-17-B8 (hex) Intel Corporate\r
+BC17B8 (base 16) Intel Corporate\r
+ Lot 8, Jalan Hi-Tech 2/3 \r
+ Kulim Kedah 09000\r
+ MY\r
\r
44-1C-7F (hex) Motorola Mobility LLC, a Lenovo Company\r
441C7F (base 16) Motorola Mobility LLC, a Lenovo Company\r
Chicago IL 60654\r
US\r
\r
-1C-E6-1D (hex) Samsung Electronics Co.,Ltd\r
-1CE61D (base 16) Samsung Electronics Co.,Ltd\r
- #94-1, Imsoo-Dong\r
- Gumi Gyeongbuk 730-350\r
- KR\r
-\r
80-12-DF (hex) Shenzhen SuperElectron Technology Co.,Ltd.\r
8012DF (base 16) Shenzhen SuperElectron Technology Co.,Ltd.\r
1213-1214, haosheng business center, dongbin road, nanshan street, nanshan district, shenzhen city\r
Chengdu Sichuan 611330\r
CN\r
\r
+1C-E6-1D (hex) Samsung Electronics Co.,Ltd\r
+1CE61D (base 16) Samsung Electronics Co.,Ltd\r
+ #94-1, Imsoo-Dong\r
+ Gumi Gyeongbuk 730-350\r
+ KR\r
+\r
10-E7-7A (hex) STMicrolectronics International NV\r
10E77A (base 16) STMicrolectronics International NV\r
39, Chemin du Champ-des-Filles\r
Geneva, Plan-les-Quates 1228\r
CH\r
\r
+90-76-9F (hex) SHENZHEN MERCURY COMMUNICATION TECHNOLOGIES CO.,LTD.\r
+90769F (base 16) SHENZHEN MERCURY COMMUNICATION TECHNOLOGIES CO.,LTD.\r
+ 3/F, Building R1-B, High-Tech Industrial Park, Nanshan District\r
+ Shenzhen Guangdong 518057\r
+ CN\r
+\r
80-EA-07 (hex) TP-LINK TECHNOLOGIES CO.,LTD.\r
80EA07 (base 16) TP-LINK TECHNOLOGIES CO.,LTD.\r
Building 24(floors 1,3,4,5)and 28(floors 1-4)Central Science and Technology Park,Shennan Road,Nanshan\r
Shenzhen Guangdong 518057\r
CN\r
\r
+04-A2-F3 (hex) Fiberhome Telecommunication Technologies Co.,LTD\r
+04A2F3 (base 16) Fiberhome Telecommunication Technologies Co.,LTD\r
+ No.5 DongXin Road\r
+ Wuhan Hubei 430074\r
+ CN\r
+\r
BC-03-A7 (hex) MFP MICHELIN\r
BC03A7 (base 16) MFP MICHELIN\r
23 place des Carmes Dechaux\r
Clermont-Ferrand 63000\r
FR\r
\r
-90-76-9F (hex) SHENZHEN MERCURY COMMUNICATION TECHNOLOGIES CO.,LTD.\r
-90769F (base 16) SHENZHEN MERCURY COMMUNICATION TECHNOLOGIES CO.,LTD.\r
- 3/F, Building R1-B, High-Tech Industrial Park, Nanshan District\r
- Shenzhen Guangdong 518057\r
+2C-6F-51 (hex) Herospeed Digital Technology Limited\r
+2C6F51 (base 16) Herospeed Digital Technology Limited\r
+ 728 Kaichuang Avenue,Huangpu Distric\r
+ Guangzhou Guangdong 510530\r
CN\r
\r
98-2F-F8 (hex) Huawei Device Co., Ltd.\r
Dongguan Guangdong 523808\r
CN\r
\r
-2C-6F-51 (hex) Herospeed Digital Technology Limited\r
-2C6F51 (base 16) Herospeed Digital Technology Limited\r
- 728 Kaichuang Avenue,Huangpu Distric\r
- Guangzhou Guangdong 510530\r
- CN\r
-\r
-04-A2-F3 (hex) Fiberhome Telecommunication Technologies Co.,LTD\r
-04A2F3 (base 16) Fiberhome Telecommunication Technologies Co.,LTD\r
- No.5 DongXin Road\r
- Wuhan Hubei 430074\r
- CN\r
-\r
CC-DB-93 (hex) Cisco Systems, Inc\r
CCDB93 (base 16) Cisco Systems, Inc\r
80 West Tasman Drive\r
Dongguan Guangdong 523808\r
CN\r
\r
+10-34-1B (hex) Spacelink\r
+10341B (base 16) Spacelink\r
+ 8830 Complex dr\r
+ San Diego CA 92123\r
+ US\r
+\r
F8-1B-04 (hex) Zhong Shan City Richsound Electronic Industrial Ltd\r
F81B04 (base 16) Zhong Shan City Richsound Electronic Industrial Ltd\r
Qunle Industrial Area,East ShaGang Road,GangKou ZhongShan,GuangDong,China\r
Mountain View CA 94043\r
US\r
\r
-10-34-1B (hex) Spacelink\r
-10341B (base 16) Spacelink\r
- 8830 Complex dr\r
- San Diego CA 92123\r
- US\r
-\r
30-A4-52 (hex) Arrival Elements BV\r
30A452 (base 16) Arrival Elements BV\r
M. Keynesplein 12-46\r
Amsterdam 1066 EP\r
NL\r
\r
+00-0B-A2 (hex) Sumitomo Electric Industries, Ltd\r
+000BA2 (base 16) Sumitomo Electric Industries, Ltd\r
+ 1-1-3, Shimaya, Konohana-ku\r
+ Osaka 554-0024\r
+ JP\r
+\r
+00-08-F6 (hex) Sumitomo Electric Industries, Ltd\r
+0008F6 (base 16) Sumitomo Electric Industries, Ltd\r
+ 1-1-3, Shimaya, Konohana-ku\r
+ Osaka 554-0024\r
+ JP\r
+\r
00-1E-68 (hex) Quanta Computer Inc.\r
001E68 (base 16) Quanta Computer Inc.\r
NO. 211, WEN HWA 2RD., KUEI SHAN HSIANG\r
TAIPEI TAIWAN 333\r
TW\r
\r
-2C-60-0C (hex) Quanta Computer Inc.\r
-2C600C (base 16) Quanta Computer Inc.\r
- No.211, Wen Hwa 2nd Rd\r
- Taoyuan Taiwan 33377\r
- TW\r
-\r
8C-C5-B4 (hex) Sagemcom Broadband SAS\r
8CC5B4 (base 16) Sagemcom Broadband SAS\r
250, route de l'Empereur\r
Rueil Malmaison Cedex hauts de seine 92848\r
FR\r
\r
-00-0B-A2 (hex) Sumitomo Electric Industries, Ltd\r
-000BA2 (base 16) Sumitomo Electric Industries, Ltd\r
- 1-1-3, Shimaya, Konohana-ku\r
- Osaka 554-0024\r
- JP\r
-\r
-00-08-F6 (hex) Sumitomo Electric Industries, Ltd\r
-0008F6 (base 16) Sumitomo Electric Industries, Ltd\r
- 1-1-3, Shimaya, Konohana-ku\r
- Osaka 554-0024\r
- JP\r
-\r
-00-00-5F (hex) Sumitomo Electric Industries, Ltd\r
-00005F (base 16) Sumitomo Electric Industries, Ltd\r
- 1-1-3, Shimaya, Konohana-ku\r
- Osaka 554-0024\r
- JP\r
-\r
18-EC-E7 (hex) BUFFALO.INC\r
18ECE7 (base 16) BUFFALO.INC\r
AKAMONDORI Bld.,30-20,Ohsu 3-chome,Naka-ku\r
Piscataway NJ 08554\r
US\r
\r
+2C-60-0C (hex) Quanta Computer Inc.\r
+2C600C (base 16) Quanta Computer Inc.\r
+ No.211, Wen Hwa 2nd Rd\r
+ Taoyuan Taiwan 33377\r
+ TW\r
+\r
+00-00-5F (hex) Sumitomo Electric Industries, Ltd\r
+00005F (base 16) Sumitomo Electric Industries, Ltd\r
+ 1-1-3, Shimaya, Konohana-ku\r
+ Osaka 554-0024\r
+ JP\r
+\r
08-3A-F2 (hex) Espressif Inc.\r
083AF2 (base 16) Espressif Inc.\r
Room 204, Building 2, 690 Bibo Rd, Pudong New Area\r
Dallas TX 75243\r
US\r
\r
-04-7E-23 (hex) China Mobile IOT Company Limited\r
-047E23 (base 16) China Mobile IOT Company Limited\r
- NO.8 Yu Ma Road, NanAn Area\r
- Chongqing Chongqing 401336\r
+68-93-20 (hex) New H3C Technologies Co., Ltd\r
+689320 (base 16) New H3C Technologies Co., Ltd\r
+ 466 Changhe Road, Binjiang District\r
+ Hangzhou Zhejiang 310052\r
CN\r
\r
-14-CC-B3 (hex) AO GK NATEKS\r
-14CCB3 (base 16) AO GK NATEKS\r
- Kamenshiki B. str., 4\r
- Moscow 115172\r
- RU\r
-\r
-DC-CD-2F (hex) Seiko Epson Corporation\r
-DCCD2F (base 16) Seiko Epson Corporation\r
- 2070 Kotobuki Koaka\r
- Matsumoto-shi Nagano-ken 399-8702\r
- JP\r
-\r
94-54-CE (hex) GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP.,LTD\r
9454CE (base 16) GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP.,LTD\r
NO.18 HAIBIN ROAD,\r
DONG GUAN GUANG DONG 523860\r
CN\r
\r
-68-93-20 (hex) New H3C Technologies Co., Ltd\r
-689320 (base 16) New H3C Technologies Co., Ltd\r
- 466 Changhe Road, Binjiang District\r
- Hangzhou Zhejiang 310052\r
+04-7E-23 (hex) China Mobile IOT Company Limited\r
+047E23 (base 16) China Mobile IOT Company Limited\r
+ NO.8 Yu Ma Road, NanAn Area\r
+ Chongqing Chongqing 401336\r
CN\r
\r
54-84-DC (hex) zte corporation\r
shenzhen guangdong 518057\r
CN\r
\r
-08-42-96 (hex) Mobile Technology Solutions LLC\r
-084296 (base 16) Mobile Technology Solutions LLC\r
- 20379 Bannister Dr.\r
- Macomb MI 48044\r
- US\r
+DC-CD-2F (hex) Seiko Epson Corporation\r
+DCCD2F (base 16) Seiko Epson Corporation\r
+ 2070 Kotobuki Koaka\r
+ Matsumoto-shi Nagano-ken 399-8702\r
+ JP\r
\r
-8C-8D-28 (hex) Intel Corporate\r
-8C8D28 (base 16) Intel Corporate\r
- Lot 8, Jalan Hi-Tech 2/3 \r
- Kulim Kedah 09000\r
- MY\r
+14-CC-B3 (hex) AO GK NATEKS\r
+14CCB3 (base 16) AO GK NATEKS\r
+ Kamenshiki B. str., 4\r
+ Moscow 115172\r
+ RU\r
\r
34-3E-A4 (hex) Ring LLC\r
343EA4 (base 16) Ring LLC\r
Dongguan Guangdong 523808\r
CN\r
\r
+08-42-96 (hex) Mobile Technology Solutions LLC\r
+084296 (base 16) Mobile Technology Solutions LLC\r
+ 20379 Bannister Dr.\r
+ Macomb MI 48044\r
+ US\r
+\r
C8-17-39 (hex) ITEL MOBILE LIMITED\r
C81739 (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
LA TRONCHE 38700\r
FR\r
\r
-00-1C-7B (hex) Castlenet Technology Inc.\r
-001C7B (base 16) Castlenet Technology Inc.\r
- 5F., No. 10, Daye Rd., Beitou Dist.\r
- Taipei City 112030\r
- TW\r
-\r
E4-84-2B (hex) HANGZHOU SOFTEL OPTIC CO., LTD\r
E4842B (base 16) HANGZHOU SOFTEL OPTIC CO., LTD\r
101 BINKANG ROAD, BINJIANG DISTRICT\r
Hangzhou Zhejiang 310023\r
CN\r
\r
-90-CC-DF (hex) Intel Corporate\r
-90CCDF (base 16) Intel Corporate\r
- Lot 8, Jalan Hi-Tech 2/3 \r
- Kulim Kedah 09000\r
- MY\r
-\r
D4-6A-91 (hex) SnapAV\r
D46A91 (base 16) SnapAV\r
1800 Continental Blvd\r
Charlotte North Carolina 28273\r
US\r
\r
+00-1C-7B (hex) Castlenet Technology Inc.\r
+001C7B (base 16) Castlenet Technology Inc.\r
+ 5F., No. 10, Daye Rd., Beitou Dist.\r
+ Taipei City 112030\r
+ TW\r
+\r
+D0-21-F9 (hex) Ubiquiti Networks Inc.\r
+D021F9 (base 16) Ubiquiti Networks Inc.\r
+ 685 Third Avenue, 27th Floor\r
+ New York NY 10017\r
+ US\r
+\r
80-EE-25 (hex) Shenzhen Skyworth Digital Technology CO., Ltd\r
80EE25 (base 16) Shenzhen Skyworth Digital Technology CO., Ltd\r
4F,Block A, Skyworth?Building,\r
Huizhou Guangdong 516223\r
CN\r
\r
-D0-21-F9 (hex) Ubiquiti Networks Inc.\r
-D021F9 (base 16) Ubiquiti Networks Inc.\r
- 685 Third Avenue, 27th Floor\r
- New York NY 10017\r
- US\r
-\r
-08-5B-D6 (hex) Intel Corporate\r
-085BD6 (base 16) Intel Corporate\r
- Lot 8, Jalan Hi-Tech 2/3 \r
- Kulim Kedah 09000\r
- MY\r
-\r
D0-3D-52 (hex) Ava Security Limited\r
D03D52 (base 16) Ava Security Limited\r
The Charter Building, Charter Place\r
Midddelharnis Zuid Holland 3241LS\r
NL\r
\r
-64-D2-C4 (hex) Apple, Inc.\r
-64D2C4 (base 16) Apple, Inc.\r
- 1 Infinite Loop\r
- Cupertino CA 95014\r
- US\r
-\r
-DC-52-85 (hex) Apple, Inc.\r
-DC5285 (base 16) Apple, Inc.\r
- 1 Infinite Loop\r
- Cupertino CA 95014\r
- US\r
-\r
-E8-81-52 (hex) Apple, Inc.\r
-E88152 (base 16) Apple, Inc.\r
- 1 Infinite Loop\r
- Cupertino CA 95014\r
- US\r
-\r
-90-81-58 (hex) Apple, Inc.\r
-908158 (base 16) Apple, Inc.\r
- 1 Infinite Loop\r
- Cupertino CA 95014\r
- US\r
-\r
B4-AD-A3 (hex) Guangzhou Shiyuan Electronic Technology Company Limited\r
B4ADA3 (base 16) Guangzhou Shiyuan Electronic Technology Company Limited\r
No.6, 4th Yunpu Road, Yunpu industry District\r
Guangzhou Guangdong 510530\r
CN\r
\r
-64-23-15 (hex) Huawei Device Co., Ltd.\r
-642315 (base 16) Huawei Device Co., Ltd.\r
+A4-C7-4B (hex) Huawei Device Co., Ltd.\r
+A4C74B (base 16) Huawei Device Co., Ltd.\r
No.2 of Xincheng Road, Songshan Lake Zone\r
Dongguan Guangdong 523808\r
CN\r
\r
-A4-C7-4B (hex) Huawei Device Co., Ltd.\r
-A4C74B (base 16) Huawei Device Co., Ltd.\r
+64-23-15 (hex) Huawei Device Co., Ltd.\r
+642315 (base 16) Huawei Device Co., Ltd.\r
No.2 of Xincheng Road, Songshan Lake Zone\r
Dongguan Guangdong 523808\r
CN\r
dongguan city guangdong province 523710\r
CN\r
\r
+64-D2-C4 (hex) Apple, Inc.\r
+64D2C4 (base 16) Apple, Inc.\r
+ 1 Infinite Loop\r
+ Cupertino CA 95014\r
+ US\r
+\r
+DC-52-85 (hex) Apple, Inc.\r
+DC5285 (base 16) Apple, Inc.\r
+ 1 Infinite Loop\r
+ Cupertino CA 95014\r
+ US\r
+\r
+E8-81-52 (hex) Apple, Inc.\r
+E88152 (base 16) Apple, Inc.\r
+ 1 Infinite Loop\r
+ Cupertino CA 95014\r
+ US\r
+\r
+90-81-58 (hex) Apple, Inc.\r
+908158 (base 16) Apple, Inc.\r
+ 1 Infinite Loop\r
+ Cupertino CA 95014\r
+ US\r
+\r
6C-AD-AD (hex) CHONGQING FUGUI ELECTRONICS CO.,LTD.\r
6CADAD (base 16) CHONGQING FUGUI ELECTRONICS CO.,LTD.\r
Building D21,No.1, East Zone 1st Road,Xiyong Town,Shapingba District\r
Beijing 100085\r
CN\r
\r
-14-1B-30 (hex) Shenzhen Yipingfang Network Technology Co., Ltd.\r
-141B30 (base 16) Shenzhen Yipingfang Network Technology Co., Ltd.\r
- 21 / F, Kangjia R & D building, No.28, Keji South 12th Road, Nanshan District, Shenzhen City, Guangdong Province, China\r
- Shenzhen Nanshan District 518000\r
- CN\r
-\r
F4-6F-ED (hex) Fiberhome Telecommunication Technologies Co.,LTD\r
F46FED (base 16) Fiberhome Telecommunication Technologies Co.,LTD\r
No.5 DongXin Road\r
Qingdao Shangdong 266510\r
CN\r
\r
+7C-78-B2 (hex) Wyze Labs Inc\r
+7C78B2 (base 16) Wyze Labs Inc\r
+ 4030 Lake Washington Boulevard NE\r
+ Kirkland WA 98033\r
+ US\r
+\r
+14-1B-30 (hex) Shenzhen Yipingfang Network Technology Co., Ltd.\r
+141B30 (base 16) Shenzhen Yipingfang Network Technology Co., Ltd.\r
+ 21 / F, Kangjia R & D building, No.28, Keji South 12th Road, Nanshan District, Shenzhen City, Guangdong Province, China\r
+ Shenzhen Nanshan District 518000\r
+ CN\r
+\r
D8-F3-BC (hex) Liteon Technology Corporation\r
D8F3BC (base 16) Liteon Technology Corporation\r
4F, 90, Chien 1 Road\r
Ansan KyungKi 15588\r
KR\r
\r
-7C-78-B2 (hex) Wyze Labs Inc\r
-7C78B2 (base 16) Wyze Labs Inc\r
- 4030 Lake Washington Boulevard NE\r
- Kirkland WA 98033\r
- US\r
-\r
D8-37-3B (hex) Shenzhen Jingxun Software Telecommunication Technology Co.,Ltd\r
D8373B (base 16) Shenzhen Jingxun Software Telecommunication Technology Co.,Ltd\r
3/F,A5 Building Zhiyuan Community No.1001,Xueyuan Road Nanshan District\r
Hyderabad AP 500034\r
IN\r
\r
-44-CE-3A (hex) Jiangsu Huacun Electronic Technology Co., Ltd.\r
-44CE3A (base 16) Jiangsu Huacun Electronic Technology Co., Ltd.\r
- C4, 9th Floor, 266 New Century Avenue, Tongzhou District\r
- Nantong City Jiangsu Province 226300\r
+E8-4F-4B (hex) Shenzhen Delos Electronic Co., Ltd\r
+E84F4B (base 16) Shenzhen Delos Electronic Co., Ltd\r
+ Rm 603, Tower B, Galaxy World Building, No.1 Yabao Road,Longgang District,Shenzhen,P.R.China.\r
+ shenzhen guangdong 518000\r
CN\r
\r
-9C-1E-A4 (hex) Renesas Electronics (Penang) Sdn. Bhd.\r
-9C1EA4 (base 16) Renesas Electronics (Penang) Sdn. Bhd.\r
- Phase 3, Bayan Lepas FIZ\r
- Bayan Lepas Penang 11900\r
- MY\r
-\r
-4C-EF-56 (hex) Shenzhen Sundray Technologies Company Limited\r
-4CEF56 (base 16) Shenzhen Sundray Technologies Company Limited\r
- 5th Floor, Block A4, Nanshan ipark,NO.1001 Xue Yuan Road, Nanshan District, Shenzhen 518055, P.R. China\r
- Shenzhen Guangdong 518057\r
+B0-4A-39 (hex) Beijing Roborock Technology Co., Ltd.\r
+B04A39 (base 16) Beijing Roborock Technology Co., Ltd.\r
+ Floor 6,Building C,Kangjian Baosheng Plaza,No. 8 Heiquan Road,Haidian District\r
+ Beijing Beijing 100085\r
CN\r
\r
+A4-F9-E4 (hex) AirVine Scientific, Inc.\r
+A4F9E4 (base 16) AirVine Scientific, Inc.\r
+ 1500 Wyatt Drive, Suite 9\r
+ Santa Clara CA 95054\r
+ US\r
+\r
E4-C3-2A (hex) TP-LINK TECHNOLOGIES CO.,LTD.\r
E4C32A (base 16) TP-LINK TECHNOLOGIES CO.,LTD.\r
Building 24(floors 1,3,4,5)and 28(floors 1-4)Central Science and Technology Park,Shennan Road,Nanshan\r
Dongguan Guangdong 523808\r
CN\r
\r
-3C-E0-38 (hex) Plumeria Networks, Inc.\r
-3CE038 (base 16) Plumeria Networks, Inc.\r
- 6701 Koll Center Parkway Suite 250\r
- Pleasanton CA 94566\r
- US\r
-\r
-AC-12-2F (hex) Fantasia Trading LLC\r
-AC122F (base 16) Fantasia Trading LLC\r
- 5350 Ontario Mills Pkwy, Suite 100\r
- Ontario CA 91764\r
- US\r
+68-45-71 (hex) Huawei Device Co., Ltd.\r
+684571 (base 16) Huawei Device Co., Ltd.\r
+ No.2 of Xincheng Road, Songshan Lake Zone\r
+ Dongguan Guangdong 523808\r
+ CN\r
\r
FC-45-C3 (hex) Texas Instruments\r
FC45C3 (base 16) Texas Instruments\r
Shenzhen Guangdong 518101\r
CN\r
\r
-E8-4F-4B (hex) Shenzhen Delos Electronic Co., Ltd\r
-E84F4B (base 16) Shenzhen Delos Electronic Co., Ltd\r
- Rm 603, Tower B, Galaxy World Building, No.1 Yabao Road,Longgang District,Shenzhen,P.R.China.\r
- shenzhen guangdong 518000\r
- CN\r
-\r
-B0-4A-39 (hex) Beijing Roborock Technology Co., Ltd.\r
-B04A39 (base 16) Beijing Roborock Technology Co., Ltd.\r
- Floor 6,Building C,Kangjian Baosheng Plaza,No. 8 Heiquan Road,Haidian District\r
- Beijing Beijing 100085\r
+44-CE-3A (hex) Jiangsu Huacun Electronic Technology Co., Ltd.\r
+44CE3A (base 16) Jiangsu Huacun Electronic Technology Co., Ltd.\r
+ C4, 9th Floor, 266 New Century Avenue, Tongzhou District\r
+ Nantong City Jiangsu Province 226300\r
CN\r
\r
-A4-F9-E4 (hex) AirVine Scientific, Inc.\r
-A4F9E4 (base 16) AirVine Scientific, Inc.\r
- 1500 Wyatt Drive, Suite 9\r
- Santa Clara CA 95054\r
- US\r
-\r
-F4-4F-D3 (hex) shenzhen hemuwei technology co.,ltd\r
-F44FD3 (base 16) shenzhen hemuwei technology co.,ltd\r
- 220, Building C, IoT Industrial Park, Bantian Street, Longgang District\r
- shenzhen guangdong 518000\r
- CN\r
+9C-1E-A4 (hex) Renesas Electronics (Penang) Sdn. Bhd.\r
+9C1EA4 (base 16) Renesas Electronics (Penang) Sdn. Bhd.\r
+ Phase 3, Bayan Lepas FIZ\r
+ Bayan Lepas Penang 11900\r
+ MY\r
\r
-68-45-71 (hex) Huawei Device Co., Ltd.\r
-684571 (base 16) Huawei Device Co., Ltd.\r
- No.2 of Xincheng Road, Songshan Lake Zone\r
- Dongguan Guangdong 523808\r
+4C-EF-56 (hex) Shenzhen Sundray Technologies Company Limited\r
+4CEF56 (base 16) Shenzhen Sundray Technologies Company Limited\r
+ 5th Floor, Block A4, Nanshan ipark,NO.1001 Xue Yuan Road, Nanshan District, Shenzhen 518055, P.R. China\r
+ Shenzhen Guangdong 518057\r
CN\r
\r
84-93-A0 (hex) Huawei Device Co., Ltd.\r
Dongguan Guangdong 523808\r
CN\r
\r
+F4-4F-D3 (hex) shenzhen hemuwei technology co.,ltd\r
+F44FD3 (base 16) shenzhen hemuwei technology co.,ltd\r
+ 220, Building C, IoT Industrial Park, Bantian Street, Longgang District\r
+ shenzhen guangdong 518000\r
+ CN\r
+\r
+3C-E0-38 (hex) Plumeria Networks, Inc.\r
+3CE038 (base 16) Plumeria Networks, Inc.\r
+ 6701 Koll Center Parkway Suite 250\r
+ Pleasanton CA 94566\r
+ US\r
+\r
+FC-8D-3D (hex) Leapfive Tech. Ltd.\r
+FC8D3D (base 16) Leapfive Tech. Ltd.\r
+ huaruizhididasha 8ceng\r
+ shenzhen guangdong 518057\r
+ CN\r
+\r
+AC-12-2F (hex) Fantasia Trading LLC\r
+AC122F (base 16) Fantasia Trading LLC\r
+ 5350 Ontario Mills Pkwy, Suite 100\r
+ Ontario CA 91764\r
+ US\r
+\r
40-14-AD (hex) Huawei Device Co., Ltd.\r
4014AD (base 16) Huawei Device Co., Ltd.\r
No.2 of Xincheng Road, Songshan Lake Zone\r
Dongguan Guangdong 523808\r
CN\r
\r
-A8-74-84 (hex) zte corporation\r
-A87484 (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
E0-4B-A6 (hex) HUAWEI TECHNOLOGIES CO.,LTD\r
E04BA6 (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-8D-3D (hex) Leapfive Tech. Ltd.\r
-FC8D3D (base 16) Leapfive Tech. Ltd.\r
- huaruizhididasha 8ceng\r
+A8-74-84 (hex) zte corporation\r
+A87484 (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
Shenzhen Guangdong 518129\r
CN\r
\r
+78-C9-5E (hex) Midmark RTLS \r
+78C95E (base 16) Midmark RTLS \r
+ 2600 Millercreek Rd\r
+ Traverse City MI 49684\r
+ US\r
+\r
C0-33-DA (hex) Shenzhen JRUN Technologies CO., LTD\r
C033DA (base 16) Shenzhen JRUN Technologies CO., LTD\r
A Zone,9F,Huilongda Industrial Park,Shuitian Private Industrial Park,Shiyan Street,Bao,an District.\r
Seongnam GyeongGiDO 13511\r
KR\r
\r
-78-C9-5E (hex) Midmark RTLS \r
-78C95E (base 16) Midmark RTLS \r
- 2600 Millercreek Rd\r
- Traverse City MI 49684\r
- US\r
-\r
-20-CD-6E (hex) Realme Chongqing Mobile Telecommunications Corp.,Ltd.\r
-20CD6E (base 16) Realme Chongqing Mobile Telecommunications Corp.,Ltd.\r
- No.178 Yulong Avenue, Yufengshan, Yubei District, Chongqing.\r
- Chongqing China 401120\r
- CN\r
-\r
BC-69-CB (hex) Panasonic Life Solutions Networks Co., Ltd.\r
BC69CB (base 16) Panasonic Life Solutions Networks Co., Ltd.\r
2-12-7, Higashi-Shinbashi\r
Anyang-si,Gyeonggi-do Republic of Korea 430-803\r
KR\r
\r
+20-CD-6E (hex) Realme Chongqing Mobile Telecommunications Corp.,Ltd.\r
+20CD6E (base 16) Realme Chongqing Mobile Telecommunications Corp.,Ltd.\r
+ No.178 Yulong Avenue, Yufengshan, Yubei District, Chongqing.\r
+ Chongqing China 401120\r
+ CN\r
+\r
6C-14-6E (hex) HUAWEI TECHNOLOGIES CO.,LTD\r
6C146E (base 16) HUAWEI TECHNOLOGIES CO.,LTD\r
No.2 Xin Cheng Road, Room R6,Songshan Lake Technology Park\r
Piscataway NJ 08554\r
US\r
\r
-E0-C3-77 (hex) Samsung Electronics Co.,Ltd\r
-E0C377 (base 16) Samsung Electronics Co.,Ltd\r
- #94-1, Imsoo-Dong\r
- Gumi Gyeongbuk 730-350\r
- KR\r
-\r
4C-FB-F4 (hex) Optimal Audio Ltd\r
4CFBF4 (base 16) Optimal Audio Ltd\r
Century Point, Halifax Rd\r
84-60-82 (hex) Private\r
846082 (base 16) Private\r
\r
+64-79-24 (hex) Huawei Device Co., Ltd.\r
+647924 (base 16) Huawei Device Co., Ltd.\r
+ No.2 of Xincheng Road, Songshan Lake Zone\r
+ Dongguan Guangdong 523808\r
+ CN\r
+\r
+D8-CC-98 (hex) Huawei Device Co., Ltd.\r
+D8CC98 (base 16) Huawei Device Co., Ltd.\r
+ No.2 of Xincheng Road, Songshan Lake Zone\r
+ Dongguan Guangdong 523808\r
+ CN\r
+\r
64-03-7F (hex) Samsung Electronics Co.,Ltd\r
64037F (base 16) Samsung Electronics Co.,Ltd\r
#94-1, Imsoo-Dong\r
Gumi Gyeongbuk 730-350\r
KR\r
\r
-64-79-24 (hex) Huawei Device Co., Ltd.\r
-647924 (base 16) Huawei Device Co., Ltd.\r
- No.2 of Xincheng Road, Songshan Lake Zone\r
- Dongguan Guangdong 523808\r
- CN\r
+E0-C3-77 (hex) Samsung Electronics Co.,Ltd\r
+E0C377 (base 16) Samsung Electronics Co.,Ltd\r
+ #94-1, Imsoo-Dong\r
+ Gumi Gyeongbuk 730-350\r
+ KR\r
\r
-D8-CC-98 (hex) Huawei Device Co., Ltd.\r
-D8CC98 (base 16) Huawei Device Co., Ltd.\r
- No.2 of Xincheng Road, Songshan Lake Zone\r
- Dongguan Guangdong 523808\r
+AC-37-28 (hex) Taicang T&W Electronics\r
+AC3728 (base 16) Taicang T&W Electronics\r
+ 89# Jiang Nan RD\r
+ Suzhou Jiangsu 215412\r
CN\r
\r
-F0-4F-7C (hex) Amazon Technologies Inc.\r
-F04F7C (base 16) Amazon Technologies Inc.\r
- PO Box 8102\r
- Reno NV 89507\r
- US\r
-\r
-F0-A2-25 (hex) Amazon Technologies Inc.\r
-F0A225 (base 16) Amazon Technologies Inc.\r
- PO Box 8102\r
- Reno NV 89507\r
- US\r
-\r
-B4-0E-DE (hex) Intel Corporate\r
-B40EDE (base 16) Intel Corporate\r
- Lot 8, Jalan Hi-Tech 2/3 \r
- Kulim Kedah 09000\r
- MY\r
-\r
-E0-2B-E9 (hex) Intel Corporate\r
-E02BE9 (base 16) Intel Corporate\r
- Lot 8, Jalan Hi-Tech 2/3 \r
- Kulim Kedah 09000\r
- MY\r
-\r
-DC-B7-2E (hex) Xiaomi Communications Co Ltd\r
-DCB72E (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
+58-86-94 (hex) EFM Networks\r
+588694 (base 16) EFM Networks\r
+ 6F, Benposra II 1197-1 Bojeong Giheung Gu\r
+ Yong In Kyunggi do 446913\r
+ KR\r
\r
B8-87-6E (hex) Yandex Services AG\r
B8876E (base 16) Yandex Services AG\r
Shenzhen Guangdong 518109\r
CN\r
\r
-58-86-94 (hex) EFM Networks\r
-588694 (base 16) EFM Networks\r
- 6F, Benposra II 1197-1 Bojeong Giheung Gu\r
- Yong In Kyunggi do 446913\r
- KR\r
-\r
-AC-37-28 (hex) Taicang T&W Electronics\r
-AC3728 (base 16) Taicang T&W Electronics\r
- 89# Jiang Nan RD\r
- Suzhou Jiangsu 215412\r
- CN\r
-\r
-BC-99-30 (hex) HUAWEI TECHNOLOGIES CO.,LTD\r
-BC9930 (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
-E8-68-E7 (hex) Espressif Inc.\r
-E868E7 (base 16) Espressif Inc.\r
- Room 204, Building 2, 690 Bibo Rd, Pudong New Area\r
- Shanghai Shanghai 201203\r
- CN\r
-\r
D0-BC-C1 (hex) WEIFANG GOERTEK ELECTRONICS CO.,LTD\r
D0BCC1 (base 16) WEIFANG GOERTEK ELECTRONICS CO.,LTD\r
Gaoxin 2 Road, Free Trade Zone,Weifang,Shandong,261205,P.R.China\r
Dongguan 523808\r
CN\r
\r
+DC-B7-2E (hex) Xiaomi Communications Co Ltd\r
+DCB72E (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
+BC-99-30 (hex) HUAWEI TECHNOLOGIES CO.,LTD\r
+BC9930 (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
C0-94-35 (hex) ARRIS Group, Inc.\r
C09435 (base 16) ARRIS Group, Inc.\r
6450 Sequence Drive\r
San Diego CA 92121\r
US\r
\r
-18-B6-CC (hex) We Corporation Inc.\r
-18B6CC (base 16) We Corporation Inc.\r
- 201, 33, Deokcheon-ro, Manan-gu\r
- Anyang-si Gyeonggi-do 14088\r
+78-CB-2C (hex) Join Digital, Inc.\r
+78CB2C (base 16) Join Digital, Inc.\r
+ 75 E Santa Clara St., 6th Floor\r
+ San Jose CA 95113\r
+ US\r
+\r
+E8-68-E7 (hex) Espressif Inc.\r
+E868E7 (base 16) Espressif Inc.\r
+ Room 204, Building 2, 690 Bibo Rd, Pudong New Area\r
+ Shanghai Shanghai 201203\r
+ CN\r
+\r
+30-9E-1D (hex) OHSUNG\r
+309E1D (base 16) OHSUNG\r
+ 335-4,SANHODAERO,GUMI,GYEONG BUK,KOREA\r
+ GUMI GYEONG BUK 730-030\r
KR\r
\r
-F8-5E-42 (hex) Technicolor CH USA Inc.\r
-F85E42 (base 16) Technicolor CH USA Inc.\r
- 5030 Sugarloaf Parkway Bldg 6 \r
- Lawrenceville GA 30044\r
+68-79-12 (hex) IEEE Registration Authority\r
+687912 (base 16) IEEE Registration Authority\r
+ 445 Hoes Lane\r
+ Piscataway NJ 08554\r
US\r
\r
30-A0-23 (hex) ROCK PATH S.R.L\r
Tsim Sha Tsui Kowloon 999077\r
HK\r
\r
-78-CB-2C (hex) Join Digital, Inc.\r
-78CB2C (base 16) Join Digital, Inc.\r
- 75 E Santa Clara St., 6th Floor\r
- San Jose CA 95113\r
+18-B6-CC (hex) We Corporation Inc.\r
+18B6CC (base 16) We Corporation Inc.\r
+ 201, 33, Deokcheon-ro, Manan-gu\r
+ Anyang-si Gyeonggi-do 14088\r
+ KR\r
+\r
+F8-66-5A (hex) Apple, Inc.\r
+F8665A (base 16) Apple, Inc.\r
+ 1 Infinite Loop\r
+ Cupertino CA 95014\r
US\r
\r
-30-9E-1D (hex) OHSUNG\r
-309E1D (base 16) OHSUNG\r
- 335-4,SANHODAERO,GUMI,GYEONG BUK,KOREA\r
- GUMI GYEONG BUK 730-030\r
- KR\r
+60-BE-C4 (hex) Apple, Inc.\r
+60BEC4 (base 16) Apple, Inc.\r
+ 1 Infinite Loop\r
+ Cupertino CA 95014\r
+ US\r
\r
-68-79-12 (hex) IEEE Registration Authority\r
-687912 (base 16) IEEE Registration Authority\r
- 445 Hoes Lane\r
- Piscataway NJ 08554\r
+F8-B1-DD (hex) Apple, Inc.\r
+F8B1DD (base 16) Apple, Inc.\r
+ 1 Infinite Loop\r
+ Cupertino CA 95014\r
+ US\r
+\r
+F8-5E-42 (hex) Technicolor CH USA Inc.\r
+F85E42 (base 16) Technicolor CH USA Inc.\r
+ 5030 Sugarloaf Parkway Bldg 6 \r
+ Lawrenceville GA 30044\r
+ US\r
+\r
+A8-81-7E (hex) Apple, Inc.\r
+A8817E (base 16) Apple, Inc.\r
+ 1 Infinite Loop\r
+ Cupertino CA 95014\r
US\r
\r
EC-64-88 (hex) Honor Device Co., Ltd.\r
Singapore Singapore 609917\r
SG\r
\r
-60-BE-C4 (hex) Apple, Inc.\r
-60BEC4 (base 16) Apple, Inc.\r
- 1 Infinite Loop\r
- Cupertino CA 95014\r
- US\r
-\r
-F8-B1-DD (hex) Apple, Inc.\r
-F8B1DD (base 16) Apple, Inc.\r
- 1 Infinite Loop\r
- Cupertino CA 95014\r
- US\r
-\r
-F8-66-5A (hex) Apple, Inc.\r
-F8665A (base 16) Apple, Inc.\r
- 1 Infinite Loop\r
- Cupertino CA 95014\r
- US\r
-\r
-A8-81-7E (hex) Apple, Inc.\r
-A8817E (base 16) Apple, Inc.\r
- 1 Infinite Loop\r
- Cupertino CA 95014\r
- US\r
-\r
-8C-47-6E (hex) IEEE Registration Authority\r
-8C476E (base 16) IEEE Registration Authority\r
- 445 Hoes Lane\r
- Piscataway NJ 08554\r
- US\r
-\r
-48-70-1E (hex) Texas Instruments\r
-48701E (base 16) Texas Instruments\r
- 12500 TI Blvd\r
- Dallas TX 75243\r
- US\r
-\r
E8-C3-20 (hex) Austco Marketing & Service (USA) ltd.\r
E8C320 (base 16) Austco Marketing & Service (USA) ltd.\r
9155 Sterling St Unit 100\r
NO.68, Qinghe Middle Street Haidian District, Beijing 100085\r
CN\r
\r
-AC-33-28 (hex) Huawei Device Co., Ltd.\r
-AC3328 (base 16) Huawei Device Co., Ltd.\r
- No.2 of Xincheng Road, Songshan Lake Zone\r
- Dongguan Guangdong 523808\r
- CN\r
+8C-47-6E (hex) IEEE Registration Authority\r
+8C476E (base 16) IEEE Registration Authority\r
+ 445 Hoes Lane\r
+ Piscataway NJ 08554\r
+ US\r
\r
D4-76-A0 (hex) Fortinet, Inc.\r
D476A0 (base 16) Fortinet, Inc.\r
Sunnyvale 94086\r
US\r
\r
+AC-33-28 (hex) Huawei Device Co., Ltd.\r
+AC3328 (base 16) Huawei Device Co., Ltd.\r
+ No.2 of Xincheng Road, Songshan Lake Zone\r
+ Dongguan Guangdong 523808\r
+ CN\r
+\r
B4-EC-02 (hex) ALPSALPINE CO,.LTD\r
B4EC02 (base 16) ALPSALPINE CO,.LTD\r
6-1\r
Kakuda Miyagi-Pref 981-1595\r
JP\r
\r
+48-70-1E (hex) Texas Instruments\r
+48701E (base 16) Texas Instruments\r
+ 12500 TI Blvd\r
+ Dallas TX 75243\r
+ US\r
+\r
00-23-06 (hex) ALPSALPINE CO,.LTD\r
002306 (base 16) ALPSALPINE CO,.LTD\r
1-2-1, Okinouchi,\r
Soma-city, Fukushima-pref., 976-8501\r
JP\r
\r
-00-19-C1 (hex) ALPSALPINE CO,.LTD\r
-0019C1 (base 16) ALPSALPINE CO,.LTD\r
- 1-2-1, Okinouchi,\r
- Soma-city, Fukushima-pref., 976-8501\r
- JP\r
-\r
-E0-75-0A (hex) ALPSALPINE CO,.LTD\r
-E0750A (base 16) ALPSALPINE CO,.LTD\r
- 6-1\r
- kakuda-City 981-1595\r
- US\r
-\r
E0-AE-5E (hex) ALPSALPINE CO,.LTD\r
E0AE5E (base 16) ALPSALPINE CO,.LTD\r
6-3-36 Furukawanakazato,\r
Kakuda-City Miyagi-Pref 981-1595\r
JP\r
\r
+1C-39-29 (hex) OHSUNG\r
+1C3929 (base 16) OHSUNG\r
+ 335-4,SANHODAERO,GUMI,GYEONG BUK,KOREA\r
+ GUMI GYEONG BUK 730-030\r
+ KR\r
+\r
+80-B9-7A (hex) eero inc.\r
+80B97A (base 16) eero inc.\r
+ 660 3rd Street\r
+ San Francisco CA 94107\r
+ US\r
+\r
+00-19-C1 (hex) ALPSALPINE CO,.LTD\r
+0019C1 (base 16) ALPSALPINE CO,.LTD\r
+ 1-2-1, Okinouchi,\r
+ Soma-city, Fukushima-pref., 976-8501\r
+ JP\r
+\r
+E0-75-0A (hex) ALPSALPINE CO,.LTD\r
+E0750A (base 16) ALPSALPINE CO,.LTD\r
+ 6-1\r
+ kakuda-City 981-1595\r
+ US\r
+\r
+C8-3A-6B (hex) Roku, Inc\r
+C83A6B (base 16) Roku, Inc\r
+ 1155 Coleman Ave\r
+ San Jose CA 95110\r
+ US\r
+\r
+8C-49-62 (hex) Roku, Inc\r
+8C4962 (base 16) Roku, Inc\r
+ 1155 Coleman Ave\r
+ San Jose CA 95110\r
+ US\r
+\r
+60-8D-26 (hex) Arcadyan Corporation\r
+608D26 (base 16) Arcadyan Corporation\r
+ No.8, Sec.2, Guangfu Rd.\r
+ Hsinchu City Hsinchu 30071\r
+ TW\r
+\r
+4C-11-54 (hex) Mobiwire Mobiles (NingBo) Co., LTD\r
+4C1154 (base 16) Mobiwire Mobiles (NingBo) Co., LTD\r
+ No.999 Dacheng East Road, Fenghua District, Ningbo City , Zhejiang Province, PRC\r
+ Ningbo Zhejiang 315500\r
+ CN\r
+\r
+C4-BF-60 (hex) TECNO MOBILE LIMITED\r
+C4BF60 (base 16) TECNO MOBILE LIMITED\r
+ ROOMS 05-15, 13A/F., SOUTH TOWER, WORLD FINANCE CENTRE, HARBOUR CITY, 17 CANTON ROAD, TSIM SHA TSUI, KOWLOON, HONG KONG\r
+ Hong Kong Hong Kong 999077\r
+ HK\r
+\r
+E4-27-61 (hex) Honor Device Co., Ltd.\r
+E42761 (base 16) Honor Device Co., Ltd.\r
+ A1701, Block AB, Building 1, Tianan Yungu Phase I, Gangtou Community, Bantian Street\r
+ Shenzhen Guangdong 518129\r
+ CN\r
+\r
+8C-F3-19 (hex) Siemens Industrial Automation Products Ltd., Chengdu\r
+8CF319 (base 16) Siemens Industrial Automation Products Ltd., Chengdu\r
+ Tianyuan Road No.99, High Tech Zone West\r
+ Chengdu Sichuan Province 611731 \r
+ CN\r
+\r
+C8-A4-0D (hex) Cooler Master Technology Inc\r
+C8A40D (base 16) Cooler Master Technology Inc\r
+ 8F., No. 788-1, Zhongzheng Rd., Zhonghe Dist.\r
+ New Taipei City New Taipei City 23586\r
+ TW\r
+\r
+38-42-0B (hex) Sonos, Inc.\r
+38420B (base 16) Sonos, Inc.\r
+ 614 Chapala St\r
+ Santa Barbara CA 93101\r
+ US\r
+\r
+8C-8D-28 (hex) Intel Corporate\r
+8C8D28 (base 16) Intel Corporate\r
+ Lot 8, Jalan Hi-Tech 2/3 \r
+ Kulim Kedah 09000\r
+ MY\r
+\r
+90-CC-DF (hex) Intel Corporate\r
+90CCDF (base 16) Intel Corporate\r
+ Lot 8, Jalan Hi-Tech 2/3 \r
+ Kulim Kedah 09000\r
+ MY\r
+\r
+08-5B-D6 (hex) Intel Corporate\r
+085BD6 (base 16) Intel Corporate\r
+ Lot 8, Jalan Hi-Tech 2/3 \r
+ Kulim Kedah 09000\r
+ MY\r
+\r
+B4-0E-DE (hex) Intel Corporate\r
+B40EDE (base 16) Intel Corporate\r
+ Lot 8, Jalan Hi-Tech 2/3 \r
+ Kulim Kedah 09000\r
+ MY\r
+\r
+E4-D3-AA (hex) FUJITSU CONNECTED TECHNOLOGIES LIMITED\r
+E4D3AA (base 16) FUJITSU CONNECTED TECHNOLOGIES LIMITED\r
+ Sanki Yamato Building, 7-10-1 Chuorinkan\r
+ Yamato Kanagawa 242-8588\r
+ JP\r
+\r
+C8-E2-65 (hex) Intel Corporate\r
+C8E265 (base 16) Intel Corporate\r
+ Lot 8, Jalan Hi-Tech 2/3 \r
+ Kulim Kedah 09000\r
+ MY\r
+\r
+E0-2B-E9 (hex) Intel Corporate\r
+E02BE9 (base 16) Intel Corporate\r
+ Lot 8, Jalan Hi-Tech 2/3 \r
+ Kulim Kedah 09000\r
+ MY\r
+\r
+D0-56-BF (hex) AMOSENSE\r
+D056BF (base 16) AMOSENSE\r
+ Narutu street 56\r
+ SEOUL Sucho gu 06527\r
+ KR\r
+\r
+A4-53-EE (hex) IEEE Registration Authority\r
+A453EE (base 16) IEEE Registration Authority\r
+ 445 Hoes Lane\r
+ Piscataway NJ 08554\r
+ US\r
+\r
+BC-9A-53 (hex) Huawei Device Co., Ltd.\r
+BC9A53 (base 16) Huawei Device Co., Ltd.\r
+ No.2 of Xincheng Road, Songshan Lake Zone\r
+ Dongguan Guangdong 523808\r
+ CN\r
+\r
+DC-27-27 (hex) Huawei Device Co., Ltd.\r
+DC2727 (base 16) Huawei Device Co., Ltd.\r
+ No.2 of Xincheng Road, Songshan Lake Zone\r
+ Dongguan Guangdong 523808\r
+ CN\r
+\r
+F0-42-F5 (hex) Huawei Device Co., Ltd.\r
+F042F5 (base 16) Huawei Device Co., Ltd.\r
+ No.2 of Xincheng Road, Songshan Lake Zone\r
+ Dongguan Guangdong 523808\r
+ CN\r
+\r
+6C-F7-12 (hex) Nokia Solutions and Networks GmbH & Co. KG\r
+6CF712 (base 16) Nokia Solutions and Networks GmbH & Co. KG\r
+ Werinherstrasse 91\r
+ München Bavaria D-81541\r
+ DE\r
+\r
+78-F9-B4 (hex) Nokia Solutions and Networks GmbH & Co. KG\r
+78F9B4 (base 16) Nokia Solutions and Networks GmbH & Co. KG\r
+ Werinherstrasse 91\r
+ München Bavaria D-81541\r
+ DE\r
+\r
+60-A8-FE (hex) Nokia Solutions and Networks GmbH & Co. KG\r
+60A8FE (base 16) Nokia Solutions and Networks GmbH & Co. KG\r
+ Werinherstrasse 91\r
+ München Bavaria D-81541\r
+ DE\r
+\r
+D8-EF-CD (hex) Nokia Solutions and Networks GmbH & Co. KG\r
+D8EFCD (base 16) Nokia Solutions and Networks GmbH & Co. KG\r
+ Werinherstrasse 91\r
+ München Bavaria D-81541\r
+ DE\r
+\r
+8C-8C-AA (hex) LCFC(HeFei) Electronics Technology co., ltd\r
+8C8CAA (base 16) LCFC(HeFei) Electronics Technology co., ltd\r
+ YunGu Road 3188-1\r
+ Hefei Anhui 230000\r
+ CN\r
+\r
+D0-40-EF (hex) Murata Manufacturing Co., Ltd.\r
+D040EF (base 16) Murata Manufacturing Co., Ltd.\r
+ 1-10-1, Higashikotari\r
+ Nagaokakyo-shi Kyoto 617-8555\r
+ JP\r
+\r
+EC-75-ED (hex) Citrix Systems, Inc.\r
+EC75ED (base 16) Citrix Systems, Inc.\r
+ 851 W Cypress Creek Rd\r
+ Fort Lauderdale FL 33309\r
+ US\r
+\r
+E0-2E-3F (hex) Huawei Device Co., Ltd.\r
+E02E3F (base 16) Huawei Device Co., Ltd.\r
+ No.2 of Xincheng Road, Songshan Lake Zone\r
+ Dongguan Guangdong 523808\r
+ CN\r
+\r
+4C-75-25 (hex) Espressif Inc.\r
+4C7525 (base 16) Espressif Inc.\r
+ Room 204, Building 2, 690 Bibo Rd, Pudong New Area\r
+ Shanghai Shanghai 201203\r
+ CN\r
+\r
+74-04-F0 (hex) Mobiwire Mobiles (NingBo) Co., LTD\r
+7404F0 (base 16) Mobiwire Mobiles (NingBo) Co., LTD\r
+ No.999 Dacheng East Road, Fenghua District, Ningbo City , Zhejiang Province, PRC\r
+ Ningbo Zhejiang 315500\r
+ CN\r
+\r
+B4-B5-B6 (hex) CHONGQING FUGUI ELECTRONICS CO.,LTD.\r
+B4B5B6 (base 16) CHONGQING FUGUI ELECTRONICS CO.,LTD.\r
+ Building D21,No.1, East Zone 1st Road,Xiyong Town,Shapingba District\r
+ Chongqing Chongqing 401332\r
+ CN\r
+\r
+04-7A-0B (hex) Beijing Xiaomi Electronics Co., Ltd.\r
+047A0B (base 16) Beijing Xiaomi Electronics Co., Ltd.\r
+ Building C, QingHe ShunShiJiaYe Technology Park, #66 ZhuFang Rd, HaiDian District\r
+ Beijing Beijing 10085\r
+ CN\r
+\r
+90-0F-0C (hex) CLOUD NETWORK TECHNOLOGY SINGAPORE PTE. LTD.\r
+900F0C (base 16) CLOUD NETWORK TECHNOLOGY SINGAPORE PTE. LTD.\r
+ B22 Building,NO.51 Tongle Road, Shajing Town, Jiangnan District, Nanning, Guangxi Province, China\r
+ Nanning Guangxi 530007\r
+ CN\r
+\r
+BC-9D-42 (hex) SHENZHEN RF-LINK TECHNOLOGY CO.,LTD.\r
+BC9D42 (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
+24-0B-88 (hex) Taicang T&W Electronics\r
+240B88 (base 16) Taicang T&W Electronics\r
+ 89# Jiang Nan RD\r
+ Suzhou Jiangsu 215412\r
+ CN\r
+\r
+0C-93-8F (hex) GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP.,LTD\r
+0C938F (base 16) GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP.,LTD\r
+ NO.18 HAIBIN ROAD,\r
+ DONG GUAN GUANG DONG 523860\r
+ CN\r
+\r
+F0-A2-25 (hex) Amazon Technologies Inc.\r
+F0A225 (base 16) Amazon Technologies Inc.\r
+ P.O Box 8102 \r
+ Reno NV 89507\r
+ US\r
+\r
+F0-4F-7C (hex) Amazon Technologies Inc.\r
+F04F7C (base 16) Amazon Technologies Inc.\r
+ P.O Box 8102 \r
+ Reno NV 89507\r
+ US\r
+\r
+5C-BD-9A (hex) Huawei Device Co., Ltd.\r
+5CBD9A (base 16) Huawei Device Co., Ltd.\r
+ No.2 of Xincheng Road, Songshan Lake Zone\r
+ Dongguan Guangdong 523808\r
+ CN\r
+\r
+14-A3-B4 (hex) Huawei Device Co., Ltd.\r
+14A3B4 (base 16) Huawei Device Co., Ltd.\r
+ No.2 of Xincheng Road, Songshan Lake Zone\r
+ Dongguan Guangdong 523808\r
+ CN\r
+\r
F8-D0-27 (hex) Seiko Epson Corporation\r
F8D027 (base 16) Seiko Epson Corporation\r
2070 Kotobuki Koaka\r
Playa Vista null 90094\r
US\r
\r
-00-77-E4 (hex) Nokia\r
-0077E4 (base 16) Nokia\r
- Karaportti 3\r
- Espoo Finland 02610\r
- FI\r
-\r
00-AD-63 (hex) Dedicated Micros Malta LTD\r
00AD63 (base 16) Dedicated Micros Malta LTD\r
Blb017, Qasam Industrijali Bulebel\r
10-AE-60 (hex) Private\r
10AE60 (base 16) Private\r
\r
-00-25-DF (hex) Private\r
-0025DF (base 16) Private\r
-\r
BC-CF-4F (hex) Zyxel Communications Corporation\r
BCCF4F (base 16) Zyxel Communications Corporation\r
No. 6 Innovation Road II, Science Park\r
West Lindfield NSW 2070\r
AU\r
\r
-AC-AE-19 (hex) Roku, Inc\r
-ACAE19 (base 16) Roku, Inc\r
- 150 Winchester Circle\r
- Los Gatos CA 95032\r
- US\r
-\r
18-1E-95 (hex) AuVerte\r
181E95 (base 16) AuVerte\r
14 Riverview Road\r
Yokohama-shi Kanagawa 224-8502\r
JP\r
\r
-48-EC-5B (hex) Nokia\r
-48EC5B (base 16) Nokia\r
- Karaportti 3\r
- Espoo Finland 02610\r
- FI\r
-\r
70-58-12 (hex) Panasonic Corporation AVC Networks Company\r
705812 (base 16) Panasonic Corporation AVC Networks Company\r
1-15 Matsuo-cho\r
Gunposi Kyoungkido 436-862\r
KR\r
\r
-00-21-3E (hex) TomTom\r
-00213E (base 16) TomTom\r
- Oosterdoksstraat 114\r
- Amsterdam North Holland 1011 DK\r
- NL\r
-\r
00-21-3F (hex) A-Team Technology Ltd.\r
00213F (base 16) A-Team Technology Ltd.\r
Rm. 1608, 16/F., Metropole Square,\r
Shanghai 200001\r
CN\r
\r
-00-0E-B6 (hex) Riverbed Technology, Inc.\r
-000EB6 (base 16) Riverbed Technology, Inc.\r
- 680 Folsom St.\r
- San Francisco CA 94107\r
- US\r
-\r
00-0E-B7 (hex) Knovative, Inc.\r
000EB7 (base 16) Knovative, Inc.\r
11245 West Bernardo Court\r
Seoul 152-721\r
KR\r
\r
-00-08-B0 (hex) BKtel communications GmbH\r
-0008B0 (base 16) BKtel communications GmbH\r
- Benzstraße 4\r
- 41836 Hückelhoven-Baal NRW 41836\r
- DE\r
-\r
00-08-CA (hex) TwinHan Technology Co.,Ltd\r
0008CA (base 16) TwinHan Technology Co.,Ltd\r
13F-6,No 79,Sec 1,Hsin Tai Wu RD.,Hsi-Ch\r
REDMOND 98052\r
US\r
\r
-CC-D4-2E (hex) Arcadyan Corporation\r
-CCD42E (base 16) Arcadyan Corporation\r
- No.8, Sec.2, Guangfu Rd.\r
- Hsinchu City Hsinchu 30071\r
- TW\r
-\r
C8-53-E1 (hex) Beijing Bytedance Network Technology Co., Ltd\r
C853E1 (base 16) Beijing Bytedance Network Technology Co., Ltd\r
No.1 Building, Zhonghang Square, West Road of the Northern 3rd Circuit, Haidian Distrct\r
Beijing Beijing 100098\r
CN\r
\r
+CC-D4-2E (hex) Arcadyan Corporation\r
+CCD42E (base 16) Arcadyan Corporation\r
+ No.8, Sec.2, Guangfu Rd.\r
+ Hsinchu City Hsinchu 30071\r
+ TW\r
+\r
14-16-9D (hex) Cisco Systems, Inc\r
14169D (base 16) Cisco Systems, Inc\r
80 West Tasman Drive\r
Piscataway NJ 08554\r
US\r
\r
-F0-08-D1 (hex) Espressif Inc.\r
-F008D1 (base 16) Espressif Inc.\r
- Room 204, Building 2, 690 Bibo Rd, Pudong New Area\r
- Shanghai Shanghai 201203\r
+04-8C-16 (hex) HUAWEI TECHNOLOGIES CO.,LTD\r
+048C16 (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-94-B2 (hex) BrainCo\r
-5894B2 (base 16) BrainCo\r
- ????????????????1107?\r
- ??? ??? 518000\r
- CN\r
+98-DD-5B (hex) TAKUMI JAPAN LTD\r
+98DD5B (base 16) TAKUMI JAPAN LTD\r
+ 3-9-3 Uchiyama building 7F Nishishinbashi\r
+ Minato-ku Tokyo Tokyo 1050003\r
+ JP\r
\r
B0-95-75 (hex) TP-LINK TECHNOLOGIES CO.,LTD.\r
B09575 (base 16) TP-LINK TECHNOLOGIES CO.,LTD.\r
Shenzhen Guangdong 518057\r
CN\r
\r
-B4-B0-55 (hex) HUAWEI TECHNOLOGIES CO.,LTD\r
-B4B055 (base 16) HUAWEI TECHNOLOGIES CO.,LTD\r
- No.2 Xin Cheng Road, Room R6,Songshan Lake Technology Park\r
- Dongguan 523808\r
+F0-08-D1 (hex) Espressif Inc.\r
+F008D1 (base 16) Espressif Inc.\r
+ Room 204, Building 2, 690 Bibo Rd, Pudong New Area\r
+ Shanghai Shanghai 201203\r
CN\r
\r
-04-8C-16 (hex) HUAWEI TECHNOLOGIES CO.,LTD\r
-048C16 (base 16) HUAWEI TECHNOLOGIES CO.,LTD\r
+B4-B0-55 (hex) HUAWEI TECHNOLOGIES CO.,LTD\r
+B4B055 (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
-98-DD-5B (hex) TAKUMI JAPAN LTD\r
-98DD5B (base 16) TAKUMI JAPAN LTD\r
- 3-9-3 Uchiyama building 7F Nishishinbashi\r
- Minato-ku Tokyo Tokyo 1050003\r
- JP\r
-\r
-3C-5C-F1 (hex) eero inc.\r
-3C5CF1 (base 16) eero inc.\r
- 660 3rd Street\r
- San Francisco CA 94107\r
- US\r
-\r
14-AE-85 (hex) IEEE Registration Authority\r
14AE85 (base 16) IEEE Registration Authority\r
445 Hoes Lane\r
Piscataway NJ 08554\r
US\r
\r
-90-74-9D (hex) IRay Technology Co., Ltd.\r
-90749D (base 16) IRay Technology Co., Ltd.\r
- 11th Guiyang St.,\r
- Yantai Shandong 264000\r
+58-94-B2 (hex) BrainCo\r
+5894B2 (base 16) BrainCo\r
+ ????????????????1107?\r
+ ??? ??? 518000\r
CN\r
\r
+64-5C-F3 (hex) ParanTek Inc.\r
+645CF3 (base 16) ParanTek Inc.\r
+ 3F, 40-15 Gilju-Ro, 411 Beon-Gil\r
+ Wonmi-Gu, Bucheon City Gyeonggi-Do 14488\r
+ KR\r
+\r
8C-3B-32 (hex) Microfan B.V.\r
8C3B32 (base 16) Microfan B.V.\r
Industriestraat 23\r
Santa Clara CA 95054\r
US\r
\r
-64-5C-F3 (hex) ParanTek Inc.\r
-645CF3 (base 16) ParanTek Inc.\r
- 3F, 40-15 Gilju-Ro, 411 Beon-Gil\r
- Wonmi-Gu, Bucheon City Gyeonggi-Do 14488\r
- KR\r
+FC-39-64 (hex) ITEL MOBILE LIMITED\r
+FC3964 (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
-B0-CC-FE (hex) Huawei Device Co., Ltd.\r
-B0CCFE (base 16) Huawei Device Co., Ltd.\r
- No.2 of Xincheng Road, Songshan Lake Zone\r
- Dongguan Guangdong 523808\r
+90-74-9D (hex) IRay Technology Co., Ltd.\r
+90749D (base 16) IRay Technology Co., Ltd.\r
+ 11th Guiyang St.,\r
+ Yantai Shandong 264000\r
CN\r
\r
54-0D-F9 (hex) Huawei Device Co., Ltd.\r
Dongguan Guangdong 523808\r
CN\r
\r
-FC-39-64 (hex) ITEL MOBILE LIMITED\r
-FC3964 (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
-14-47-2D (hex) GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP.,LTD\r
-14472D (base 16) GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP.,LTD\r
- NO.18 HAIBIN ROAD,\r
- DONG GUAN GUANG DONG 523860\r
+B0-CC-FE (hex) Huawei Device Co., Ltd.\r
+B0CCFE (base 16) Huawei Device Co., Ltd.\r
+ No.2 of Xincheng Road, Songshan Lake Zone\r
+ Dongguan Guangdong 523808\r
CN\r
\r
+3C-5C-F1 (hex) eero inc.\r
+3C5CF1 (base 16) eero inc.\r
+ 660 3rd Street\r
+ San Francisco CA 94107\r
+ US\r
+\r
E4-90-FD (hex) Apple, Inc.\r
E490FD (base 16) Apple, Inc.\r
1 Infinite Loop\r
Cupertino CA 95014\r
US\r
\r
-84-AB-1A (hex) Apple, Inc.\r
-84AB1A (base 16) Apple, Inc.\r
+D0-65-44 (hex) Apple, Inc.\r
+D06544 (base 16) Apple, Inc.\r
1 Infinite Loop\r
Cupertino CA 95014\r
US\r
\r
-20-6D-31 (hex) FIREWALLA INC\r
-206D31 (base 16) FIREWALLA INC\r
- 75 E. Santa Clara St. STE 600\r
- San Jose CA 95113\r
- US\r
-\r
-D0-65-44 (hex) Apple, Inc.\r
-D06544 (base 16) Apple, Inc.\r
+84-AB-1A (hex) Apple, Inc.\r
+84AB1A (base 16) Apple, Inc.\r
1 Infinite Loop\r
Cupertino CA 95014\r
US\r
Burnaby BC V5H 4H2\r
CA\r
\r
-3C-80-6B (hex) Hunan Voc Acoustics Technology Co., Ltd.\r
-3C806B (base 16) Hunan Voc Acoustics Technology Co., Ltd.\r
- State Industrialpark, Jiulong Development Zone, Yanling County\r
- Zhuzhou Hunan 412500\r
- CN\r
-\r
-60-DE-35 (hex) GITSN, Inc.\r
-60DE35 (base 16) GITSN, Inc.\r
- #601~602, Daerung Post Tower 1, 288, Digital-ro\r
- Guro-gu Seoul 08390\r
- KR\r
-\r
-28-31-7E (hex) Hongkong Nano IC Technologies Co., Ltd\r
-28317E (base 16) Hongkong Nano IC Technologies Co., Ltd\r
- Rm. 19C, Lockhart Ctr., 301-307 Lockhart Rd., Wan Chai, Hong Kong.\r
- Hongkong 999077\r
- CN\r
+20-6D-31 (hex) FIREWALLA INC\r
+206D31 (base 16) FIREWALLA INC\r
+ 75 E. Santa Clara St. STE 600\r
+ San Jose CA 95113\r
+ US\r
\r
A8-41-22 (hex) China Mobile (Hangzhou) Information Technology Co.,Ltd.\r
A84122 (base 16) China Mobile (Hangzhou) Information Technology Co.,Ltd.\r
Hangzhou Zhejiang 310000\r
CN\r
\r
+14-47-2D (hex) GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP.,LTD\r
+14472D (base 16) GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP.,LTD\r
+ NO.18 HAIBIN ROAD,\r
+ DONG GUAN GUANG DONG 523860\r
+ CN\r
+\r
6C-DD-BC (hex) Samsung Electronics Co.,Ltd\r
6CDDBC (base 16) Samsung Electronics Co.,Ltd\r
#94-1, Imsoo-Dong\r
San Jose CA 94568\r
US\r
\r
+3C-80-6B (hex) Hunan Voc Acoustics Technology Co., Ltd.\r
+3C806B (base 16) Hunan Voc Acoustics Technology Co., Ltd.\r
+ State Industrialpark, Jiulong Development Zone, Yanling County\r
+ Zhuzhou Hunan 412500\r
+ CN\r
+\r
+60-DE-35 (hex) GITSN, Inc.\r
+60DE35 (base 16) GITSN, Inc.\r
+ #601~602, Daerung Post Tower 1, 288, Digital-ro\r
+ Guro-gu Seoul 08390\r
+ KR\r
+\r
+28-31-7E (hex) Hongkong Nano IC Technologies Co., Ltd\r
+28317E (base 16) Hongkong Nano IC Technologies Co., Ltd\r
+ Rm. 19C, Lockhart Ctr., 301-307 Lockhart Rd., Wan Chai, Hong Kong.\r
+ Hongkong 999077\r
+ CN\r
+\r
40-BC-68 (hex) Wuhan Funshion Online Technologies Co.,Ltd\r
40BC68 (base 16) Wuhan Funshion Online Technologies Co.,Ltd\r
5th Floor,Financial Port Building A9,No.77 Optical Valley Avenue, East Lake High-Tech Development Zone, Wuhan\r
Wuhan CN/Hubei 430000\r
CN\r
\r
-DC-98-40 (hex) Microsoft Corporation\r
-DC9840 (base 16) Microsoft Corporation\r
- One Microsoft Way\r
- REDMOND 98052\r
- US\r
+B8-02-A4 (hex) Aeonsemi, Inc.\r
+B802A4 (base 16) Aeonsemi, Inc.\r
+ Cassia Court, Suite 716, 10 Market Street\r
+ Camana Bay Grand Cayman KY1-9006\r
+ KY\r
+\r
+E4-83-26 (hex) HUAWEI TECHNOLOGIES CO.,LTD\r
+E48326 (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
44-76-54 (hex) HUAWEI TECHNOLOGIES CO.,LTD\r
447654 (base 16) HUAWEI TECHNOLOGIES CO.,LTD\r
Dongguan 523808\r
CN\r
\r
-B4-F1-8C (hex) Huawei Device Co., Ltd.\r
-B4F18C (base 16) Huawei Device Co., Ltd.\r
- No.2 of Xincheng Road, Songshan Lake Zone\r
- Dongguan Guangdong 523808\r
- CN\r
-\r
B8-CE-F6 (hex) Mellanox Technologies, Inc.\r
B8CEF6 (base 16) Mellanox Technologies, Inc.\r
350 Oakmead Parkway, Suite 100 \r
Sunnyvale CA 94085\r
US\r
\r
-B8-02-A4 (hex) Aeonsemi, Inc.\r
-B802A4 (base 16) Aeonsemi, Inc.\r
- Cassia Court, Suite 716, 10 Market Street\r
- Camana Bay Grand Cayman KY1-9006\r
- KY\r
-\r
-E4-83-26 (hex) HUAWEI TECHNOLOGIES CO.,LTD\r
-E48326 (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
94-05-BB (hex) IEEE Registration Authority\r
9405BB (base 16) IEEE Registration Authority\r
445 Hoes Lane\r
Piscataway NJ 08554\r
US\r
\r
+DC-98-40 (hex) Microsoft Corporation\r
+DC9840 (base 16) Microsoft Corporation\r
+ One Microsoft Way\r
+ REDMOND 98052\r
+ US\r
+\r
+B4-F1-8C (hex) Huawei Device Co., Ltd.\r
+B4F18C (base 16) Huawei Device Co., Ltd.\r
+ No.2 of Xincheng Road, Songshan Lake Zone\r
+ Dongguan Guangdong 523808\r
+ CN\r
+\r
+C4-32-D1 (hex) Farlink Technology Limited\r
+C432D1 (base 16) Farlink Technology Limited\r
+ Flat A&B,9/F,Wing Cheong Factory Building,121 King Lam Street,Cheung Sha Wan,Hong Kong.\r
+ Hongkong 0000\r
+ HK\r
+\r
+C8-D7-78 (hex) BSH Hausgeraete GmbH\r
+C8D778 (base 16) BSH Hausgeraete GmbH\r
+ Im Gewerbepark B10\r
+ Regensburg 93059\r
+ DE\r
+\r
+18-69-D8 (hex) HANGZHOU AIXIANGJI TECHNOLOGY CO., LTD\r
+1869D8 (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
8C-5F-AD (hex) Fiberhome Telecommunication Technologies Co.,LTD\r
8C5FAD (base 16) Fiberhome Telecommunication Technologies Co.,LTD\r
No.5 DongXin Road\r
Kanata Ontario K2K 2E6\r
CA\r
\r
-18-69-D8 (hex) HANGZHOU AIXIANGJI TECHNOLOGY CO., LTD\r
-1869D8 (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
-C4-32-D1 (hex) Farlink Technology Limited\r
-C432D1 (base 16) Farlink Technology Limited\r
- Flat A&B,9/F,Wing Cheong Factory Building,121 King Lam Street,Cheung Sha Wan,Hong Kong.\r
- Hongkong 0000\r
- HK\r
-\r
CC-41-8E (hex) MSA Innovation\r
CC418E (base 16) MSA Innovation\r
1100 Cranberry Woods Road\r
San Francisco 94158\r
US\r
\r
+68-49-B2 (hex) CARLO GAVAZZI LTD\r
+6849B2 (base 16) CARLO GAVAZZI LTD\r
+ BLB042, Bulebel Industrial Estate \r
+ Zejtun ZTN 3000\r
+ MT\r
+\r
7C-9E-BD (hex) Espressif Inc.\r
7C9EBD (base 16) Espressif Inc.\r
Room 204, Building 2, 690 Bibo Rd, Pudong New Area\r
DONG GUAN GUANG DONG 523860\r
CN\r
\r
-C8-D7-78 (hex) BSH Hausgeraete GmbH\r
-C8D778 (base 16) BSH Hausgeraete GmbH\r
- Im Gewerbepark B10\r
- Regensburg 93059\r
- DE\r
+C0-95-DA (hex) NXP India Private Limited\r
+C095DA (base 16) NXP India Private Limited\r
+ 1st Floor, Muttha Towers, Don Bosco Marg, Off Airport Road, Yerwada\r
+ Pune Maharashtra 411006\r
+ IN\r
\r
9C-61-1D (hex) Panasonic Corporation of North America\r
9C611D (base 16) Panasonic Corporation of North America\r
Rochester NY 14615\r
US\r
\r
-C0-95-DA (hex) NXP India Private Limited\r
-C095DA (base 16) NXP India Private Limited\r
- 1st Floor, Muttha Towers, Don Bosco Marg, Off Airport Road, Yerwada\r
- Pune Maharashtra 411006\r
- IN\r
-\r
B4-22-00 (hex) Brother Industries, LTD.\r
B42200 (base 16) Brother Industries, LTD.\r
15-1, Naeshirocho, Mizuho-ku\r
NAGOYA 4678561\r
JP\r
\r
-68-49-B2 (hex) CARLO GAVAZZI LTD\r
-6849B2 (base 16) CARLO GAVAZZI LTD\r
- BLB042, Bulebel Industrial Estate \r
- Zejtun ZTN 3000\r
- MT\r
-\r
48-7A-FF (hex) ESSYS\r
487AFF (base 16) ESSYS\r
gaetbeol-ro\r
Incheon 21999\r
KR\r
\r
-40-B6-E7 (hex) Huawei Device Co., Ltd.\r
-40B6E7 (base 16) Huawei Device Co., Ltd.\r
- No.2 of Xincheng Road, Songshan Lake Zone\r
- Dongguan Guangdong 523808\r
- CN\r
-\r
D0-B4-5D (hex) Huawei Device Co., Ltd.\r
D0B45D (base 16) Huawei Device Co., Ltd.\r
No.2 of Xincheng Road, Songshan Lake Zone\r
Dongguan Guangdong 523808\r
CN\r
\r
+00-9E-EE (hex) Positivo Tecnologia S.A.\r
+009EEE (base 16) Positivo Tecnologia S.A.\r
+ João Bettega, 5200\r
+ Curitiba Paraná 81350-000\r
+ BR\r
+\r
A4-C5-4E (hex) Huawei Device Co., Ltd.\r
A4C54E (base 16) Huawei Device Co., Ltd.\r
No.2 of Xincheng Road, Songshan Lake Zone\r
Dongguan Guangdong 523808\r
CN\r
\r
-00-9E-EE (hex) Positivo Tecnologia S.A.\r
-009EEE (base 16) Positivo Tecnologia S.A.\r
- João Bettega, 5200\r
- Curitiba Paraná 81350-000\r
- BR\r
+40-B6-E7 (hex) Huawei Device Co., Ltd.\r
+40B6E7 (base 16) Huawei Device Co., Ltd.\r
+ No.2 of Xincheng Road, Songshan Lake Zone\r
+ Dongguan Guangdong 523808\r
+ CN\r
\r
-90-B8-32 (hex) Extreme Networks, Inc.\r
-90B832 (base 16) Extreme Networks, Inc.\r
+9C-5D-12 (hex) Extreme Networks, Inc.\r
+9C5D12 (base 16) Extreme Networks, Inc.\r
1011 McCarthy Blvd\r
Milpitas CA 95035\r
US\r
\r
-40-2F-86 (hex) LG Innotek\r
-402F86 (base 16) LG Innotek\r
- 26, Hanamsandan 5beon-ro\r
- Gwangju Gwangsan-gu 506-731\r
- KR\r
-\r
-D4-22-CD (hex) Xsens Technologies B.V.\r
-D422CD (base 16) Xsens Technologies B.V.\r
- Pantheon 6-a\r
- Enschede 7521 PR\r
- NL\r
-\r
-C8-67-5E (hex) Extreme Networks, Inc.\r
-C8675E (base 16) Extreme Networks, Inc.\r
+F0-9C-E9 (hex) Extreme Networks, Inc.\r
+F09CE9 (base 16) Extreme Networks, Inc.\r
1011 McCarthy Blvd\r
Milpitas CA 95035\r
US\r
\r
-9C-5D-12 (hex) Extreme Networks, Inc.\r
-9C5D12 (base 16) Extreme Networks, Inc.\r
+C4-13-E2 (hex) Extreme Networks, Inc.\r
+C413E2 (base 16) Extreme Networks, Inc.\r
1011 McCarthy Blvd\r
Milpitas CA 95035\r
US\r
\r
-F0-9C-E9 (hex) Extreme Networks, Inc.\r
-F09CE9 (base 16) Extreme Networks, Inc.\r
+90-B8-32 (hex) Extreme Networks, Inc.\r
+90B832 (base 16) Extreme Networks, Inc.\r
1011 McCarthy Blvd\r
Milpitas CA 95035\r
US\r
\r
-C4-13-E2 (hex) Extreme Networks, Inc.\r
-C413E2 (base 16) Extreme Networks, Inc.\r
+C8-67-5E (hex) Extreme Networks, Inc.\r
+C8675E (base 16) Extreme Networks, Inc.\r
1011 McCarthy Blvd\r
Milpitas CA 95035\r
US\r
\r
+40-2F-86 (hex) LG Innotek\r
+402F86 (base 16) LG Innotek\r
+ 26, Hanamsandan 5beon-ro\r
+ Gwangju Gwangsan-gu 506-731\r
+ KR\r
+\r
+D4-22-CD (hex) Xsens Technologies B.V.\r
+D422CD (base 16) Xsens Technologies B.V.\r
+ Pantheon 6-a\r
+ Enschede 7521 PR\r
+ NL\r
+\r
F4-EB-9F (hex) Ellu Company 2019 SL\r
F4EB9F (base 16) Ellu Company 2019 SL\r
Paseo de la Castellana 144 14B\r
Zelenograd Moscow 124482\r
RU\r
\r
+64-DD-E9 (hex) Xiaomi Communications Co Ltd\r
+64DDE9 (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
D4-1A-C8 (hex) Nippon Printer Engineering\r
D41AC8 (base 16) Nippon Printer Engineering\r
2660 Katsuyama\r
Santa Ana CA 92707\r
US\r
\r
+0C-81-7D (hex) EEP Elektro-Elektronik Pranjic GmbH\r
+0C817D (base 16) EEP Elektro-Elektronik Pranjic GmbH\r
+ Am Luftschacht 21\r
+ Gelsenkirchen 45886\r
+ DE\r
+\r
00-0C-32 (hex) Avionic Design GmbH\r
000C32 (base 16) Avionic Design GmbH\r
Wragekamp 10\r
Berlin 13509\r
DE\r
\r
-F4-54-20 (hex) TELLESCOM INDUSTRIA E COMERCIO EM TELECOMUNICACAO \r
-F45420 (base 16) TELLESCOM INDUSTRIA E COMERCIO EM TELECOMUNICACAO \r
- Av. Buriti, 1900 – Setor B – Distrito Industrial\r
- Manaus Amazonas 69075-000\r
- BR\r
-\r
-4C-40-88 (hex) SANSHIN ELECTRONICS CO.,LTD.\r
-4C4088 (base 16) SANSHIN ELECTRONICS CO.,LTD.\r
- 4-4-12, Shiba, Minato-ku,\r
- Tokyo 108-8404\r
- JP\r
-\r
-64-DD-E9 (hex) Xiaomi Communications Co Ltd\r
-64DDE9 (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
-0C-81-7D (hex) EEP Elektro-Elektronik Pranjic GmbH\r
-0C817D (base 16) EEP Elektro-Elektronik Pranjic GmbH\r
- Am Luftschacht 21\r
- Gelsenkirchen 45886\r
- DE\r
-\r
-04-F5-F4 (hex) Proxim Wireless\r
-04F5F4 (base 16) Proxim Wireless\r
- 2114 Ringwood Ave\r
- San Jose CA 95131\r
- US\r
-\r
-C8-BC-E5 (hex) Sense Things Japan INC.\r
-C8BCE5 (base 16) Sense Things Japan INC.\r
- 3-5-7 Kawaramachi,Chuo-ku\r
- Osaka 541-0048\r
- JP\r
-\r
-E8-B4-70 (hex) IEEE Registration Authority\r
-E8B470 (base 16) IEEE Registration Authority\r
- 445 Hoes Lane\r
- Piscataway NJ 08554\r
- US\r
-\r
00-1B-ED (hex) Brocade Communications Systems LLC\r
001BED (base 16) Brocade Communications Systems LLC\r
1320 Ridder Park Dr\r
San Jose CA 95131\r
US\r
\r
+B0-45-02 (hex) Huawei Device Co., Ltd.\r
+B04502 (base 16) Huawei Device Co., Ltd.\r
+ No.2 of Xincheng Road, Songshan Lake Zone\r
+ Dongguan Guangdong 523808\r
+ CN\r
+\r
+1C-1F-F1 (hex) Huawei Device Co., Ltd.\r
+1C1FF1 (base 16) Huawei Device Co., Ltd.\r
+ No.2 of Xincheng Road, Songshan Lake Zone\r
+ Dongguan Guangdong 523808\r
+ CN\r
+\r
60-9C-9F (hex) Brocade Communications Systems LLC\r
609C9F (base 16) Brocade Communications Systems LLC\r
1320 Ridder Park Dr\r
San Jose CA 95131\r
US\r
\r
-B0-45-02 (hex) Huawei Device Co., Ltd.\r
-B04502 (base 16) Huawei Device Co., Ltd.\r
- No.2 of Xincheng Road, Songshan Lake Zone\r
- Dongguan Guangdong 523808\r
- CN\r
+F4-54-20 (hex) TELLESCOM INDUSTRIA E COMERCIO EM TELECOMUNICACAO \r
+F45420 (base 16) TELLESCOM INDUSTRIA E COMERCIO EM TELECOMUNICACAO \r
+ Av. Buriti, 1900 – Setor B – Distrito Industrial\r
+ Manaus Amazonas 69075-000\r
+ BR\r
\r
-1C-1F-F1 (hex) Huawei Device Co., Ltd.\r
-1C1FF1 (base 16) Huawei Device Co., Ltd.\r
- No.2 of Xincheng Road, Songshan Lake Zone\r
- Dongguan Guangdong 523808\r
- CN\r
+4C-40-88 (hex) SANSHIN ELECTRONICS CO.,LTD.\r
+4C4088 (base 16) SANSHIN ELECTRONICS CO.,LTD.\r
+ 4-4-12, Shiba, Minato-ku,\r
+ Tokyo 108-8404\r
+ JP\r
+\r
+04-F5-F4 (hex) Proxim Wireless\r
+04F5F4 (base 16) Proxim Wireless\r
+ 2114 Ringwood Ave\r
+ San Jose CA 95131\r
+ US\r
+\r
+C8-BC-E5 (hex) Sense Things Japan INC.\r
+C8BCE5 (base 16) Sense Things Japan INC.\r
+ 3-5-7 Kawaramachi,Chuo-ku\r
+ Osaka 541-0048\r
+ JP\r
+\r
+E8-B4-70 (hex) IEEE Registration Authority\r
+E8B470 (base 16) IEEE Registration Authority\r
+ 445 Hoes Lane\r
+ Piscataway NJ 08554\r
+ US\r
\r
B4-EF-1C (hex) 360 AI Technology Co.Ltd\r
B4EF1C (base 16) 360 AI Technology Co.Ltd\r
Shanghai Shanghai 201203\r
CN\r
\r
+24-68-B0 (hex) Samsung Electronics Co.,Ltd\r
+2468B0 (base 16) Samsung Electronics Co.,Ltd\r
+ #94-1, Imsoo-Dong\r
+ Gumi Gyeongbuk 730-350\r
+ KR\r
+\r
FC-71-FA (hex) Trane Technologies\r
FC71FA (base 16) Trane Technologies\r
6200 Troup Hwy.\r
Merchtem Vlaams brabant 1785\r
BE\r
\r
-30-FC-EB (hex) LG Electronics (Mobile Communications)\r
-30FCEB (base 16) LG Electronics (Mobile Communications)\r
- 60-39, Gasan-dong, Geumcheon-gu\r
- Seoul 153-801\r
- KR\r
-\r
-24-68-B0 (hex) Samsung Electronics Co.,Ltd\r
-2468B0 (base 16) Samsung Electronics Co.,Ltd\r
- #94-1, Imsoo-Dong\r
- Gumi Gyeongbuk 730-350\r
- KR\r
-\r
-1C-13-38 (hex) Kimball Electronics Group, LLC\r
-1C1338 (base 16) Kimball Electronics Group, LLC\r
- 1205 Kimball Blvd\r
- Jasper IN 47546\r
- US\r
-\r
9C-ED-FA (hex) EVUlution AG\r
9CEDFA (base 16) EVUlution AG\r
Via da Clalt 12\r
Poschiavo GR 7742\r
CH\r
\r
-EC-63-ED (hex) Hyundai Autoever Corp.\r
-EC63ED (base 16) Hyundai Autoever Corp.\r
- 38, Teheran-ro 114-gil\r
- Gangnam-gu, Seoul 06176\r
- KR\r
+9C-19-C2 (hex) Dongguan Liesheng Electronic Co., Ltd.\r
+9C19C2 (base 16) Dongguan Liesheng Electronic Co., Ltd.\r
+ F5, Building B, North Block, Gaosheng Tech Park, No. 84 Zhongli Road, Nancheng District, Dongguan Ci\r
+ dongguan guangdong 523000\r
+ CN\r
\r
D4-67-61 (hex) XonTel Technology Co.\r
D46761 (base 16) XonTel Technology Co.\r
Kuwait 0000\r
KW\r
\r
+74-CB-F3 (hex) Lava international limited\r
+74CBF3 (base 16) Lava international limited\r
+ A-154D, Sector-63\r
+ Noida Uttar Pradesh 201301\r
+ IN\r
+\r
E4-41-22 (hex) OnePlus Technology (Shenzhen) Co., Ltd\r
E44122 (base 16) OnePlus Technology (Shenzhen) Co., Ltd\r
18C02, 18C03, 18C04 ,18C05,TAIRAN BUILDING,\r
Shenzhen Guangdong 518000\r
CN\r
\r
-9C-19-C2 (hex) Dongguan Liesheng Electronic Co., Ltd.\r
-9C19C2 (base 16) Dongguan Liesheng Electronic Co., Ltd.\r
- F5, Building B, North Block, Gaosheng Tech Park, No. 84 Zhongli Road, Nancheng District, Dongguan Ci\r
- dongguan guangdong 523000\r
- CN\r
+1C-13-38 (hex) Kimball Electronics Group, LLC\r
+1C1338 (base 16) Kimball Electronics Group, LLC\r
+ 1205 Kimball Blvd\r
+ Jasper IN 47546\r
+ US\r
\r
-BC-26-A1 (hex) FACTORY FIVE Corporation\r
-BC26A1 (base 16) FACTORY FIVE Corporation\r
- 3-391-1, Kamikitadai,\r
- Higashiyamato Tokyo 207-0023\r
- JP\r
+30-FC-EB (hex) LG Electronics (Mobile Communications)\r
+30FCEB (base 16) LG Electronics (Mobile Communications)\r
+ 60-39, Gasan-dong, Geumcheon-gu\r
+ Seoul 153-801\r
+ KR\r
\r
-74-CB-F3 (hex) Lava international limited\r
-74CBF3 (base 16) Lava international limited\r
- A-154D, Sector-63\r
- Noida Uttar Pradesh 201301\r
- IN\r
+EC-63-ED (hex) Hyundai Autoever Corp.\r
+EC63ED (base 16) Hyundai Autoever Corp.\r
+ 38, Teheran-ro 114-gil\r
+ Gangnam-gu, Seoul 06176\r
+ KR\r
+\r
+18-DF-C1 (hex) Aetheros\r
+18DFC1 (base 16) Aetheros\r
+ 909 Montgomery Street, Suite 104\r
+ San Francisco 94133\r
+ US\r
+\r
+B0-5C-DA (hex) HP Inc.\r
+B05CDA (base 16) HP Inc.\r
+ 10300 Energy Dr\r
+ Spring TX 77389\r
+ US\r
\r
F0-D1-4F (hex) LINEAR LLC\r
F0D14F (base 16) LINEAR LLC\r
Carlsbad CA 92010\r
US\r
\r
+24-79-EF (hex) Greenpacket Berhad, Taiwan\r
+2479EF (base 16) Greenpacket Berhad, Taiwan\r
+ B-23A-3, The Ascent Paradigm, No. 1, Jalan SS7/26A, Kelana Jaya, 47301 Petaling Jaya\r
+ Petaling Jaya Selangor 47301\r
+ MY\r
+\r
+60-AA-EF (hex) Huawei Device Co., Ltd.\r
+60AAEF (base 16) Huawei Device Co., Ltd.\r
+ No.2 of Xincheng Road, Songshan Lake Zone\r
+ Dongguan Guangdong 523808\r
+ CN\r
+\r
+BC-26-A1 (hex) FACTORY FIVE Corporation\r
+BC26A1 (base 16) FACTORY FIVE Corporation\r
+ 3-391-1, Kamikitadai,\r
+ Higashiyamato Tokyo 207-0023\r
+ JP\r
+\r
00-11-68 (hex) HomeLogic LLC\r
001168 (base 16) HomeLogic LLC\r
5919 Sea Otter Place\r
Carlsbad CA 92010\r
US\r
\r
-18-DF-C1 (hex) Aetheros\r
-18DFC1 (base 16) Aetheros\r
- 909 Montgomery Street, Suite 104\r
- San Francisco 94133\r
- US\r
-\r
-FC-BC-0E (hex) Zhejiang Cainiao Supply Chain Management Co., Ltd\r
-FCBC0E (base 16) Zhejiang Cainiao Supply Chain Management Co., Ltd\r
- Block B1, XIXI center, No.588 West Wenyi Road, Xihu District\r
- Hangzhou Zhejiang 310000\r
- CN\r
-\r
2C-D0-66 (hex) Xiaomi Communications Co Ltd\r
2CD066 (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
-B0-5C-DA (hex) HP Inc.\r
-B05CDA (base 16) HP Inc.\r
- 10300 Energy Dr\r
- Spring TX 77389\r
- US\r
-\r
DC-BD-7A (hex) Guangzhou Shiyuan Electronic Technology Company Limited\r
DCBD7A (base 16) Guangzhou Shiyuan Electronic Technology Company Limited\r
No.6, 4th Yunpu Road, Yunpu industry District\r
Guangzhou Guangdong 510530\r
CN\r
\r
+FC-BC-0E (hex) Zhejiang Cainiao Supply Chain Management Co., Ltd\r
+FCBC0E (base 16) Zhejiang Cainiao Supply Chain Management Co., Ltd\r
+ Block B1, XIXI center, No.588 West Wenyi Road, Xihu District\r
+ Hangzhou Zhejiang 310000\r
+ CN\r
+\r
90-16-BA (hex) HUAWEI TECHNOLOGIES CO.,LTD\r
9016BA (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
-60-AA-EF (hex) Huawei Device Co., Ltd.\r
-60AAEF (base 16) Huawei Device Co., Ltd.\r
- No.2 of Xincheng Road, Songshan Lake Zone\r
- Dongguan Guangdong 523808\r
+D4-46-49 (hex) HUAWEI TECHNOLOGIES CO.,LTD\r
+D44649 (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
D0-F3-F5 (hex) Huawei Device Co., Ltd.\r
Dongguan Guangdong 523808\r
CN\r
\r
-D4-46-49 (hex) HUAWEI TECHNOLOGIES CO.,LTD\r
-D44649 (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
94-00-B0 (hex) HUAWEI TECHNOLOGIES CO.,LTD\r
9400B0 (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
-24-79-EF (hex) Greenpacket Berhad, Taiwan\r
-2479EF (base 16) Greenpacket Berhad, Taiwan\r
- B-23A-3, The Ascent Paradigm, No. 1, Jalan SS7/26A, Kelana Jaya, 47301 Petaling Jaya\r
- Petaling Jaya Selangor 47301\r
- MY\r
+C8-3D-FC (hex) AlphaTheta Corporation\r
+C83DFC (base 16) AlphaTheta Corporation\r
+ 6F,Yokohama i-Mark Place, 4-4-5 Minatomirai, Nishi-ku\r
+ Yokohama Kanagawa 220-0012\r
+ JP\r
+\r
+E0-19-95 (hex) Nutanix\r
+E01995 (base 16) Nutanix\r
+ 1740 Technology Drive Ste #150\r
+ San Jose CA 95110\r
+ US\r
\r
AC-23-34 (hex) Infinix mobility limited\r
AC2334 (base 16) Infinix mobility limited\r
San Francisco CA 94107\r
US\r
\r
-50-E0-39 (hex) Zyxel Communications Corporation\r
-50E039 (base 16) Zyxel Communications Corporation\r
- No. 6 Innovation Road II, Science Park\r
- Hsichu Taiwan 300\r
- TW\r
-\r
B8-57-76 (hex) lignex1\r
B85776 (base 16) lignex1\r
354-25, Sanhodae-ro\r
Hangzhou Zhejiang 311100\r
CN\r
\r
-C8-3D-FC (hex) AlphaTheta Corporation\r
-C83DFC (base 16) AlphaTheta Corporation\r
- 6F,Yokohama i-Mark Place, 4-4-5 Minatomirai, Nishi-ku\r
- Yokohama Kanagawa 220-0012\r
- JP\r
-\r
-E0-19-95 (hex) Nutanix\r
-E01995 (base 16) Nutanix\r
- 1740 Technology Drive Ste #150\r
- San Jose CA 95110\r
- US\r
+50-E0-39 (hex) Zyxel Communications Corporation\r
+50E039 (base 16) Zyxel Communications Corporation\r
+ No. 6 Innovation Road II, Science Park\r
+ Hsichu Taiwan 300\r
+ TW\r
\r
F8-51-28 (hex) SimpliSafe\r
F85128 (base 16) SimpliSafe\r
Boston MA 02108\r
US\r
\r
+D8-DC-40 (hex) Apple, Inc.\r
+D8DC40 (base 16) Apple, Inc.\r
+ 1 Infinite Loop\r
+ Cupertino CA 95014\r
+ US\r
+\r
+80-5F-C5 (hex) Apple, Inc.\r
+805FC5 (base 16) Apple, Inc.\r
+ 1 Infinite Loop\r
+ Cupertino CA 95014\r
+ US\r
+\r
+3C-4D-BE (hex) Apple, Inc.\r
+3C4DBE (base 16) Apple, Inc.\r
+ 1 Infinite Loop\r
+ Cupertino CA 95014\r
+ US\r
+\r
+48-26-2C (hex) Apple, Inc.\r
+48262C (base 16) Apple, Inc.\r
+ 1 Infinite Loop\r
+ Cupertino CA 95014\r
+ US\r
+\r
AC-1F-09 (hex) shenzhen RAKwireless technology Co.,Ltd\r
AC1F09 (base 16) shenzhen RAKwireless technology Co.,Ltd\r
Room 506, Bldg B, New Compark, Pingshan First Road, Taoyuan Street,Nanshan District\r
Shenzhen Guangdong 518055\r
CN\r
\r
+10-F9-20 (hex) Cisco Systems, Inc\r
+10F920 (base 16) Cisco Systems, Inc\r
+ 80 West Tasman Drive\r
+ San Jose CA 94568\r
+ US\r
+\r
90-77-EE (hex) Cisco Systems, Inc\r
9077EE (base 16) Cisco Systems, Inc\r
80 West Tasman Drive\r
shenzhen guangdong 518057\r
CN\r
\r
-D8-DC-40 (hex) Apple, Inc.\r
-D8DC40 (base 16) Apple, Inc.\r
- 1 Infinite Loop\r
- Cupertino CA 95014\r
- US\r
-\r
-80-5F-C5 (hex) Apple, Inc.\r
-805FC5 (base 16) Apple, Inc.\r
- 1 Infinite Loop\r
- Cupertino CA 95014\r
- US\r
-\r
-10-F9-20 (hex) Cisco Systems, Inc\r
-10F920 (base 16) Cisco Systems, Inc\r
- 80 West Tasman Drive\r
- San Jose CA 94568\r
- US\r
-\r
-20-69-80 (hex) Apple, Inc.\r
-206980 (base 16) Apple, Inc.\r
- 1 Infinite Loop\r
- Cupertino CA 95014\r
- US\r
-\r
-64-32-A8 (hex) Intel Corporate\r
-6432A8 (base 16) Intel Corporate\r
- Lot 8, Jalan Hi-Tech 2/3 \r
- Kulim Kedah 09000\r
- MY\r
-\r
-80-19-34 (hex) Intel Corporate\r
-801934 (base 16) Intel Corporate\r
- Lot 8, Jalan Hi-Tech 2/3 \r
- Kulim Kedah 09000\r
- MY\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-A7-A0 (hex) Intel Corporate\r
-E4A7A0 (base 16) Intel Corporate\r
- Lot 8, Jalan Hi-Tech 2/3 \r
- Kulim Kedah 09000\r
- MY\r
-\r
-3C-4D-BE (hex) Apple, Inc.\r
-3C4DBE (base 16) Apple, Inc.\r
- 1 Infinite Loop\r
- Cupertino CA 95014\r
- US\r
-\r
-48-26-2C (hex) Apple, Inc.\r
-48262C (base 16) Apple, Inc.\r
- 1 Infinite Loop\r
- Cupertino CA 95014\r
- US\r
-\r
14-7D-DA (hex) Apple, Inc.\r
147DDA (base 16) Apple, Inc.\r
1 Infinite Loop\r
Cupertino CA 95014\r
US\r
\r
-6C-99-61 (hex) Sagemcom Broadband SAS\r
-6C9961 (base 16) Sagemcom Broadband SAS\r
- 250, route de l'Empereur\r
- Rueil Malmaison Cedex hauts de seine 92848\r
- FR\r
-\r
-50-C7-09 (hex) Juniper Networks\r
-50C709 (base 16) Juniper Networks\r
- 1133 Innovation Way\r
- Sunnyvale CA 94089\r
+20-69-80 (hex) Apple, Inc.\r
+206980 (base 16) Apple, Inc.\r
+ 1 Infinite Loop\r
+ Cupertino CA 95014\r
US\r
\r
-80-6D-97 (hex) Private\r
-806D97 (base 16) Private\r
-\r
64-5D-86 (hex) Intel Corporate\r
645D86 (base 16) Intel Corporate\r
Lot 8, Jalan Hi-Tech 2/3 \r
Kulim Kedah 09000\r
MY\r
\r
-38-00-25 (hex) Intel Corporate\r
-380025 (base 16) Intel Corporate\r
+6C-99-61 (hex) Sagemcom Broadband SAS\r
+6C9961 (base 16) Sagemcom Broadband SAS\r
+ 250, route de l'Empereur\r
+ Rueil Malmaison Cedex hauts de seine 92848\r
+ FR\r
+\r
+64-32-A8 (hex) Intel Corporate\r
+6432A8 (base 16) Intel Corporate\r
Lot 8, Jalan Hi-Tech 2/3 \r
Kulim Kedah 09000\r
MY\r
\r
-C0-E3-A0 (hex) Renesas Electronics (Penang) Sdn. Bhd.\r
-C0E3A0 (base 16) Renesas Electronics (Penang) Sdn. Bhd.\r
- Phase 3, Bayan Lepas FIZ\r
- Bayan Lepas Penang 11900\r
+80-19-34 (hex) Intel Corporate\r
+801934 (base 16) Intel Corporate\r
+ Lot 8, Jalan Hi-Tech 2/3 \r
+ Kulim Kedah 09000\r
MY\r
\r
-F4-C1-14 (hex) Technicolor CH USA Inc.\r
-F4C114 (base 16) Technicolor CH USA Inc.\r
- 5030 Sugarloaf Parkway Bldg 6 \r
- Lawrenceville GA 30044\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-A7-A0 (hex) Intel Corporate\r
+E4A7A0 (base 16) Intel Corporate\r
+ Lot 8, Jalan Hi-Tech 2/3 \r
+ Kulim Kedah 09000\r
+ MY\r
+\r
+04-D3-B0 (hex) Intel Corporate\r
+04D3B0 (base 16) Intel Corporate\r
+ Lot 8, Jalan Hi-Tech 2/3 \r
+ Kulim Kedah 09000\r
+ MY\r
+\r
+50-C7-09 (hex) Juniper Networks\r
+50C709 (base 16) Juniper Networks\r
+ 1133 Innovation Way\r
+ Sunnyvale CA 94089\r
US\r
\r
+80-6D-97 (hex) Private\r
+806D97 (base 16) Private\r
+\r
8C-E4-68 (hex) Guangzhou Sageran Technology Co., Ltd.\r
8CE468 (base 16) Guangzhou Sageran Technology Co., Ltd.\r
Room 1902, Ruian Guangzhou Center, 374 Beijing Road, Yuexiu District\r
Guangzhou Guangdong 510030\r
CN\r
\r
+F4-C1-14 (hex) Technicolor CH USA Inc.\r
+F4C114 (base 16) Technicolor CH USA Inc.\r
+ 5030 Sugarloaf Parkway Bldg 6 \r
+ Lawrenceville GA 30044\r
+ US\r
+\r
C8-B2-9B (hex) Intel Corporate\r
C8B29B (base 16) Intel Corporate\r
Lot 8, Jalan Hi-Tech 2/3 \r
Kulim Kedah 09000\r
MY\r
\r
-24-41-8C (hex) Intel Corporate\r
-24418C (base 16) Intel Corporate\r
+38-00-25 (hex) Intel Corporate\r
+380025 (base 16) Intel Corporate\r
Lot 8, Jalan Hi-Tech 2/3 \r
Kulim Kedah 09000\r
MY\r
\r
-60-F2-62 (hex) Intel Corporate\r
-60F262 (base 16) Intel Corporate\r
+90-78-41 (hex) Intel Corporate\r
+907841 (base 16) Intel Corporate\r
Lot 8, Jalan Hi-Tech 2/3 \r
Kulim Kedah 09000\r
MY\r
\r
-C0-B8-83 (hex) Intel Corporate\r
-C0B883 (base 16) Intel Corporate\r
+58-A0-23 (hex) Intel Corporate\r
+58A023 (base 16) Intel Corporate\r
Lot 8, Jalan Hi-Tech 2/3 \r
Kulim Kedah 09000\r
MY\r
\r
-C8-09-A8 (hex) Intel Corporate\r
-C809A8 (base 16) Intel Corporate\r
+D4-D2-52 (hex) Intel Corporate\r
+D4D252 (base 16) Intel Corporate\r
Lot 8, Jalan Hi-Tech 2/3 \r
Kulim Kedah 09000\r
MY\r
\r
-90-78-41 (hex) Intel Corporate\r
-907841 (base 16) Intel Corporate\r
+24-41-8C (hex) Intel Corporate\r
+24418C (base 16) Intel Corporate\r
Lot 8, Jalan Hi-Tech 2/3 \r
Kulim Kedah 09000\r
MY\r
\r
-58-A0-23 (hex) Intel Corporate\r
-58A023 (base 16) Intel Corporate\r
+60-F2-62 (hex) Intel Corporate\r
+60F262 (base 16) Intel Corporate\r
Lot 8, Jalan Hi-Tech 2/3 \r
Kulim Kedah 09000\r
MY\r
\r
-D4-D2-52 (hex) Intel Corporate\r
-D4D252 (base 16) Intel Corporate\r
+C0-B8-83 (hex) Intel Corporate\r
+C0B883 (base 16) Intel Corporate\r
+ Lot 8, Jalan Hi-Tech 2/3 \r
+ Kulim Kedah 09000\r
+ MY\r
+\r
+C8-09-A8 (hex) Intel Corporate\r
+C809A8 (base 16) Intel Corporate\r
Lot 8, Jalan Hi-Tech 2/3 \r
Kulim Kedah 09000\r
MY\r
Dongguan Guangdong 523808\r
CN\r
\r
-04-D3-B0 (hex) Intel Corporate\r
-04D3B0 (base 16) Intel Corporate\r
- Lot 8, Jalan Hi-Tech 2/3 \r
- Kulim Kedah 09000\r
- MY\r
+E4-26-8B (hex) Huawei Device Co., Ltd.\r
+E4268B (base 16) Huawei Device Co., Ltd.\r
+ No.2 of Xincheng Road, Songshan Lake Zone\r
+ Dongguan Guangdong 523808\r
+ CN\r
\r
-E0-6C-A6 (hex) Creotech Instruments S.A.\r
-E06CA6 (base 16) Creotech Instruments S.A.\r
- ul. Gen. L. Okulickiego 7/9\r
- Piaseczno Mazovia 05-500\r
- PL\r
+C0-E3-A0 (hex) Renesas Electronics (Penang) Sdn. Bhd.\r
+C0E3A0 (base 16) Renesas Electronics (Penang) Sdn. Bhd.\r
+ Phase 3, Bayan Lepas FIZ\r
+ Bayan Lepas Penang 11900\r
+ MY\r
\r
44-68-0C (hex) Wacom Co.,Ltd.\r
44680C (base 16) Wacom Co.,Ltd.\r
Gumi Gyeongbuk 730-350\r
KR\r
\r
+1C-98-C1 (hex) CLOUD NETWORK TECHNOLOGY SINGAPORE PTE. LTD.\r
+1C98C1 (base 16) CLOUD NETWORK TECHNOLOGY SINGAPORE PTE. LTD.\r
+ B22 Building,NO.51 Tongle Road, Shajing Town, Jiangnan District, Nanning, Guangxi Province, China\r
+ Nanning Guangxi 530007\r
+ CN\r
+\r
+A0-9B-17 (hex) Taicang T&W Electronics\r
+A09B17 (base 16) Taicang T&W Electronics\r
+ 89# Jiang Nan RD\r
+ Suzhou Jiangsu 215412\r
+ CN\r
+\r
00-63-DE (hex) CLOUDWALK TECHNOLOGY CO.,LTD\r
0063DE (base 16) CLOUDWALK TECHNOLOGY CO.,LTD\r
Five Floors of Block 106, West Jinkai Avenue, Yubei District\r
Kulim Kedah 09000\r
MY\r
\r
-E4-26-8B (hex) Huawei Device Co., Ltd.\r
-E4268B (base 16) Huawei Device Co., Ltd.\r
- No.2 of Xincheng Road, Songshan Lake Zone\r
- Dongguan Guangdong 523808\r
- CN\r
+E0-6C-A6 (hex) Creotech Instruments S.A.\r
+E06CA6 (base 16) Creotech Instruments S.A.\r
+ ul. Gen. L. Okulickiego 7/9\r
+ Piaseczno Mazovia 05-500\r
+ PL\r
\r
68-88-A1 (hex) Universal Electronics, Inc.\r
6888A1 (base 16) Universal Electronics, Inc.\r
Rueil Malmaison Cedex hauts de seine 92848\r
FR\r
\r
-1C-98-C1 (hex) CLOUD NETWORK TECHNOLOGY SINGAPORE PTE. LTD.\r
-1C98C1 (base 16) CLOUD NETWORK TECHNOLOGY SINGAPORE PTE. LTD.\r
- B22 Building,NO.51 Tongle Road, Shajing Town, Jiangnan District, Nanning, Guangxi Province, China\r
- Nanning Guangxi 530007\r
- CN\r
-\r
-A0-9B-17 (hex) Taicang T&W Electronics\r
-A09B17 (base 16) Taicang T&W Electronics\r
- 89# Jiang Nan RD\r
- Suzhou Jiangsu 215412\r
- CN\r
-\r
44-01-BB (hex) SHENZHEN BILIAN ELECTRONIC CO.,LTD\r
4401BB (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
-A0-D8-3D (hex) Fiberhome Telecommunication Technologies Co.,LTD\r
-A0D83D (base 16) Fiberhome Telecommunication Technologies Co.,LTD\r
- No.5 DongXin Road\r
- Wuhan Hubei 430074\r
- CN\r
-\r
58-F2-FC (hex) Huawei Device Co., Ltd.\r
58F2FC (base 16) Huawei Device Co., Ltd.\r
No.2 of Xincheng Road, Songshan Lake Zone\r
Dongguan Guangdong 523808\r
CN\r
\r
-64-3A-EA (hex) Cisco Systems, Inc\r
-643AEA (base 16) Cisco Systems, Inc\r
- 80 West Tasman Drive\r
- San Jose CA 94568\r
- US\r
-\r
50-70-43 (hex) BSkyB Ltd\r
507043 (base 16) BSkyB Ltd\r
130 Kings Road\r
Brentwood Essex 08854\r
GB\r
\r
+A0-D8-3D (hex) Fiberhome Telecommunication Technologies Co.,LTD\r
+A0D83D (base 16) Fiberhome Telecommunication Technologies Co.,LTD\r
+ No.5 DongXin Road\r
+ Wuhan Hubei 430074\r
+ CN\r
+\r
D0-14-11 (hex) IEEE Registration Authority\r
D01411 (base 16) IEEE Registration Authority\r
445 Hoes Lane\r
Chengdu Sichuan 611330\r
CN\r
\r
+64-3A-EA (hex) Cisco Systems, Inc\r
+643AEA (base 16) Cisco Systems, Inc\r
+ 80 West Tasman Drive\r
+ San Jose CA 94568\r
+ US\r
+\r
E8-13-6E (hex) HUAWEI TECHNOLOGIES CO.,LTD\r
E8136E (base 16) HUAWEI TECHNOLOGIES CO.,LTD\r
No.2 Xin Cheng Road, Room R6,Songshan Lake Technology Park\r
Shenzhen 518055\r
CN\r
\r
+E0-B2-60 (hex) TENO NETWORK TECHNOLOGIES COMPANY LIMITED\r
+E0B260 (base 16) TENO NETWORK TECHNOLOGIES COMPANY LIMITED\r
+ RM 1302, 13/F CHEONG K BLDG 84-86 DES VOEUX RD CENTRAL HONG KONG\r
+ Hong Kong 999077\r
+ HK\r
+\r
+48-23-35 (hex) Dialog Semiconductor Hellas SA\r
+482335 (base 16) Dialog Semiconductor Hellas SA\r
+ Achileos 8 & Katsoni Str\r
+ Kalithea, Athens 17674\r
+ GR\r
+\r
+E8-DA-20 (hex) Nintendo Co.,Ltd\r
+E8DA20 (base 16) Nintendo Co.,Ltd\r
+ 11-1 HOKOTATE-CHO KAMITOBA,MINAMI-KU\r
+ KYOTO KYOTO 601-8501\r
+ JP\r
+\r
10-BC-97 (hex) vivo Mobile Communication Co., Ltd.\r
10BC97 (base 16) vivo Mobile Communication Co., Ltd.\r
#283,BBK Road\r
Wusha,Chang'An DongGuan City,Guangdong, 523860\r
CN\r
\r
+7C-F9-A0 (hex) Fiberhome Telecommunication Technologies Co.,LTD\r
+7CF9A0 (base 16) Fiberhome Telecommunication Technologies Co.,LTD\r
+ No.5 DongXin Road\r
+ Wuhan Hubei 430074\r
+ CN\r
+\r
+6C-A4-D1 (hex) Fiberhome Telecommunication Technologies Co.,LTD\r
+6CA4D1 (base 16) Fiberhome Telecommunication Technologies Co.,LTD\r
+ No.5 DongXin Road\r
+ Wuhan Hubei 430074\r
+ CN\r
+\r
DC-D4-44 (hex) Huawei Device Co., Ltd.\r
DCD444 (base 16) Huawei Device Co., Ltd.\r
No.2 of Xincheng Road, Songshan Lake Zone\r
Dongguan Guangdong 523808\r
CN\r
\r
-E0-B2-60 (hex) TENO NETWORK TECHNOLOGIES COMPANY LIMITED\r
-E0B260 (base 16) TENO NETWORK TECHNOLOGIES COMPANY LIMITED\r
- RM 1302, 13/F CHEONG K BLDG 84-86 DES VOEUX RD CENTRAL HONG KONG\r
- Hong Kong 999077\r
- HK\r
-\r
A4-46-B4 (hex) Huawei Device Co., Ltd.\r
A446B4 (base 16) Huawei Device Co., Ltd.\r
No.2 of Xincheng Road, Songshan Lake Zone\r
Cambridge MA 02142\r
US\r
\r
-E8-DA-20 (hex) Nintendo Co.,Ltd\r
-E8DA20 (base 16) Nintendo Co.,Ltd\r
- 11-1 HOKOTATE-CHO KAMITOBA,MINAMI-KU\r
- KYOTO KYOTO 601-8501\r
- JP\r
+EC-6C-9A (hex) Arcadyan Corporation\r
+EC6C9A (base 16) Arcadyan Corporation\r
+ No.8, Sec.2, Guangfu Rd.\r
+ Hsinchu City Hsinchu 30071\r
+ TW\r
\r
-48-23-35 (hex) Dialog Semiconductor Hellas SA\r
-482335 (base 16) Dialog Semiconductor Hellas SA\r
- Achileos 8 & Katsoni Str\r
- Kalithea, Athens 17674\r
- GR\r
+34-6D-9C (hex) Carrier Corporation\r
+346D9C (base 16) Carrier Corporation\r
+ 6304 Thompson Rd\r
+ East Syracuse NY 13057\r
+ US\r
\r
8C-85-C1 (hex) Aruba, a Hewlett Packard Enterprise Company\r
8C85C1 (base 16) Aruba, a Hewlett Packard Enterprise Company\r
Reno NV 89507\r
US\r
\r
-7C-F9-A0 (hex) Fiberhome Telecommunication Technologies Co.,LTD\r
-7CF9A0 (base 16) Fiberhome Telecommunication Technologies Co.,LTD\r
- No.5 DongXin Road\r
- Wuhan Hubei 430074\r
- CN\r
+78-2B-64 (hex) Bose Corporation\r
+782B64 (base 16) Bose Corporation\r
+ The Mountain\r
+ Framingham MA 01701-9168\r
+ US\r
\r
-6C-A4-D1 (hex) Fiberhome Telecommunication Technologies Co.,LTD\r
-6CA4D1 (base 16) Fiberhome Telecommunication Technologies Co.,LTD\r
- No.5 DongXin Road\r
- Wuhan Hubei 430074\r
+D4-F7-56 (hex) zte corporation\r
+D4F756 (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
54-AB-3A (hex) Quanta Computer Inc.\r
TAIPEI 33377\r
TW\r
\r
-EC-6C-9A (hex) Arcadyan Corporation\r
-EC6C9A (base 16) Arcadyan Corporation\r
- No.8, Sec.2, Guangfu Rd.\r
- Hsinchu City Hsinchu 30071\r
- TW\r
-\r
-34-6D-9C (hex) Carrier Corporation\r
-346D9C (base 16) Carrier Corporation\r
- 6304 Thompson Rd\r
- East Syracuse NY 13057\r
- US\r
-\r
-D4-F7-56 (hex) zte corporation\r
-D4F756 (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
E0-69-3A (hex) Innophase Inc.\r
E0693A (base 16) Innophase Inc.\r
6815 Flanders Drive Suite 150\r
San Diego CA 92121\r
US\r
\r
-54-88-DE (hex) Cisco Systems, Inc\r
-5488DE (base 16) Cisco Systems, Inc\r
- 80 West Tasman Drive\r
- San Jose CA 94568\r
- US\r
-\r
-78-2B-64 (hex) Bose Corporation\r
-782B64 (base 16) Bose Corporation\r
- The Mountain\r
- Framingham MA 01701-9168\r
- US\r
-\r
24-FD-0D (hex) Intelbras\r
24FD0D (base 16) Intelbras\r
BR 101, KM 210\r
FUZHOU FUJIAN 350002\r
CN\r
\r
-9C-6B-37 (hex) Renesas Electronics (Penang) Sdn. Bhd.\r
-9C6B37 (base 16) Renesas Electronics (Penang) Sdn. Bhd.\r
- Phase 3, Bayan Lepas FIZ\r
- Bayan Lepas Penang 11900\r
- MY\r
-\r
-A8-37-59 (hex) Huawei Device Co., Ltd.\r
-A83759 (base 16) Huawei Device Co., Ltd.\r
- No.2 of Xincheng Road, Songshan Lake Zone\r
- Dongguan Guangdong 523808\r
- CN\r
-\r
40-AA-56 (hex) China Dragon Technology Limited\r
40AA56 (base 16) China Dragon Technology Limited\r
B4 Bldg.Haoshan 1st Industry Park,\r
Sacramento CA 95814\r
US\r
\r
+54-88-DE (hex) Cisco Systems, Inc\r
+5488DE (base 16) Cisco Systems, Inc\r
+ 80 West Tasman Drive\r
+ San Jose CA 94568\r
+ US\r
+\r
4C-93-A6 (hex) IEEE Registration Authority\r
4C93A6 (base 16) IEEE Registration Authority\r
445 Hoes Lane\r
Seoul Seocho-dong,Seocho-gu 137-863\r
KR\r
\r
+A8-37-59 (hex) Huawei Device Co., Ltd.\r
+A83759 (base 16) Huawei Device Co., Ltd.\r
+ No.2 of Xincheng Road, Songshan Lake Zone\r
+ Dongguan Guangdong 523808\r
+ CN\r
+\r
50-F7-ED (hex) Huawei Device Co., Ltd.\r
50F7ED (base 16) Huawei Device Co., Ltd.\r
No.2 of Xincheng Road, Songshan Lake Zone\r
Weifang Shandong 261205\r
CN\r
\r
+9C-6B-37 (hex) Renesas Electronics (Penang) Sdn. Bhd.\r
+9C6B37 (base 16) Renesas Electronics (Penang) Sdn. Bhd.\r
+ Phase 3, Bayan Lepas FIZ\r
+ Bayan Lepas Penang 11900\r
+ MY\r
+\r
BC-7E-8B (hex) Samsung Electronics Co.,Ltd\r
BC7E8B (base 16) Samsung Electronics Co.,Ltd\r
129, Samsung-ro, Youngtongl-Gu\r
Suwon Gyeonggi-Do 16677\r
KR\r
\r
-0C-31-DC (hex) HUAWEI TECHNOLOGIES CO.,LTD\r
-0C31DC (base 16) HUAWEI TECHNOLOGIES CO.,LTD\r
- No.2 Xin Cheng Road, Room R6,Songshan Lake Technology Park\r
- Dongguan 523808\r
- CN\r
+54-77-8A (hex) Hewlett Packard Enterprise\r
+54778A (base 16) Hewlett Packard Enterprise\r
+ 8000 Foothills Blvd.\r
+ Roseville CA 95747\r
+ US\r
\r
40-DD-D1 (hex) Beautiful Card Corporation\r
40DDD1 (base 16) Beautiful Card Corporation\r
Mianyang Sichuan 622650\r
CN\r
\r
-54-77-8A (hex) Hewlett Packard Enterprise\r
-54778A (base 16) Hewlett Packard Enterprise\r
- 8000 Foothills Blvd.\r
- Roseville CA 95747\r
- US\r
-\r
-24-71-52 (hex) Dell Inc.\r
-247152 (base 16) Dell Inc.\r
- One Dell Way\r
- Round Rock TX 78682\r
- US\r
-\r
64-33-DB (hex) Texas Instruments\r
6433DB (base 16) Texas Instruments\r
12500 TI Blvd\r
Guangzhou Guangdong 510555\r
CN\r
\r
+0C-31-DC (hex) HUAWEI TECHNOLOGIES CO.,LTD\r
+0C31DC (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
00-40-AB (hex) ROLAND DG CORPORATION\r
0040AB (base 16) ROLAND DG CORPORATION\r
1-1-3 Shinmiyakoda, Kita-ku\r
Hamamatsu-shi Shizuoka-ken 431-2103\r
JP\r
\r
+24-71-52 (hex) Dell Inc.\r
+247152 (base 16) Dell Inc.\r
+ One Dell Way\r
+ Round Rock TX 78682\r
+ US\r
+\r
00-12-B4 (hex) Work Microwave GmbH\r
0012B4 (base 16) Work Microwave GmbH\r
Rudolf-Diesel-Ring 2\r
Holzkirchen 83607\r
DE\r
\r
-24-B1-05 (hex) Prama Hikvision India Private Limited\r
-24B105 (base 16) Prama Hikvision India Private Limited\r
- Prama Hikvision India Pvt Ltd, Akurli Cross Road No 1, Kandivali East\r
- Mumbai Maharashtra 400101\r
- IN\r
-\r
-70-9C-D1 (hex) Intel Corporate\r
-709CD1 (base 16) Intel Corporate\r
- Lot 8, Jalan Hi-Tech 2/3 \r
- Kulim Kedah 09000\r
- MY\r
-\r
-80-60-B7 (hex) CLOUD NETWORK TECHNOLOGY SINGAPORE PTE. LTD.\r
-8060B7 (base 16) CLOUD NETWORK TECHNOLOGY SINGAPORE PTE. LTD.\r
- B22 Building,NO.51 Tongle Road, Shajing Town, Jiangnan District, Nanning, Guangxi Province, China\r
- Nanning Guangxi 530007\r
- CN\r
-\r
90-AA-C3 (hex) Hitron Technologies. Inc\r
90AAC3 (base 16) Hitron Technologies. Inc\r
No. 1-8, Lising 1st Rd. Hsinchu Science Park, Hsinchu, 300, Taiwan, R.O.C\r
Espoo Paimio 02600\r
FI\r
\r
+80-60-B7 (hex) CLOUD NETWORK TECHNOLOGY SINGAPORE PTE. LTD.\r
+8060B7 (base 16) CLOUD NETWORK TECHNOLOGY SINGAPORE PTE. LTD.\r
+ B22 Building,NO.51 Tongle Road, Shajing Town, Jiangnan District, Nanning, Guangxi Province, China\r
+ Nanning Guangxi 530007\r
+ CN\r
+\r
DC-72-23 (hex) Hui Zhou Gaoshengda Technology Co.,LTD\r
DC7223 (base 16) Hui Zhou Gaoshengda Technology Co.,LTD\r
No.75,Zhongkai High-Tech Development District,Huizhou\r
Sunnyvale CA 94089\r
US\r
\r
+24-B1-05 (hex) Prama Hikvision India Private Limited\r
+24B105 (base 16) Prama Hikvision India Private Limited\r
+ Prama Hikvision India Pvt Ltd, Akurli Cross Road No 1, Kandivali East\r
+ Mumbai Maharashtra 400101\r
+ IN\r
+\r
+8C-47-BE (hex) Dell Inc.\r
+8C47BE (base 16) Dell Inc.\r
+ One Dell Way\r
+ Round Rock TX 78682\r
+ US\r
+\r
24-5F-9F (hex) Huawei Device Co., Ltd.\r
245F9F (base 16) Huawei Device Co., Ltd.\r
No.2 of Xincheng Road, Songshan Lake Zone\r
Dongguan Guangdong 523808\r
CN\r
\r
-8C-47-BE (hex) Dell Inc.\r
-8C47BE (base 16) Dell Inc.\r
- One Dell Way\r
- Round Rock TX 78682\r
- US\r
-\r
-14-2C-78 (hex) GooWi Wireless Technology Co., Limited\r
-142C78 (base 16) GooWi Wireless Technology Co., Limited\r
- RM402 Building212, Tairan Technology Park, Futian District\r
- Shenzhen Guangdong 518000\r
- CN\r
-\r
-98-FC-84 (hex) IEEE Registration Authority\r
-98FC84 (base 16) IEEE Registration Authority\r
- 445 Hoes Lane\r
- Piscataway NJ 08554\r
- US\r
-\r
20-F4-4F (hex) Nokia\r
20F44F (base 16) Nokia\r
600 March Road\r
Hanover MD 21076\r
US\r
\r
-78-53-F2 (hex) Roxton Systems Ltd.\r
-7853F2 (base 16) Roxton Systems Ltd.\r
- Floor 4, premise 1, room 6, Ostapovsky proezd,15k2\r
- Moscow Moscow 109316\r
- RU\r
-\r
-9C-69-37 (hex) Qorvo International Pte. Ltd.\r
-9C6937 (base 16) Qorvo International Pte. Ltd.\r
- 1 Changi Business Park Avenue 1\r
- #04-01 486058\r
- SG\r
-\r
F8-2E-3F (hex) HUAWEI TECHNOLOGIES CO.,LTD\r
F82E3F (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
-3C-7C-3F (hex) ASUSTek COMPUTER INC.\r
-3C7C3F (base 16) ASUSTek COMPUTER INC.\r
- 15,Li-Te Rd., Peitou, Taipei 112, Taiwan\r
- Taipei Taiwan 112\r
- TW\r
+9C-69-37 (hex) Qorvo International Pte. Ltd.\r
+9C6937 (base 16) Qorvo International Pte. Ltd.\r
+ 1 Changi Business Park Avenue 1\r
+ #04-01 486058\r
+ SG\r
+\r
+78-53-F2 (hex) Roxton Systems Ltd.\r
+7853F2 (base 16) Roxton Systems Ltd.\r
+ Floor 4, premise 1, room 6, Ostapovsky proezd,15k2\r
+ Moscow Moscow 109316\r
+ RU\r
+\r
+98-FC-84 (hex) IEEE Registration Authority\r
+98FC84 (base 16) IEEE Registration Authority\r
+ 445 Hoes Lane\r
+ Piscataway NJ 08554\r
+ US\r
+\r
+14-2C-78 (hex) GooWi Wireless Technology Co., Limited\r
+142C78 (base 16) GooWi Wireless Technology Co., Limited\r
+ RM402 Building212, Tairan Technology Park, Futian District\r
+ Shenzhen Guangdong 518000\r
+ CN\r
+\r
+EC-4D-3E (hex) Beijing Xiaomi Mobile Software Co., Ltd\r
+EC4D3E (base 16) Beijing Xiaomi Mobile Software Co., Ltd\r
+ The Rainbow City Office Building, 68 Qinghe Middle Street Haidian District\r
+ Beijing Beijing 100085\r
+ CN\r
\r
34-91-6F (hex) UserGate Ltd.\r
34916F (base 16) UserGate Ltd.\r
Irvine CA 92618\r
US\r
\r
-EC-4D-3E (hex) Beijing Xiaomi Mobile Software Co., Ltd\r
-EC4D3E (base 16) Beijing Xiaomi Mobile Software Co., Ltd\r
- The Rainbow City Office Building, 68 Qinghe Middle Street Haidian District\r
- Beijing Beijing 100085\r
- CN\r
+3C-7C-3F (hex) ASUSTek COMPUTER INC.\r
+3C7C3F (base 16) ASUSTek COMPUTER INC.\r
+ 15,Li-Te Rd., Peitou, Taipei 112, Taiwan\r
+ Taipei Taiwan 112\r
+ TW\r
+\r
+8C-D6-7F (hex) EM Microelectronic\r
+8CD67F (base 16) EM Microelectronic\r
+ Rue des Sors 3\r
+ Marin-Epagnier Neuchatel 2074\r
+ CH\r
\r
D8-A4-91 (hex) Huawei Device Co., Ltd.\r
D8A491 (base 16) Huawei Device Co., Ltd.\r
Hsichu Taiwan 300\r
TW\r
\r
-8C-D6-7F (hex) EM Microelectronic\r
-8CD67F (base 16) EM Microelectronic\r
- Rue des Sors 3\r
- Marin-Epagnier Neuchatel 2074\r
- CH\r
-\r
-5C-91-FD (hex) Jaewoncnc\r
-5C91FD (base 16) Jaewoncnc\r
- A-501~507, H-Businesspark, 25 Beobwon-ro11gil, Songpa-gu, Seoul, Korea\r
- Seoul 05836\r
- KR\r
-\r
FC-44-9F (hex) zte corporation\r
FC449F (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-4E-F6 (hex) AzureWave Technology Inc.\r
-204EF6 (base 16) AzureWave Technology Inc.\r
- 8F., No. 94, Baozhong Rd.\r
- New Taipei City Taiwan 231\r
- TW\r
+5C-91-FD (hex) Jaewoncnc\r
+5C91FD (base 16) Jaewoncnc\r
+ A-501~507, H-Businesspark, 25 Beobwon-ro11gil, Songpa-gu, Seoul, Korea\r
+ Seoul 05836\r
+ KR\r
\r
44-35-83 (hex) Apple, Inc.\r
443583 (base 16) Apple, Inc.\r
Cupertino CA 95014\r
US\r
\r
-38-CA-73 (hex) Shenzhen MiaoMing Intelligent Technology Co.,Ltd\r
-38CA73 (base 16) Shenzhen MiaoMing Intelligent Technology Co.,Ltd\r
- Chudong science and technology park, 111 shaxin road, tangxia town,\r
- dongguan city guangdong province 523710\r
+84-EA-97 (hex) Shenzhen iComm Semiconductor CO.,LTD\r
+84EA97 (base 16) Shenzhen iComm Semiconductor CO.,LTD\r
+ Room 501A,Block B,Digital Building,Garden City,No.1079 Nanhai Road,Nanshan District\r
+ Shenzhen 518067\r
CN\r
\r
+A4-7D-9F (hex) Shenzhen iComm Semiconductor CO.,LTD\r
+A47D9F (base 16) Shenzhen iComm Semiconductor CO.,LTD\r
+ Room 504A,Block B,Digital Building,Gargen City,No.1079,Nanhai Road,Nanshan District,Shenzhen.\r
+ Shenzhen 518067\r
+ CN\r
+\r
+20-4E-F6 (hex) AzureWave Technology Inc.\r
+204EF6 (base 16) AzureWave Technology Inc.\r
+ 8F., No. 94, Baozhong Rd.\r
+ New Taipei City Taiwan 231\r
+ TW\r
+\r
6C-0D-C4 (hex) Beijing Xiaomi Electronics Co., Ltd.\r
6C0DC4 (base 16) Beijing Xiaomi Electronics Co., Ltd.\r
Building C, QingHe ShunShiJiaYe Technology Park, #66 ZhuFang Rd, HaiDian District\r
DONG GUAN GUANG DONG 523860\r
CN\r
\r
-A4-7D-9F (hex) Shenzhen iComm Semiconductor CO.,LTD\r
-A47D9F (base 16) Shenzhen iComm Semiconductor CO.,LTD\r
- Room 504A,Block B,Digital Building,Gargen City,No.1079,Nanhai Road,Nanshan District,Shenzhen.\r
- Shenzhen 518067\r
- CN\r
-\r
-84-EA-97 (hex) Shenzhen iComm Semiconductor CO.,LTD\r
-84EA97 (base 16) Shenzhen iComm Semiconductor CO.,LTD\r
- Room 501A,Block B,Digital Building,Garden City,No.1079 Nanhai Road,Nanshan District\r
- Shenzhen 518067\r
+38-CA-73 (hex) Shenzhen MiaoMing Intelligent Technology Co.,Ltd\r
+38CA73 (base 16) Shenzhen MiaoMing Intelligent Technology Co.,Ltd\r
+ Chudong science and technology park, 111 shaxin road, tangxia town,\r
+ dongguan city guangdong province 523710\r
CN\r
\r
00-55-B1 (hex) Shanghai Baud Data Communication Co.,Ltd.\r
PUDONG ZHANGJIANG HIGH-TECH PARK SHANGHAI 201203\r
CN\r
\r
-74-90-1F (hex) Ragile Networks Inc.\r
-74901F (base 16) Ragile Networks Inc.\r
- 35649 Embassy common Fremont ca 94536\r
- Fremont CA 94536\r
- US\r
-\r
C0-25-2F (hex) SHENZHEN MERCURY COMMUNICATION TECHNOLOGIES CO.,LTD.\r
C0252F (base 16) SHENZHEN MERCURY COMMUNICATION TECHNOLOGIES CO.,LTD.\r
3/F, Building R1-B, High-Tech Industrial Park, Nanshan District\r
Shenzhen Guangdong 518057\r
CN\r
\r
+88-89-2F (hex) HUAWEI TECHNOLOGIES CO.,LTD\r
+88892F (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
+28-E5-B0 (hex) HUAWEI TECHNOLOGIES CO.,LTD\r
+28E5B0 (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-9F-C6 (hex) Cisco Systems, Inc\r
549FC6 (base 16) Cisco Systems, Inc\r
80 West Tasman Drive\r
San Jose CA 94568\r
US\r
\r
-68-3E-26 (hex) Intel Corporate\r
-683E26 (base 16) Intel Corporate\r
- Lot 8, Jalan Hi-Tech 2/3 \r
- Kulim Kedah 09000\r
- MY\r
-\r
-8C-55-4A (hex) Intel Corporate\r
-8C554A (base 16) Intel Corporate\r
- Lot 8, Jalan Hi-Tech 2/3 \r
- Kulim Kedah 09000\r
- MY\r
+74-90-1F (hex) Ragile Networks Inc.\r
+74901F (base 16) Ragile Networks Inc.\r
+ 35649 Embassy common Fremont ca 94536\r
+ Fremont CA 94536\r
+ US\r
\r
-40-1C-83 (hex) Intel Corporate\r
-401C83 (base 16) Intel Corporate\r
- Lot 8, Jalan Hi-Tech 2/3 \r
- Kulim Kedah 09000\r
- MY\r
+1C-A8-52 (hex) SENSAIO PTE LTD\r
+1CA852 (base 16) SENSAIO PTE LTD\r
+ 160 Robinson Road #14-04\r
+ SINGAPORE SINGAPORE 068914\r
+ SG\r
\r
44-3B-32 (hex) Intelbras\r
443B32 (base 16) Intelbras\r
São José Santa Catarina 88104800\r
BR\r
\r
+4C-02-20 (hex) Xiaomi Communications Co Ltd\r
+4C0220 (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
F8-3B-1D (hex) Technicolor CH USA Inc.\r
F83B1D (base 16) Technicolor CH USA Inc.\r
5030 Sugarloaf Parkway Bldg 6 \r
SHANGHAI 201114\r
CN\r
\r
-78-45-B3 (hex) Huawei Device Co., Ltd.\r
-7845B3 (base 16) Huawei Device Co., Ltd.\r
- No.2 of Xincheng Road, Songshan Lake Zone\r
- Dongguan Guangdong 523808\r
- CN\r
-\r
-20-DC-FD (hex) Huawei Device Co., Ltd.\r
-20DCFD (base 16) Huawei Device Co., Ltd.\r
- No.2 of Xincheng Road, Songshan Lake Zone\r
- Dongguan Guangdong 523808\r
- CN\r
-\r
-FC-65-B3 (hex) Huawei Device Co., Ltd.\r
-FC65B3 (base 16) Huawei Device Co., Ltd.\r
- No.2 of Xincheng Road, Songshan Lake Zone\r
- Dongguan Guangdong 523808\r
- CN\r
-\r
10-9D-7A (hex) Huawei Device Co., Ltd.\r
109D7A (base 16) Huawei Device Co., Ltd.\r
No.2 of Xincheng Road, Songshan Lake Zone\r
Chongqing Chongqing 401336\r
CN\r
\r
-88-89-2F (hex) HUAWEI TECHNOLOGIES CO.,LTD\r
-88892F (base 16) HUAWEI TECHNOLOGIES CO.,LTD\r
- No.2 Xin Cheng Road, Room R6,Songshan Lake Technology Park\r
- Dongguan 523808\r
+C0-94-AD (hex) zte corporation\r
+C094AD (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
-28-E5-B0 (hex) HUAWEI TECHNOLOGIES CO.,LTD\r
-28E5B0 (base 16) HUAWEI TECHNOLOGIES CO.,LTD\r
- No.2 Xin Cheng Road, Room R6,Songshan Lake Technology Park\r
- Dongguan 523808\r
+78-45-B3 (hex) Huawei Device Co., Ltd.\r
+7845B3 (base 16) Huawei Device Co., Ltd.\r
+ No.2 of Xincheng Road, Songshan Lake Zone\r
+ Dongguan Guangdong 523808\r
CN\r
\r
-4C-02-20 (hex) Xiaomi Communications Co Ltd\r
-4C0220 (base 16) Xiaomi Communications Co Ltd\r
- The Rainbow City of China Resources\r
- NO.68, Qinghe Middle Street Haidian District, Beijing 100085\r
+20-DC-FD (hex) Huawei Device Co., Ltd.\r
+20DCFD (base 16) Huawei Device Co., Ltd.\r
+ No.2 of Xincheng Road, Songshan Lake Zone\r
+ Dongguan Guangdong 523808\r
CN\r
\r
-1C-A8-52 (hex) SENSAIO PTE LTD\r
-1CA852 (base 16) SENSAIO PTE LTD\r
- 160 Robinson Road #14-04\r
- SINGAPORE SINGAPORE 068914\r
- SG\r
-\r
-78-7D-F3 (hex) Sterlite Technologies Limited\r
-787DF3 (base 16) Sterlite Technologies Limited\r
- IFFCO Tower, 3rd Floor, Plot No.3, Sector 29,CH Baktawar Singh Rd, Institutional Area,\r
- Gurugram Haryana 122002\r
- IN\r
-\r
-C0-94-AD (hex) zte corporation\r
-C094AD (base 16) zte corporation\r
- 12/F.,zte R&D building ,kejinan Road,Shenzhen,P.R.China\r
- shenzhen guangdong 518057\r
+FC-65-B3 (hex) Huawei Device Co., Ltd.\r
+FC65B3 (base 16) Huawei Device Co., Ltd.\r
+ No.2 of Xincheng Road, Songshan Lake Zone\r
+ Dongguan Guangdong 523808\r
CN\r
\r
D0-21-AC (hex) Yo Labs LLC\r
Stockholm SE-164 80\r
SE\r
\r
+78-7D-F3 (hex) Sterlite Technologies Limited\r
+787DF3 (base 16) Sterlite Technologies Limited\r
+ IFFCO Tower, 3rd Floor, Plot No.3, Sector 29,CH Baktawar Singh Rd, Institutional Area,\r
+ Gurugram Haryana 122002\r
+ IN\r
+\r
00-16-3B (hex) Communications & Power Industries\r
00163B (base 16) Communications & Power Industries\r
Suite , 60 Decibel Road\r
State College PA 16801\r
US\r
\r
-9C-B2-E8 (hex) HUAWEI TECHNOLOGIES CO.,LTD\r
-9CB2E8 (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
-74-73-1D (hex) ifm electronic gmbh\r
-74731D (base 16) ifm electronic gmbh\r
- ifm-Straße 1\r
- Tettnang BW 88069\r
- DE\r
-\r
00-0B-4E (hex) Communications & Power Industries\r
000B4E (base 16) Communications & Power Industries\r
1000 Klein Road\r
Plano TX 75074\r
US\r
\r
-00-03-34 (hex) Omega Engineering Inc.\r
-000334 (base 16) Omega Engineering Inc.\r
- 800 Connecticut Ave. Suite 5N01,\r
- Norwalk CT 06854\r
- US\r
+74-73-1D (hex) ifm electronic gmbh\r
+74731D (base 16) ifm electronic gmbh\r
+ ifm-Straße 1\r
+ Tettnang BW 88069\r
+ DE\r
\r
5C-61-99 (hex) CLOUD NETWORK TECHNOLOGY SINGAPORE PTE. LTD.\r
5C6199 (base 16) CLOUD NETWORK TECHNOLOGY SINGAPORE PTE. LTD.\r
Shanghai Shanghai 201203\r
CN\r
\r
-D0-55-09 (hex) Nintendo Co.,Ltd\r
-D05509 (base 16) Nintendo Co.,Ltd\r
- 11-1 HOKOTATE-CHO KAMITOBA,MINAMI-KU\r
- KYOTO KYOTO 601-8501\r
- JP\r
+9C-B2-E8 (hex) HUAWEI TECHNOLOGIES CO.,LTD\r
+9CB2E8 (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-77-51 (hex) ASMedia Technology Inc.\r
A07751 (base 16) ASMedia Technology Inc.\r
SHENZHEN GUANGDONG 518000\r
CN\r
\r
+D0-55-09 (hex) Nintendo Co.,Ltd\r
+D05509 (base 16) Nintendo Co.,Ltd\r
+ 11-1 HOKOTATE-CHO KAMITOBA,MINAMI-KU\r
+ KYOTO KYOTO 601-8501\r
+ JP\r
+\r
+00-03-34 (hex) Omega Engineering Inc.\r
+000334 (base 16) Omega Engineering Inc.\r
+ 800 Connecticut Ave. Suite 5N01,\r
+ Norwalk CT 06854\r
+ US\r
+\r
14-56-3A (hex) Huawei Device Co., Ltd.\r
14563A (base 16) Huawei Device Co., Ltd.\r
No.2 of Xincheng Road, Songshan Lake Zone\r
Dongguan Guangdong 523808\r
CN\r
\r
-38-FC-98 (hex) Intel Corporate\r
-38FC98 (base 16) Intel Corporate\r
- Lot 8, Jalan Hi-Tech 2/3 \r
- Kulim Kedah 09000\r
- MY\r
+68-72-C3 (hex) Samsung Electronics Co.,Ltd\r
+6872C3 (base 16) Samsung Electronics Co.,Ltd\r
+ 129, Samsung-ro, Youngtongl-Gu\r
+ Suwon Gyeonggi-Do 16677\r
+ KR\r
+\r
+70-B1-3D (hex) Samsung Electronics Co.,Ltd\r
+70B13D (base 16) Samsung Electronics Co.,Ltd\r
+ 129, Samsung-ro, Youngtongl-Gu\r
+ Suwon Gyeonggi-Do 16677\r
+ KR\r
+\r
+F8-E4-3B (hex) ASIX Electronics Corporation\r
+F8E43B (base 16) ASIX Electronics Corporation\r
+ 4F, No. 8, Hsin Ann Road, Hsinchu Science Park\r
+ Hsinchu 30078\r
+ TW\r
+\r
+60-DB-98 (hex) Calix Inc.\r
+60DB98 (base 16) Calix Inc.\r
+ 2777 Orchard Pkwy\r
+ San Jose CA 95131\r
+ US\r
\r
24-94-94 (hex) Hong Kong Bouffalo Lab Limited\r
249494 (base 16) Hong Kong Bouffalo Lab Limited\r
DONG GUAN GUANG DONG 523860\r
CN\r
\r
-60-DB-98 (hex) Calix Inc.\r
-60DB98 (base 16) Calix Inc.\r
- 2777 Orchard Pkwy\r
- San Jose CA 95131\r
+00-34-A1 (hex) RF-LAMBDA USA INC.\r
+0034A1 (base 16) RF-LAMBDA USA INC.\r
+ 9115 Brown Deer Road | San Diego\r
+ CA 92121\r
US\r
\r
-68-72-C3 (hex) Samsung Electronics Co.,Ltd\r
-6872C3 (base 16) Samsung Electronics Co.,Ltd\r
- 129, Samsung-ro, Youngtongl-Gu\r
- Suwon Gyeonggi-Do 16677\r
- KR\r
-\r
-70-B1-3D (hex) Samsung Electronics Co.,Ltd\r
-70B13D (base 16) Samsung Electronics Co.,Ltd\r
- 129, Samsung-ro, Youngtongl-Gu\r
- Suwon Gyeonggi-Do 16677\r
- KR\r
-\r
FC-7F-F1 (hex) Aruba, a Hewlett Packard Enterprise Company\r
FC7FF1 (base 16) Aruba, a Hewlett Packard Enterprise Company\r
3333 Scott Blvd\r
Dongguan 523808\r
CN\r
\r
-F8-E4-3B (hex) ASIX Electronics Corporation\r
-F8E43B (base 16) ASIX Electronics Corporation\r
- 4F, No. 8, Hsin Ann Road, Hsinchu Science Park\r
- Hsinchu 30078\r
- TW\r
-\r
-F8-5E-A0 (hex) Intel Corporate\r
-F85EA0 (base 16) Intel Corporate\r
- Lot 8, Jalan Hi-Tech 2/3 \r
- Kulim Kedah 09000\r
- MY\r
-\r
-50-2F-9B (hex) Intel Corporate\r
-502F9B (base 16) Intel Corporate\r
- Lot 8, Jalan Hi-Tech 2/3 \r
- Kulim Kedah 09000\r
- MY\r
-\r
-48-EF-61 (hex) Huawei Device Co., Ltd.\r
-48EF61 (base 16) Huawei Device Co., Ltd.\r
+78-F0-9B (hex) Huawei Device Co., Ltd.\r
+78F09B (base 16) Huawei Device Co., Ltd.\r
No.2 of Xincheng Road, Songshan Lake Zone\r
Dongguan Guangdong 523808\r
CN\r
\r
-78-F0-9B (hex) Huawei Device Co., Ltd.\r
-78F09B (base 16) Huawei Device Co., Ltd.\r
+48-EF-61 (hex) Huawei Device Co., Ltd.\r
+48EF61 (base 16) Huawei Device Co., Ltd.\r
No.2 of Xincheng Road, Songshan Lake Zone\r
Dongguan Guangdong 523808\r
CN\r
Sunnyvale CA 94089\r
US\r
\r
-00-34-A1 (hex) RF-LAMBDA USA INC.\r
-0034A1 (base 16) RF-LAMBDA USA INC.\r
- 9115 Brown Deer Road | San Diego\r
- CA 92121\r
- US\r
+18-11-71 (hex) Guangzhou Doctorpai Education & Technology Co.,Ltd\r
+181171 (base 16) Guangzhou Doctorpai Education & Technology Co.,Ltd\r
+ Floor 5, Building C1, Greenland Central Plaza\r
+ Huangpu District, Guangzhou Guangdong Province 510700\r
+ CN\r
\r
60-35-73 (hex) Earda Technologies co Ltd\r
603573 (base 16) Earda Technologies co Ltd\r
Chongqing Chongqing 401332\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\r
- Singapore Singapore 609917\r
- SG\r
+F0-2F-74 (hex) ASUSTek COMPUTER INC.\r
+F02F74 (base 16) ASUSTek COMPUTER INC.\r
+ 15,Li-Te Rd., Peitou, Taipei 112, Taiwan\r
+ Taipei Taiwan 112\r
+ TW\r
\r
-00-AD-24 (hex) D-Link International\r
-00AD24 (base 16) D-Link International\r
- 1 Internal Business Park, #03-12,The Synergy\r
- Singapore Singapore 609917\r
- SG\r
+00-6E-02 (hex) Xovis AG\r
+006E02 (base 16) Xovis AG\r
+ Industriestrasse 1\r
+ Zollikofen Bern 3052\r
+ CH\r
\r
60-63-4C (hex) D-Link International\r
60634C (base 16) D-Link International\r
Singapore Singapore 609917\r
SG\r
\r
-F0-2F-74 (hex) ASUSTek COMPUTER INC.\r
-F02F74 (base 16) ASUSTek COMPUTER INC.\r
- 15,Li-Te Rd., Peitou, Taipei 112, Taiwan\r
- Taipei Taiwan 112\r
- TW\r
-\r
-00-6E-02 (hex) Xovis AG\r
-006E02 (base 16) Xovis AG\r
- Industriestrasse 1\r
- Zollikofen Bern 3052\r
- CH\r
+78-98-E8 (hex) D-Link International\r
+7898E8 (base 16) D-Link International\r
+ 1 Internal Business Park, #03-12,The Synergy\r
+ Singapore Singapore 609917\r
+ SG\r
\r
AC-F8-5C (hex) Chengdu Higon Integrated Circuit Design Co,. Ltd.\r
ACF85C (base 16) Chengdu Higon Integrated Circuit Design Co,. Ltd.\r
Chengdu Sichuan 610041\r
CN\r
\r
-18-11-71 (hex) Guangzhou Doctorpai Education & Technology Co.,Ltd\r
-181171 (base 16) Guangzhou Doctorpai Education & Technology Co.,Ltd\r
- Floor 5, Building C1, Greenland Central Plaza\r
- Huangpu District, Guangzhou Guangdong Province 510700\r
- CN\r
+44-F2-1B (hex) Apple, Inc.\r
+44F21B (base 16) Apple, Inc.\r
+ 1 Infinite Loop\r
+ Cupertino CA 95014\r
+ US\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\r
+ Singapore Singapore 609917\r
+ SG\r
+\r
+00-AD-24 (hex) D-Link International\r
+00AD24 (base 16) D-Link International\r
+ 1 Internal Business Park, #03-12,The Synergy\r
+ Singapore Singapore 609917\r
+ SG\r
\r
E0-6D-17 (hex) Apple, Inc.\r
E06D17 (base 16) Apple, Inc.\r
Cupertino CA 95014\r
US\r
\r
-78-98-E8 (hex) D-Link International\r
-7898E8 (base 16) D-Link International\r
- 1 Internal Business Park, #03-12,The Synergy\r
- Singapore Singapore 609917\r
- SG\r
-\r
-44-F2-1B (hex) Apple, Inc.\r
-44F21B (base 16) Apple, Inc.\r
- 1 Infinite Loop\r
- Cupertino CA 95014\r
- US\r
-\r
74-65-0C (hex) Apple, Inc.\r
74650C (base 16) Apple, Inc.\r
1 Infinite Loop\r
Cupertino CA 95014\r
US\r
\r
-FC-D4-36 (hex) Motorola Mobility LLC, a Lenovo Company\r
-FCD436 (base 16) Motorola Mobility LLC, a Lenovo Company\r
- 222 West Merchandise Mart Plaza\r
- Chicago IL 60654\r
- US\r
-\r
-0C-EC-8D (hex) Motorola Mobility LLC, a Lenovo Company\r
-0CEC8D (base 16) Motorola Mobility LLC, a Lenovo Company\r
- 222 West Merchandise Mart Plaza\r
- Chicago IL 60654\r
- US\r
-\r
18-4F-5D (hex) JRC Mobility Inc.\r
184F5D (base 16) JRC Mobility Inc.\r
NAKANO CENTRAL PARK EAST 10-1, Nakano 4-chome\r
NO.68, Qinghe Middle Street Haidian District, Beijing 100085\r
CN\r
\r
-08-CB-E5 (hex) R3 - Reliable Realtime Radio Communications GmbH\r
-08CBE5 (base 16) R3 - Reliable Realtime Radio Communications GmbH\r
- Bismarckstrasse 10-12\r
- Berlin Berlin 10625\r
- DE\r
-\r
-F0-23-AE (hex) AMPAK Technology,Inc.\r
-F023AE (base 16) AMPAK Technology,Inc.\r
- 3F, No.15-1 Zhonghua Road, Hsinchu Industrail Park, Hukou,\r
- Hsinchu Hsinchu,Taiwan R.O.C. 30352\r
- TW\r
-\r
E0-77-26 (hex) Huawei Device Co., Ltd.\r
E07726 (base 16) Huawei Device Co., Ltd.\r
No.2 of Xincheng Road, Songshan Lake Zone\r
San Jose CA 95134\r
US\r
\r
+FC-D4-36 (hex) Motorola Mobility LLC, a Lenovo Company\r
+FCD436 (base 16) Motorola Mobility LLC, a Lenovo Company\r
+ 222 West Merchandise Mart Plaza\r
+ Chicago IL 60654\r
+ US\r
+\r
+0C-EC-8D (hex) Motorola Mobility LLC, a Lenovo Company\r
+0CEC8D (base 16) Motorola Mobility LLC, a Lenovo Company\r
+ 222 West Merchandise Mart Plaza\r
+ Chicago IL 60654\r
+ US\r
+\r
+08-CB-E5 (hex) R3 - Reliable Realtime Radio Communications GmbH\r
+08CBE5 (base 16) R3 - Reliable Realtime Radio Communications GmbH\r
+ Bismarckstrasse 10-12\r
+ Berlin Berlin 10625\r
+ DE\r
+\r
+F0-23-AE (hex) AMPAK Technology,Inc.\r
+F023AE (base 16) AMPAK Technology,Inc.\r
+ 3F, No.15-1 Zhonghua Road, Hsinchu Industrail Park, Hukou,\r
+ Hsinchu Hsinchu,Taiwan R.O.C. 30352\r
+ TW\r
+\r
A8-9A-D7 (hex) Nokia\r
A89AD7 (base 16) Nokia\r
600 March Road\r
Dallas TX 75243\r
US\r
\r
+AC-AE-19 (hex) Roku, Inc\r
+ACAE19 (base 16) Roku, Inc\r
+ 1155 Coleman Ave\r
+ San Jose CA 95110\r
+ US\r
+\r
+D4-39-B8 (hex) Ciena Corporation\r
+D439B8 (base 16) Ciena Corporation\r
+ 7035 Ridge Road\r
+ Hanover MD 21076\r
+ US\r
+\r
30-C3-D9 (hex) ALPSALPINE CO,.LTD\r
30C3D9 (base 16) ALPSALPINE CO,.LTD\r
6-1\r
Soma-city, Fukushima-pref., 976-8501\r
JP\r
\r
+34-FE-C5 (hex) Shenzhen Sunwoda intelligent hardware Co.,Ltd\r
+34FEC5 (base 16) Shenzhen Sunwoda intelligent hardware Co.,Ltd\r
+ No.6-6,Yan Shan Rd.,Baoan District,Shenzhen City,China\r
+ Shenzhen Guangdong 518105\r
+ CN\r
+\r
+74-E9-BF (hex) HUAWEI TECHNOLOGIES CO.,LTD\r
+74E9BF (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
+D8-10-9F (hex) HUAWEI TECHNOLOGIES CO.,LTD\r
+D8109F (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
+3C-54-47 (hex) HUAWEI TECHNOLOGIES CO.,LTD\r
+3C5447 (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
+00-6B-6F (hex) HUAWEI TECHNOLOGIES CO.,LTD\r
+006B6F (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
+14-B2-E5 (hex) Shenzhen iComm Semiconductor CO.,LTD\r
+14B2E5 (base 16) Shenzhen iComm Semiconductor CO.,LTD\r
+ Room 504A,Block B,Digital Building,Gargen City,No.1079,Nanhai Road,Nanshan District,Shenzhen.\r
+ Shenzhen 518067\r
+ CN\r
+\r
+A8-F7-66 (hex) ITE Tech Inc\r
+A8F766 (base 16) ITE Tech Inc\r
+ 3F, No.13, Chuangsin 1st Rd., Hsinchu Science Park\r
+ Hsinchu Taiwan 30076\r
+ TW\r
+\r
+00-25-DF (hex) Taser International Inc.\r
+0025DF (base 16) Taser International Inc.\r
+ 17800 N 85th St.\r
+ Scottsdale AZ 85255\r
+ US\r
+\r
+00-21-3E (hex) TomTom International BV\r
+00213E (base 16) TomTom International BV\r
+ Oosterdoksstraat 114\r
+ Amsterdam North Holland 1011 DK\r
+ NL\r
+\r
+FC-0C-45 (hex) Shenzhen SuperElectron Technology Co.,Ltd.\r
+FC0C45 (base 16) Shenzhen SuperElectron Technology Co.,Ltd.\r
+ 1213-1214, haosheng business center, dongbin road, nanshan street, nanshan district, shenzhen city\r
+ Shenzhen Guangdong 518000\r
+ CN\r
+\r
+54-67-E6 (hex) SHENZHEN MTC CO LTD\r
+5467E6 (base 16) SHENZHEN MTC CO LTD\r
+ 5th Floor, 3rd Building, SHENZHEN MTC Industrial Park, XiaLilang Rd, Nanwan Street, Long’gang District\r
+ Shenzhen Guangdong 518100\r
+ CN\r
+\r
+70-9C-D1 (hex) Intel Corporate\r
+709CD1 (base 16) Intel Corporate\r
+ Lot 8, Jalan Hi-Tech 2/3 \r
+ Kulim Kedah 09000\r
+ MY\r
+\r
+68-3E-26 (hex) Intel Corporate\r
+683E26 (base 16) Intel Corporate\r
+ Lot 8, Jalan Hi-Tech 2/3 \r
+ Kulim Kedah 09000\r
+ MY\r
+\r
+8C-55-4A (hex) Intel Corporate\r
+8C554A (base 16) Intel Corporate\r
+ Lot 8, Jalan Hi-Tech 2/3 \r
+ Kulim Kedah 09000\r
+ MY\r
+\r
+40-1C-83 (hex) Intel Corporate\r
+401C83 (base 16) Intel Corporate\r
+ Lot 8, Jalan Hi-Tech 2/3 \r
+ Kulim Kedah 09000\r
+ MY\r
+\r
+38-FC-98 (hex) Intel Corporate\r
+38FC98 (base 16) Intel Corporate\r
+ Lot 8, Jalan Hi-Tech 2/3 \r
+ Kulim Kedah 09000\r
+ MY\r
+\r
+50-2F-9B (hex) Intel Corporate\r
+502F9B (base 16) Intel Corporate\r
+ Lot 8, Jalan Hi-Tech 2/3 \r
+ Kulim Kedah 09000\r
+ MY\r
+\r
+F8-5E-A0 (hex) Intel Corporate\r
+F85EA0 (base 16) Intel Corporate\r
+ Lot 8, Jalan Hi-Tech 2/3 \r
+ Kulim Kedah 09000\r
+ MY\r
+\r
+A4-6B-B6 (hex) Intel Corporate\r
+A46BB6 (base 16) Intel Corporate\r
+ Lot 8, Jalan Hi-Tech 2/3 \r
+ Kulim Kedah 09000\r
+ MY\r
+\r
+8C-DE-F9 (hex) Beijing Xiaomi Mobile Software Co., Ltd\r
+8CDEF9 (base 16) Beijing Xiaomi Mobile Software Co., Ltd\r
+ The Rainbow City Office Building, 68 Qinghe Middle Street Haidian District\r
+ Beijing Beijing 100085\r
+ CN\r
+\r
+A0-3D-6E (hex) Cisco Systems, Inc\r
+A03D6E (base 16) Cisco Systems, Inc\r
+ 80 West Tasman Drive\r
+ San Jose CA 94568\r
+ US\r
+\r
+B0-8B-D0 (hex) Cisco Systems, Inc\r
+B08BD0 (base 16) Cisco Systems, Inc\r
+ 80 West Tasman Drive\r
+ San Jose CA 94568\r
+ US\r
+\r
+D0-3C-1F (hex) Intel Corporate\r
+D03C1F (base 16) Intel Corporate\r
+ Lot 8, Jalan Hi-Tech 2/3 \r
+ Kulim Kedah 09000\r
+ MY\r
+\r
+00-0E-B6 (hex) Riverbed Technology, Inc.\r
+000EB6 (base 16) Riverbed Technology, Inc.\r
+ 680 Folsom St\r
+ San Francisco CA 94107\r
+ US\r
+\r
+84-44-AF (hex) Zhejiang Tmall Technology Co., Ltd.\r
+8444AF (base 16) Zhejiang Tmall Technology Co., Ltd.\r
+ Ali Center,No.3331 Keyuan South RD (Shenzhen bay), Nanshan District, Shenzhen Guangdong province\r
+ Shenzhen GuangDong 518000\r
+ CN\r
+\r
+E4-BF-FA (hex) Technicolor CH USA Inc.\r
+E4BFFA (base 16) Technicolor CH USA Inc.\r
+ 5030 Sugarloaf Parkway Bldg 6 \r
+ Lawrenceville GA 30044\r
+ US\r
+\r
+54-3A-D6 (hex) Samsung Electronics Co.,Ltd\r
+543AD6 (base 16) Samsung Electronics Co.,Ltd\r
+ 129, Samsung-ro, Youngtongl-Gu\r
+ Suwon Gyeonggi-Do 16677\r
+ KR\r
+\r
+14-23-0A (hex) HUAWEI TECHNOLOGIES CO.,LTD\r
+14230A (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-AE-A8 (hex) HUAWEI TECHNOLOGIES CO.,LTD\r
+58AEA8 (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-D7-04 (hex) HUAWEI TECHNOLOGIES CO.,LTD\r
+6CD704 (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
+00-77-E4 (hex) Nokia Solutions and Networks GmbH & Co. KG\r
+0077E4 (base 16) Nokia Solutions and Networks GmbH & Co. KG\r
+ Werinherstrasse 91\r
+ München Bavaria D-81541\r
+ DE\r
+\r
+48-EC-5B (hex) Nokia Solutions and Networks GmbH & Co. KG\r
+48EC5B (base 16) Nokia Solutions and Networks GmbH & Co. KG\r
+ Werinherstrasse 91\r
+ München Bavaria D-81541\r
+ DE\r
+\r
+58-AE-2B (hex) Huawei Device Co., Ltd.\r
+58AE2B (base 16) Huawei Device Co., Ltd.\r
+ No.2 of Xincheng Road, Songshan Lake Zone\r
+ Dongguan Guangdong 523808\r
+ CN\r
+\r
+8C-64-D4 (hex) Hyeco Smart Tech Co.,Ltd\r
+8C64D4 (base 16) Hyeco Smart Tech Co.,Ltd\r
+ 12 Beiqian Lane,Industrial Park\r
+ Suzhou Jiangsu 215000\r
+ CN\r
+\r
+D8-14-DF (hex) TCL King Electrical Appliances (Huizhou) Co., Ltd\r
+D814DF (base 16) TCL King Electrical Appliances (Huizhou) Co., Ltd\r
+ 10F, TCL Multimedia Building, TCL International E City, No.1001 Zhongshanyuan Rd., Nanshan District\r
+ Shenzhen Guangdong 518052\r
+ CN\r
+\r
+90-02-7A (hex) Shenzhen Sworix Techonlogy Co., Ltd\r
+90027A (base 16) Shenzhen Sworix Techonlogy Co., Ltd\r
+ Room202, 2nd floor, Jianghao commercial center, Jianghao Industrial area,Jihua road 430, Bantian, Longgang\r
+ Shenzhen 518129\r
+ CN\r
+\r
+84-5C-F3 (hex) Intel Corporate\r
+845CF3 (base 16) Intel Corporate\r
+ Lot 8, Jalan Hi-Tech 2/3 \r
+ Kulim Kedah 09000\r
+ MY\r
+\r
+54-46-17 (hex) zte corporation\r
+544617 (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
+5C-85-F8 (hex) SHENZHEN KAIFA TECHNOLOGY CO.,LTD.\r
+5C85F8 (base 16) SHENZHEN KAIFA TECHNOLOGY CO.,LTD.\r
+ 7006 Caitian Rd., Futian Dist. \r
+ Shen Zhen Guang Dong 518035\r
+ CN\r
+\r
+00-08-B0 (hex) HUBER+SUHNER\r
+0008B0 (base 16) HUBER+SUHNER\r
+ Benzstraße 4\r
+ 41836 Hückelhoven-Baal NRW 41836\r
+ DE\r
+\r
+D0-5A-FD (hex) Realme Chongqing Mobile Telecommunications Corp.,Ltd.\r
+D05AFD (base 16) Realme Chongqing Mobile Telecommunications Corp.,Ltd.\r
+ No.178 Yulong Avenue, Yufengshan, Yubei District, Chongqing.\r
+ Chongqing China 401120\r
+ CN\r
+\r
+9C-BC-F0 (hex) Xiaomi Communications Co Ltd\r
+9CBCF0 (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
+80-22-78 (hex) China Mobile IOT Company Limited\r
+802278 (base 16) China Mobile IOT Company Limited\r
+ NO.8 Yu Ma Road, NanAn Area\r
+ Chongqing Chongqing 401336\r
+ CN\r
+\r
+90-3C-B3 (hex) Edgecore Networks Corporation\r
+903CB3 (base 16) Edgecore Networks Corporation\r
+ 1 Creation RD 3.\r
+ Hsinchu 30077\r
+ TW\r
+\r
+2C-79-3D (hex) Boditech Med\r
+2C793D (base 16) Boditech Med\r
+ 43, Geodudanji 1-gil, Dongnae-myeon, \r
+ Chuncheon-si, Gangwon-do 24398\r
+ KR\r
+\r
+64-D7-C0 (hex) Huawei Device Co., Ltd.\r
+64D7C0 (base 16) Huawei Device Co., Ltd.\r
+ No.2 of Xincheng Road, Songshan Lake Zone\r
+ Dongguan Guangdong 523808\r
+ CN\r
+\r
+94-60-10 (hex) Huawei Device Co., Ltd.\r
+946010 (base 16) Huawei Device Co., Ltd.\r
+ No.2 of Xincheng Road, Songshan Lake Zone\r
+ Dongguan Guangdong 523808\r
+ CN\r
+\r
7C-8A-E1 (hex) COMPAL INFORMATION (KUNSHAN) CO., LTD. \r
7C8AE1 (base 16) COMPAL INFORMATION (KUNSHAN) CO., LTD. \r
NO. 25, THE 3RD Street KUNSHAN EXPORT PROCESSING ZONE \r
shenzhen guanggong 518127\r
CN\r
\r
-74-8F-4D (hex) MEN Mikro Elektronik GmbH\r
-748F4D (base 16) MEN Mikro Elektronik GmbH\r
- Neuwieder Str. 3 - 7\r
- Nuernberg Bavaria 90411\r
- DE\r
-\r
50-67-87 (hex) Planet Networks\r
506787 (base 16) Planet Networks\r
1 Ivy Crest Ln\r
HaiDian District, Beijing 100089\r
CN\r
\r
-00-12-AD (hex) IDS GmbH\r
-0012AD (base 16) IDS GmbH\r
- Nobelstraße, 18\r
- Ettlingen Baden-Württemberg 76275\r
- DE\r
-\r
00-12-A0 (hex) NeoMeridian Sdn Bhd\r
0012A0 (base 16) NeoMeridian Sdn Bhd\r
3A-1, Perdana The Place\r
Shenzhen Guangdong 518055\r
CN\r
\r
+F0-46-3B (hex) Comcast Cable Corporation\r
+F0463B (base 16) Comcast Cable Corporation\r
+ 1800 Arch Street\r
+ Philadelphia PA 19103\r
+ US\r
+\r
1C-05-B7 (hex) Chongqing Trantor Technology Co., Ltd.\r
1C05B7 (base 16) Chongqing Trantor Technology Co., Ltd.\r
No.69,Huoju Avenue,Jiulongpo District.\r
Espoo 02600\r
FI\r
\r
-F8-2E-8E (hex) Nanjing Kechen Electric Co., Ltd.\r
-F82E8E (base 16) Nanjing Kechen Electric Co., Ltd.\r
- Room 202, Building 12, No. 50 Daguang road\r
- Nanjing 210001\r
- CN\r
-\r
B4-C9-B9 (hex) Sichuan AI-Link Technology Co., Ltd.\r
B4C9B9 (base 16) Sichuan AI-Link Technology Co., Ltd.\r
Anzhou, Industrial Park\r
Mianyang Sichuan 622650\r
CN\r
\r
-F0-46-3B (hex) Comcast Cable Corporation\r
-F0463B (base 16) Comcast Cable Corporation\r
- 1800 Arch Street\r
- Philadelphia PA 19103\r
- US\r
+F8-2E-8E (hex) Nanjing Kechen Electric Co., Ltd.\r
+F82E8E (base 16) Nanjing Kechen Electric Co., Ltd.\r
+ Room 202, Building 12, No. 50 Daguang road\r
+ Nanjing 210001\r
+ CN\r
\r
68-D7-9A (hex) Ubiquiti Networks Inc.\r
68D79A (base 16) Ubiquiti Networks Inc.\r
Shenzhen Guangdong 518057\r
CN\r
\r
+B4-6E-08 (hex) HUAWEI TECHNOLOGIES CO.,LTD\r
+B46E08 (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
+8C-68-3A (hex) HUAWEI TECHNOLOGIES CO.,LTD\r
+8C683A (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-81-07 (hex) SHENZHEN CHUANGWEI-RGB ELECTRONICS CO.,LTD\r
+B48107 (base 16) SHENZHEN CHUANGWEI-RGB ELECTRONICS CO.,LTD\r
+ Unit East Block22-24/F,Skyworth semiconductor design Bldg., Gaoxin Ave.4.S.,Nanshan District,Shenzhen,China\r
+ SHENZHEN GUANGDONG 518057\r
+ CN\r
+\r
+70-66-55 (hex) AzureWave Technology Inc.\r
+706655 (base 16) AzureWave Technology Inc.\r
+ 8F., No. 94, Baozhong Rd.\r
+ New Taipei City Taiwan 231\r
+ TW\r
+\r
28-64-B0 (hex) Huawei Device Co., Ltd.\r
2864B0 (base 16) Huawei Device Co., Ltd.\r
No.2 of Xincheng Road, Songshan Lake Zone\r
Dongguan Guangdong 523808\r
CN\r
\r
-8C-68-3A (hex) HUAWEI TECHNOLOGIES CO.,LTD\r
-8C683A (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-6E-08 (hex) HUAWEI TECHNOLOGIES CO.,LTD\r
-B46E08 (base 16) HUAWEI TECHNOLOGIES CO.,LTD\r
- No.2 Xin Cheng Road, Room R6,Songshan Lake Technology Park\r
- Dongguan 523808\r
- CN\r
+0C-48-C6 (hex) CELESTICA INC.\r
+0C48C6 (base 16) CELESTICA INC.\r
+ 1900-5140 Yonge Street PO Box 42 \r
+ Toronto Ontario M2N 6L7\r
+ CA\r
\r
00-5E-0C (hex) HMD Global Oy\r
005E0C (base 16) HMD Global Oy\r
Espoo 02600\r
FI\r
\r
-B4-81-07 (hex) SHENZHEN CHUANGWEI-RGB ELECTRONICS CO.,LTD\r
-B48107 (base 16) SHENZHEN CHUANGWEI-RGB ELECTRONICS CO.,LTD\r
- Unit East Block22-24/F,Skyworth semiconductor design Bldg., Gaoxin Ave.4.S.,Nanshan District,Shenzhen,China\r
- SHENZHEN GUANGDONG 518057\r
+A4-29-85 (hex) Sichuan AI-Link Technology Co., Ltd.\r
+A42985 (base 16) Sichuan AI-Link Technology Co., Ltd.\r
+ Anzhou, Industrial Park\r
+ Mianyang Sichuan 622650\r
CN\r
\r
-70-66-55 (hex) AzureWave Technology Inc.\r
-706655 (base 16) AzureWave Technology Inc.\r
- 8F., No. 94, Baozhong Rd.\r
- New Taipei City Taiwan 231\r
- TW\r
-\r
64-7C-34 (hex) Ubee Interactive Co., Limited\r
647C34 (base 16) Ubee Interactive Co., Limited\r
Flat/RM 1202, 12/F, AT Tower \r
Shenzhen Guangdong 518057\r
CN\r
\r
-0C-48-C6 (hex) CELESTICA INC.\r
-0C48C6 (base 16) CELESTICA INC.\r
- 1900-5140 Yonge Street PO Box 42 \r
- Toronto Ontario M2N 6L7\r
- CA\r
-\r
-A4-29-85 (hex) Sichuan AI-Link Technology Co., Ltd.\r
-A42985 (base 16) Sichuan AI-Link Technology Co., Ltd.\r
- Anzhou, Industrial Park\r
- Mianyang Sichuan 622650\r
- CN\r
-\r
-78-AC-44 (hex) Dell Inc.\r
-78AC44 (base 16) Dell Inc.\r
- One Dell Way\r
- Round Rock TX 78682\r
- US\r
-\r
-98-C8-B8 (hex) vivo Mobile Communication Co., Ltd.\r
-98C8B8 (base 16) vivo Mobile Communication Co., Ltd.\r
- #283,BBK Road\r
- Wusha,Chang'An DongGuan City,Guangdong, 523860\r
- CN\r
-\r
B8-D4-E7 (hex) Aruba, a Hewlett Packard Enterprise Company\r
B8D4E7 (base 16) Aruba, a Hewlett Packard Enterprise Company\r
3333 Scott Blvd\r
Santa Clara CA 95054\r
US\r
\r
+BC-09-63 (hex) Apple, Inc.\r
+BC0963 (base 16) Apple, Inc.\r
+ 1 Infinite Loop\r
+ Cupertino CA 95014\r
+ US\r
+\r
D8-4C-90 (hex) Apple, Inc.\r
D84C90 (base 16) Apple, Inc.\r
1 Infinite Loop\r
Cupertino CA 95014\r
US\r
\r
-20-9E-F7 (hex) Extreme Networks, Inc.\r
-209EF7 (base 16) Extreme Networks, Inc.\r
- 6480 Via Del Oro\r
- San Jose CA 95119\r
- US\r
-\r
-BC-09-63 (hex) Apple, Inc.\r
-BC0963 (base 16) Apple, Inc.\r
- 1 Infinite Loop\r
- Cupertino CA 95014\r
- US\r
-\r
18-58-69 (hex) Sailer Electronic Co., Ltd\r
185869 (base 16) Sailer Electronic Co., Ltd\r
No. 6, Sanxi Road, Ximagou Industrial Park, Jianxi District\r
Chongqing China 401120\r
CN\r
\r
+78-AC-44 (hex) Dell Inc.\r
+78AC44 (base 16) Dell Inc.\r
+ One Dell Way\r
+ Round Rock TX 78682\r
+ US\r
+\r
+98-C8-B8 (hex) vivo Mobile Communication Co., Ltd.\r
+98C8B8 (base 16) vivo Mobile Communication Co., Ltd.\r
+ #283,BBK Road\r
+ Wusha,Chang'An DongGuan City,Guangdong, 523860\r
+ CN\r
+\r
78-81-CE (hex) China Mobile Iot Limited company\r
7881CE (base 16) China Mobile Iot Limited company\r
No. 8 Yangliu North Road, Yubei District, Chongqing, China\r
Chong Qing Chong Qing 401120\r
CN\r
\r
-BC-FF-21 (hex) Smart Code(shenzhen)Technology Co.,Ltd\r
-BCFF21 (base 16) Smart Code(shenzhen)Technology Co.,Ltd\r
- Room 1206, Satellite Building,2002 Keyuan Road, Nanshan \r
- Shenzhen Guangdong (Province) 518000\r
- CN\r
-\r
44-5C-E9 (hex) Samsung Electronics Co.,Ltd\r
445CE9 (base 16) Samsung Electronics Co.,Ltd\r
129, Samsung-ro, Youngtongl-Gu\r
Beijing 100053\r
CN\r
\r
+20-9E-F7 (hex) Extreme Networks, Inc.\r
+209EF7 (base 16) Extreme Networks, Inc.\r
+ 6480 Via Del Oro\r
+ San Jose CA 95119\r
+ US\r
+\r
+BC-FF-21 (hex) Smart Code(shenzhen)Technology Co.,Ltd\r
+BCFF21 (base 16) Smart Code(shenzhen)Technology Co.,Ltd\r
+ Room 1206, Satellite Building,2002 Keyuan Road, Nanshan \r
+ Shenzhen Guangdong (Province) 518000\r
+ CN\r
+\r
38-17-30 (hex) Ulrich Lippert GmbH & Co KG\r
381730 (base 16) Ulrich Lippert GmbH & Co KG\r
Christian-Henkel-Str. 12\r
Berlin 12349\r
DE\r
\r
+28-E3-4E (hex) HUAWEI TECHNOLOGIES CO.,LTD\r
+28E34E (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
40-2E-71 (hex) Texas Instruments\r
402E71 (base 16) Texas Instruments\r
12500 TI Blvd\r
Farum DK-3520\r
DK\r
\r
-94-E9-EE (hex) Huawei Device Co., Ltd.\r
-94E9EE (base 16) Huawei Device Co., Ltd.\r
- No.2 of Xincheng Road, Songshan Lake Zone\r
- Dongguan Guangdong 523808\r
- CN\r
-\r
-28-E3-4E (hex) HUAWEI TECHNOLOGIES CO.,LTD\r
-28E34E (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
-D4-52-EE (hex) BSkyB Ltd\r
-D452EE (base 16) BSkyB Ltd\r
- 130 Kings Road\r
- Brentwood Essex 08854\r
- GB\r
-\r
E0-23-FF (hex) Fortinet, Inc.\r
E023FF (base 16) Fortinet, Inc.\r
899 Kifer Road\r
Hsinchu City Hsinchu 30071\r
TW\r
\r
+94-E9-EE (hex) Huawei Device Co., Ltd.\r
+94E9EE (base 16) Huawei Device Co., Ltd.\r
+ No.2 of Xincheng Road, Songshan Lake Zone\r
+ Dongguan Guangdong 523808\r
+ CN\r
+\r
+78-B8-D6 (hex) Zebra Technologies Inc.\r
+78B8D6 (base 16) Zebra Technologies Inc.\r
+ ONE ZEBRA PLAZA\r
+ HOLTSVILLE NY 11742\r
+ US\r
+\r
+D4-52-EE (hex) BSkyB Ltd\r
+D452EE (base 16) BSkyB Ltd\r
+ 130 Kings Road\r
+ Brentwood Essex 08854\r
+ GB\r
+\r
+F4-90-CB (hex) IEEE Registration Authority\r
+F490CB (base 16) IEEE Registration Authority\r
+ 445 Hoes Lane\r
+ Piscataway NJ 08554\r
+ US\r
+\r
9C-F0-29 (hex) Integrated Device Technology (Malaysia) Sdn. Bhd.\r
9CF029 (base 16) Integrated Device Technology (Malaysia) Sdn. Bhd.\r
Phase 3, Bayan Lepas FIZ\r
Stamford CT 06901\r
US\r
\r
-78-B8-D6 (hex) Zebra Technologies Inc.\r
-78B8D6 (base 16) Zebra Technologies Inc.\r
- ONE ZEBRA PLAZA\r
- HOLTSVILLE NY 11742\r
+4C-FC-AA (hex) Tesla,Inc.\r
+4CFCAA (base 16) Tesla,Inc.\r
+ 3500 Deer Creek Rd.\r
+ PALO ALTO CA 94304\r
US\r
\r
+10-CE-45 (hex) Miromico AG\r
+10CE45 (base 16) Miromico AG\r
+ Gallusstrasse 4\r
+ Zurich Zurich CH-8006\r
+ CH\r
+\r
BC-4A-56 (hex) Cisco Systems, Inc\r
BC4A56 (base 16) Cisco Systems, Inc\r
80 West Tasman Drive\r
San Jose CA 94568\r
US\r
\r
+F8-AF-05 (hex) Huawei Device Co., Ltd.\r
+F8AF05 (base 16) Huawei Device Co., Ltd.\r
+ No.2 of Xincheng Road, Songshan Lake Zone\r
+ Dongguan Guangdong 523808\r
+ CN\r
+\r
+B8-2F-CB (hex) CMS Electracom\r
+B82FCB (base 16) CMS Electracom\r
+ 24 Binney Road\r
+ Kings Park NSW 2148\r
+ AU\r
+\r
6C-61-F4 (hex) SFR\r
6C61F4 (base 16) SFR\r
12 rue jean-philippe Rameau CS 80001\r
La plaine saint denis FRANCE 93634\r
FR\r
\r
-F4-90-CB (hex) IEEE Registration Authority\r
-F490CB (base 16) IEEE Registration Authority\r
- 445 Hoes Lane\r
- Piscataway NJ 08554\r
- US\r
-\r
00-10-7F (hex) CRESTRON ELECTRONICS, INC.\r
00107F (base 16) CRESTRON ELECTRONICS, INC.\r
15 Volvo Drive\r
Copenhagen 2450\r
DK\r
\r
-58-49-3B (hex) Palo Alto Networks\r
-58493B (base 16) Palo Alto Networks\r
- 3000 Tannery Way\r
- Santa Clara CA 95054\r
- US\r
-\r
-00-1B-17 (hex) Palo Alto Networks\r
-001B17 (base 16) Palo Alto Networks\r
- 3000 Tannery Way\r
- Santa Clara CA 95054\r
- US\r
+CC-AB-2C (hex) HUMAX Co., Ltd.\r
+CCAB2C (base 16) HUMAX Co., Ltd.\r
+ HUMAX Village, 216, Hwangsaeul-ro, Bu\r
+ Seongnam-si Gyeonggi-do 463-875\r
+ KR\r
\r
58-59-C2 (hex) Extreme Networks, Inc.\r
5859C2 (base 16) Extreme Networks, Inc.\r
Milpitas CA 95035\r
US\r
\r
-B8-2F-CB (hex) CMS Electracom\r
-B82FCB (base 16) CMS Electracom\r
- 24 Binney Road\r
- Kings Park NSW 2148\r
- AU\r
-\r
-10-CE-45 (hex) Miromico AG\r
-10CE45 (base 16) Miromico AG\r
- Gallusstrasse 4\r
- Zurich Zurich CH-8006\r
- CH\r
-\r
78-7D-53 (hex) Extreme Networks, Inc.\r
787D53 (base 16) Extreme Networks, Inc.\r
1011 McCarthy Blvd\r
Milpitas CA 95035\r
US\r
\r
-EC-68-81 (hex) Palo Alto Networks\r
-EC6881 (base 16) Palo Alto Networks\r
+78-6D-94 (hex) Palo Alto Networks\r
+786D94 (base 16) Palo Alto Networks\r
3000 Tannery Way\r
Santa Clara CA 95054\r
US\r
\r
-78-6D-94 (hex) Palo Alto Networks\r
-786D94 (base 16) Palo Alto Networks\r
+58-49-3B (hex) Palo Alto Networks\r
+58493B (base 16) Palo Alto Networks\r
3000 Tannery Way\r
Santa Clara CA 95054\r
US\r
\r
-F8-AF-05 (hex) Huawei Device Co., Ltd.\r
-F8AF05 (base 16) Huawei Device Co., Ltd.\r
- No.2 of Xincheng Road, Songshan Lake Zone\r
- Dongguan Guangdong 523808\r
- CN\r
-\r
-4C-FC-AA (hex) Tesla,Inc.\r
-4CFCAA (base 16) Tesla,Inc.\r
- 3500 Deer Creek Rd.\r
- PALO ALTO CA 94304\r
+00-1B-17 (hex) Palo Alto Networks\r
+001B17 (base 16) Palo Alto Networks\r
+ 3000 Tannery Way\r
+ Santa Clara CA 95054\r
US\r
\r
-CC-AB-2C (hex) HUMAX Co., Ltd.\r
-CCAB2C (base 16) HUMAX Co., Ltd.\r
- HUMAX Village, 216, Hwangsaeul-ro, Bu\r
- Seongnam-si Gyeonggi-do 463-875\r
- KR\r
-\r
-6C-6D-09 (hex) Kyowa Electronics Co.,Ltd.\r
-6C6D09 (base 16) Kyowa Electronics Co.,Ltd.\r
- 4-3-31 Takatsukasa\r
- Takarazuka Hyogo 665-0051\r
- JP\r
-\r
-24-E1-24 (hex) Xiamen Ursalink Technology Co., Ltd.\r
-24E124 (base 16) Xiamen Ursalink Technology Co., Ltd.\r
- 4/F, No. 63-2 Wanghai Road, 2nd Software Park\r
- Xiamen Fujian 361008\r
- CN\r
-\r
24-43-E2 (hex) DASAN Network Solutions\r
2443E2 (base 16) DASAN Network Solutions\r
DASAN Tower 8F, 49 Daewangpangyo-ro644beon-gil Bundang-gu\r
Rueil Malmaison Cedex hauts de seine 92848\r
FR\r
\r
-90-17-3F (hex) HUAWEI TECHNOLOGIES CO.,LTD\r
-90173F (base 16) HUAWEI TECHNOLOGIES CO.,LTD\r
- No.2 Xin Cheng Road, Room R6,Songshan Lake Technology Park\r
- Dongguan 523808\r
- CN\r
+EC-68-81 (hex) Palo Alto Networks\r
+EC6881 (base 16) Palo Alto Networks\r
+ 3000 Tannery Way\r
+ Santa Clara CA 95054\r
+ US\r
\r
54-0E-2D (hex) vivo Mobile Communication Co., Ltd.\r
540E2D (base 16) vivo Mobile Communication Co., Ltd.\r
Wusha,Chang'An DongGuan City,Guangdong, 523860\r
CN\r
\r
+24-E1-24 (hex) Xiamen Ursalink Technology Co., Ltd.\r
+24E124 (base 16) Xiamen Ursalink Technology Co., Ltd.\r
+ 4/F, No. 63-2 Wanghai Road, 2nd Software Park\r
+ Xiamen Fujian 361008\r
+ CN\r
+\r
A0-FF-70 (hex) Technicolor CH USA Inc.\r
A0FF70 (base 16) Technicolor CH USA Inc.\r
5030 Sugarloaf Parkway Bldg 6 \r
Lawrenceville GA 30044\r
US\r
\r
+6C-6D-09 (hex) Kyowa Electronics Co.,Ltd.\r
+6C6D09 (base 16) Kyowa Electronics Co.,Ltd.\r
+ 4-3-31 Takatsukasa\r
+ Takarazuka Hyogo 665-0051\r
+ JP\r
+\r
+90-17-3F (hex) HUAWEI TECHNOLOGIES CO.,LTD\r
+90173F (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
60-7E-CD (hex) HUAWEI TECHNOLOGIES CO.,LTD\r
607ECD (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-8A-BA (hex) Cisco Systems, Inc\r
-548ABA (base 16) Cisco Systems, Inc\r
- 80 West Tasman Drive\r
- San Jose CA 94568\r
- US\r
-\r
-C8-07-39 (hex) NAKAYO Inc\r
-C80739 (base 16) NAKAYO Inc\r
- 1-3-2, Soja-machi\r
- Maebashi-shi Gunma 371-0853\r
- JP\r
-\r
8C-7C-FF (hex) Brocade Communications Systems LLC\r
8C7CFF (base 16) Brocade Communications Systems LLC\r
1320 Ridder Park Dr\r
San Jose CA 95131\r
US\r
\r
-AC-3C-8E (hex) Flextronics Computing(Suzhou)Co.,Ltd.\r
-AC3C8E (base 16) Flextronics Computing(Suzhou)Co.,Ltd.\r
- No.1 GuanPu Road. Guoxiang street , WuZhong District,Suzhou City, Jiangsu Province. \r
- Suzhou 215124 \r
- CN\r
-\r
-40-62-34 (hex) Telink Semiconductor (Shanghai) Co., Ltd.\r
-406234 (base 16) Telink Semiconductor (Shanghai) Co., Ltd.\r
- No. 1500 Zuchongzhi Rd, Building #3\r
- Shanghai 201203\r
- CN\r
-\r
88-94-71 (hex) Brocade Communications Systems LLC\r
889471 (base 16) Brocade Communications Systems LLC\r
1320 Ridder Park Dr\r
San Jose CA 95131\r
US\r
\r
-00-94-EC (hex) Huawei Device Co., Ltd.\r
-0094EC (base 16) Huawei Device Co., Ltd.\r
+80-CF-A2 (hex) Huawei Device Co., Ltd.\r
+80CFA2 (base 16) Huawei Device Co., Ltd.\r
No.2 of Xincheng Road, Songshan Lake Zone\r
Dongguan Guangdong 523808\r
CN\r
\r
-74-45-2D (hex) Huawei Device Co., Ltd.\r
-74452D (base 16) Huawei Device Co., Ltd.\r
+00-94-EC (hex) Huawei Device Co., Ltd.\r
+0094EC (base 16) Huawei Device Co., Ltd.\r
No.2 of Xincheng Road, Songshan Lake Zone\r
Dongguan Guangdong 523808\r
CN\r
\r
-A4-50-06 (hex) SHENZHEN HUACHUANG SHIDAI TECHNOLOGYCO.,LTD\r
-A45006 (base 16) SHENZHEN HUACHUANG SHIDAI TECHNOLOGYCO.,LTD\r
- longhua dalang huaronglu lianjiangongyeyuan 4-5\r
- shenzhen guangdong 518000\r
- CN\r
-\r
-C8-71-25 (hex) Johnson Outdoors Marine Electronics d/b/a Minnkota\r
-C87125 (base 16) Johnson Outdoors Marine Electronics d/b/a Minnkota\r
- 1531 E Madison Ave\r
- Mankato MN 56001\r
+54-8A-BA (hex) Cisco Systems, Inc\r
+548ABA (base 16) Cisco Systems, Inc\r
+ 80 West Tasman Drive\r
+ San Jose CA 94568\r
US\r
\r
-68-6D-BC (hex) Hangzhou Hikvision Digital Technology Co.,Ltd.\r
-686DBC (base 16) Hangzhou Hikvision Digital Technology Co.,Ltd.\r
- No.555 Qianmo Road\r
- Hangzhou Zhejiang 310052\r
- CN\r
-\r
-80-CF-A2 (hex) Huawei Device Co., Ltd.\r
-80CFA2 (base 16) Huawei Device Co., Ltd.\r
- No.2 of Xincheng Road, Songshan Lake Zone\r
- Dongguan Guangdong 523808\r
- CN\r
-\r
08-03-42 (hex) Palo Alto Networks\r
080342 (base 16) Palo Alto Networks\r
3000 Tannery Way\r
Santa Clara CA 95054\r
US\r
\r
-FC-3D-A5 (hex) Arcadyan Corporation\r
-FC3DA5 (base 16) Arcadyan Corporation\r
- No.8, Sec.2, Guangfu Rd.\r
- Hsinchu City Hsinchu 30071\r
- TW\r
+C8-07-39 (hex) NAKAYO Inc\r
+C80739 (base 16) NAKAYO Inc\r
+ 1-3-2, Soja-machi\r
+ Maebashi-shi Gunma 371-0853\r
+ JP\r
\r
EC-4F-82 (hex) Calix Inc.\r
EC4F82 (base 16) Calix Inc.\r
shenzhen guangdong 518057\r
CN\r
\r
+A4-50-06 (hex) SHENZHEN HUACHUANG SHIDAI TECHNOLOGYCO.,LTD\r
+A45006 (base 16) SHENZHEN HUACHUANG SHIDAI TECHNOLOGYCO.,LTD\r
+ longhua dalang huaronglu lianjiangongyeyuan 4-5\r
+ shenzhen guangdong 518000\r
+ CN\r
+\r
+C8-71-25 (hex) Johnson Outdoors Marine Electronics d/b/a Minnkota\r
+C87125 (base 16) Johnson Outdoors Marine Electronics d/b/a Minnkota\r
+ 1531 E Madison Ave\r
+ Mankato MN 56001\r
+ US\r
+\r
+68-6D-BC (hex) Hangzhou Hikvision Digital Technology Co.,Ltd.\r
+686DBC (base 16) Hangzhou Hikvision Digital Technology Co.,Ltd.\r
+ No.555 Qianmo Road\r
+ Hangzhou Zhejiang 310052\r
+ CN\r
+\r
+AC-3C-8E (hex) Flextronics Computing(Suzhou)Co.,Ltd.\r
+AC3C8E (base 16) Flextronics Computing(Suzhou)Co.,Ltd.\r
+ No.1 GuanPu Road. Guoxiang street , WuZhong District,Suzhou City, Jiangsu Province. \r
+ Suzhou 215124 \r
+ CN\r
+\r
+74-45-2D (hex) Huawei Device Co., Ltd.\r
+74452D (base 16) Huawei Device Co., Ltd.\r
+ No.2 of Xincheng Road, Songshan Lake Zone\r
+ Dongguan Guangdong 523808\r
+ CN\r
+\r
+40-62-34 (hex) Telink Semiconductor (Shanghai) Co., Ltd.\r
+406234 (base 16) Telink Semiconductor (Shanghai) Co., Ltd.\r
+ No. 1500 Zuchongzhi Rd, Building #3\r
+ Shanghai 201203\r
+ CN\r
+\r
+FC-3D-A5 (hex) Arcadyan Corporation\r
+FC3DA5 (base 16) Arcadyan Corporation\r
+ No.8, Sec.2, Guangfu Rd.\r
+ Hsinchu City Hsinchu 30071\r
+ TW\r
+\r
+BC-33-AC (hex) Silicon Laboratories\r
+BC33AC (base 16) Silicon Laboratories\r
+ 7000 W. William Cannon Dr.\r
+ Austin TX 78735\r
+ US\r
+\r
+F0-55-01 (hex) Huawei Device Co., Ltd.\r
+F05501 (base 16) Huawei Device Co., Ltd.\r
+ No.2 of Xincheng Road, Songshan Lake Zone\r
+ Dongguan Guangdong 523808\r
+ CN\r
+\r
14-01-52 (hex) Samsung Electronics Co.,Ltd\r
140152 (base 16) Samsung Electronics Co.,Ltd\r
#94-1, Imsoo-Dong\r
Gumi Gyeongbuk 730-350\r
KR\r
\r
-BC-33-AC (hex) Silicon Laboratories\r
-BC33AC (base 16) Silicon Laboratories\r
- 7000 W. William Cannon Dr.\r
- Austin TX 78735\r
+7C-F2-DD (hex) Vence Corp\r
+7CF2DD (base 16) Vence Corp\r
+ 16885 W Bernardo Dr., STE 209\r
+ San Diego CA 92127\r
US\r
\r
94-FB-A7 (hex) IEEE Registration Authority\r
Seoul 12110\r
KR\r
\r
-98-F6-21 (hex) Xiaomi Communications Co Ltd\r
-98F621 (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-3E-BA (hex) Dell Inc.\r
C03EBA (base 16) Dell Inc.\r
One Dell Way\r
Round Rock TX 78682\r
US\r
\r
+1C-FF-59 (hex) Sichuan Tianyi Comheart Telecom Co., Ltd.\r
+1CFF59 (base 16) Sichuan Tianyi Comheart Telecom Co., Ltd.\r
+ No.198,First Section,Snow Mountain Avenue, Jinyuan Town, Dayi County\r
+ Chengdu Sichuan 611330\r
+ CN\r
+\r
+98-F6-21 (hex) Xiaomi Communications Co Ltd\r
+98F621 (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-39-5A (hex) Zhejiang Dahua Technology Co., Ltd.\r
C0395A (base 16) Zhejiang Dahua Technology Co., Ltd.\r
No.1199,Waterfront Road \r
DONG GUAN GUANG DONG 523860\r
CN\r
\r
-F0-55-01 (hex) Huawei Device Co., Ltd.\r
-F05501 (base 16) Huawei Device Co., Ltd.\r
- No.2 of Xincheng Road, Songshan Lake Zone\r
- Dongguan Guangdong 523808\r
+14-13-FB (hex) HUAWEI TECHNOLOGIES CO.,LTD\r
+1413FB (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-F2-DD (hex) Vence Corp\r
-7CF2DD (base 16) Vence Corp\r
- 16885 W Bernardo Dr., STE 209\r
- San Diego CA 92127\r
- US\r
-\r
D0-76-8F (hex) Calix Inc.\r
D0768F (base 16) Calix Inc.\r
2777 Orchard Pkwy\r
San Jose CA 95131\r
US\r
\r
-1C-FF-59 (hex) Sichuan Tianyi Comheart Telecom Co., Ltd.\r
-1CFF59 (base 16) Sichuan Tianyi Comheart Telecom Co., Ltd.\r
- No.198,First Section,Snow Mountain Avenue, Jinyuan Town, Dayi County\r
- Chengdu Sichuan 611330\r
- CN\r
-\r
-14-13-FB (hex) HUAWEI TECHNOLOGIES CO.,LTD\r
-1413FB (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
-00-E0-B7 (hex) Cosworth Electronics Ltd\r
-00E0B7 (base 16) Cosworth Electronics Ltd\r
- The Octagon, St. James Mill Road\r
- Northampton Northamptonshire NN5 5RA, GB\r
- GB\r
-\r
A4-93-40 (hex) Beijing Supvan Information Technology Co.,Ltd.\r
A49340 (base 16) Beijing Supvan Information Technology Co.,Ltd.\r
206.2/F,Building No.1.No.1 Gaoxin Three Street. Huilongguan Town,Changping District\r
MianYang SiChuan PRC 621000\r
CN\r
\r
-00-E2-2C (hex) China Mobile Group Device Co.,Ltd.\r
-00E22C (base 16) China Mobile Group Device Co.,Ltd.\r
- 32 Xuanwumen West Street,Xicheng District\r
- Beijing 100053\r
- CN\r
+00-E0-B7 (hex) Cosworth Electronics Ltd\r
+00E0B7 (base 16) Cosworth Electronics Ltd\r
+ The Octagon, St. James Mill Road\r
+ Northampton Northamptonshire NN5 5RA, GB\r
+ GB\r
\r
-78-11-00 (hex) Quantumsolution\r
-781100 (base 16) Quantumsolution\r
- Rm 903, STX V-Tower, 128, Gasandigital 1-ro, Geumcheon-gu\r
- Seoul 08507\r
- KR\r
+74-AB-93 (hex) Blink by Amazon \r
+74AB93 (base 16) Blink by Amazon \r
+ 100 Riverpark Drive\r
+ North Reading MA 01864\r
+ US\r
\r
E8-7F-95 (hex) Apple, Inc.\r
E87F95 (base 16) Apple, Inc.\r
Cupertino CA 95014\r
US\r
\r
-74-AB-93 (hex) Blink by Amazon \r
-74AB93 (base 16) Blink by Amazon \r
- 100 Riverpark Drive\r
- North Reading MA 01864\r
- US\r
-\r
-7C-A9-6B (hex) Syrotech Networks. Ltd.\r
-7CA96B (base 16) Syrotech Networks. Ltd.\r
- UNIT NO.-5 20F, KIN WING INDUSTERIAL BUILDING,33 KIN WING STREET\r
- TUEN MUN 999077\r
- HK\r
-\r
-98-06-3C (hex) Samsung Electronics Co.,Ltd\r
-98063C (base 16) Samsung Electronics Co.,Ltd\r
- 129, Samsung-ro, Youngtongl-Gu\r
- Suwon Gyeonggi-Do 16677\r
- KR\r
-\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
-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
-B4-69-21 (hex) Intel Corporate\r
-B46921 (base 16) Intel Corporate\r
- Lot 8, Jalan Hi-Tech 2/3 \r
- Kulim Kedah 09000\r
- MY\r
-\r
-F8-F2-1E (hex) Intel Corporate\r
-F8F21E (base 16) Intel Corporate\r
- Lot 8, Jalan Hi-Tech 2/3 \r
- Kulim Kedah 09000\r
- MY\r
+00-E2-2C (hex) China Mobile Group Device Co.,Ltd.\r
+00E22C (base 16) China Mobile Group Device Co.,Ltd.\r
+ 32 Xuanwumen West Street,Xicheng District\r
+ Beijing 100053\r
+ CN\r
\r
74-A7-EA (hex) Amazon Technologies Inc.\r
74A7EA (base 16) Amazon Technologies Inc.\r
Reno NV 89507\r
US\r
\r
+78-11-00 (hex) Quantumsolution\r
+781100 (base 16) Quantumsolution\r
+ Rm 903, STX V-Tower, 128, Gasandigital 1-ro, Geumcheon-gu\r
+ Seoul 08507\r
+ KR\r
+\r
4C-7C-D9 (hex) Apple, Inc.\r
4C7CD9 (base 16) Apple, Inc.\r
1 Infinite Loop\r
Cupertino CA 95014\r
US\r
\r
-F0-D7-AF (hex) IEEE Registration Authority\r
-F0D7AF (base 16) IEEE Registration Authority\r
- 445 Hoes Lane\r
- Piscataway NJ 08554\r
- US\r
-\r
-84-EA-ED (hex) Roku, Inc\r
-84EAED (base 16) Roku, Inc\r
- 150 Winchester Circle\r
- Los Gatos CA 95032\r
- US\r
-\r
7C-B2-7D (hex) Intel Corporate\r
7CB27D (base 16) Intel Corporate\r
Lot 8, Jalan Hi-Tech 2/3 \r
Kulim Kedah 09000\r
MY\r
\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
+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
+B4-69-21 (hex) Intel Corporate\r
+B46921 (base 16) Intel Corporate\r
+ Lot 8, Jalan Hi-Tech 2/3 \r
+ Kulim Kedah 09000\r
+ MY\r
+\r
+98-06-3C (hex) Samsung Electronics Co.,Ltd\r
+98063C (base 16) Samsung Electronics Co.,Ltd\r
+ 129, Samsung-ro, Youngtongl-Gu\r
+ Suwon Gyeonggi-Do 16677\r
+ KR\r
+\r
+7C-A9-6B (hex) Syrotech Networks. Ltd.\r
+7CA96B (base 16) Syrotech Networks. Ltd.\r
+ UNIT NO.-5 20F, KIN WING INDUSTERIAL BUILDING,33 KIN WING STREET\r
+ TUEN MUN 999077\r
+ HK\r
+\r
+F8-F2-1E (hex) Intel Corporate\r
+F8F21E (base 16) Intel Corporate\r
+ Lot 8, Jalan Hi-Tech 2/3 \r
+ Kulim Kedah 09000\r
+ MY\r
+\r
+A4-C3-F0 (hex) Intel Corporate\r
+A4C3F0 (base 16) Intel Corporate\r
+ Lot 8, Jalan Hi-Tech 2/3 \r
+ Kulim Kedah 09000\r
+ MY\r
+\r
+50-76-AF (hex) Intel Corporate\r
+5076AF (base 16) Intel Corporate\r
+ Lot 8, Jalan Hi-Tech 2/3 \r
+ Kulim Kedah 09000\r
+ MY\r
+\r
+F0-D7-AF (hex) IEEE Registration Authority\r
+F0D7AF (base 16) IEEE Registration Authority\r
+ 445 Hoes Lane\r
+ Piscataway NJ 08554\r
+ US\r
+\r
D8-4F-37 (hex) Proxis, spol. s r.o.\r
D84F37 (base 16) Proxis, spol. s r.o.\r
Slovenska 1\r
Kulim Kedah 09000\r
MY\r
\r
-A4-C3-F0 (hex) Intel Corporate\r
-A4C3F0 (base 16) Intel Corporate\r
- Lot 8, Jalan Hi-Tech 2/3 \r
- Kulim Kedah 09000\r
- MY\r
-\r
-50-76-AF (hex) Intel Corporate\r
-5076AF (base 16) Intel Corporate\r
- Lot 8, Jalan Hi-Tech 2/3 \r
- Kulim Kedah 09000\r
- MY\r
-\r
-DC-91-BF (hex) Amazon Technologies Inc.\r
-DC91BF (base 16) Amazon Technologies Inc.\r
- P.O Box 8102\r
- Reno NV 89507\r
- US\r
-\r
-E0-92-A7 (hex) Feitian Technologies Co., Ltd\r
-E092A7 (base 16) Feitian Technologies Co., Ltd\r
- Floor 17, Tower B, Huizhi Mansion, No.9 Xueqing Rd, Haidian District\r
- Beijing 100085\r
- CN\r
-\r
-08-B0-A7 (hex) Truebeyond Co., Ltd\r
-08B0A7 (base 16) Truebeyond Co., Ltd\r
- D-906, 60, Haan-ro\r
- Gwangmyeong Gyeonggi 14322\r
- KR\r
-\r
-C0-63-69 (hex) BINXIN TECHNOLOGY(ZHEJIANG) LTD.\r
-C06369 (base 16) BINXIN TECHNOLOGY(ZHEJIANG) LTD.\r
- B4066 Haichuang Park,368 Liuhe Road, Binjiang District\r
- Hangzhou Zhejiang 310051\r
- CN\r
-\r
-18-41-FE (hex) Digital 14\r
-1841FE (base 16) Digital 14\r
- Elektroniikkatie 8\r
- Oulu 90590\r
- FI\r
-\r
6C-CE-44 (hex) 1MORE\r
6CCE44 (base 16) 1MORE\r
TianliaoBuilding F14?New Materials Industrial Park,Xueyuan Blvd,Nanshan\r
San Jose CA 95134\r
US\r
\r
-00-1D-05 (hex) Cooper Lighting Solutions\r
-001D05 (base 16) Cooper Lighting Solutions\r
- 1121 Highway 74 S\r
- Peachtree City GA 30269\r
+08-B0-A7 (hex) Truebeyond Co., Ltd\r
+08B0A7 (base 16) Truebeyond Co., Ltd\r
+ D-906, 60, Haan-ro\r
+ Gwangmyeong Gyeonggi 14322\r
+ KR\r
+\r
+DC-91-BF (hex) Amazon Technologies Inc.\r
+DC91BF (base 16) Amazon Technologies Inc.\r
+ P.O Box 8102\r
+ Reno NV 89507\r
US\r
\r
-8C-0E-60 (hex) Nanjing Juplink Intelligent Technologies Co., Ltd.\r
-8C0E60 (base 16) Nanjing Juplink Intelligent Technologies Co., Ltd.\r
- No. 757 Dixiu Road, Binjiang Economic Development Zone, Jiangning District\r
- Nanjing Jiangsu 211100\r
+C0-63-69 (hex) BINXIN TECHNOLOGY(ZHEJIANG) LTD.\r
+C06369 (base 16) BINXIN TECHNOLOGY(ZHEJIANG) LTD.\r
+ B4066 Haichuang Park,368 Liuhe Road, Binjiang District\r
+ Hangzhou Zhejiang 310051\r
CN\r
\r
+18-41-FE (hex) Digital 14\r
+1841FE (base 16) Digital 14\r
+ Elektroniikkatie 8\r
+ Oulu 90590\r
+ FI\r
+\r
18-AB-1D (hex) Samsung Electronics Co.,Ltd\r
18AB1D (base 16) Samsung Electronics Co.,Ltd\r
#94-1, Imsoo-Dong\r
Gumi Gyeongbuk 730-350\r
KR\r
\r
+E0-92-A7 (hex) Feitian Technologies Co., Ltd\r
+E092A7 (base 16) Feitian Technologies Co., Ltd\r
+ Floor 17, Tower B, Huizhi Mansion, No.9 Xueqing Rd, Haidian District\r
+ Beijing 100085\r
+ CN\r
+\r
+00-1D-05 (hex) Cooper Lighting Solutions\r
+001D05 (base 16) Cooper Lighting Solutions\r
+ 1121 Highway 74 S\r
+ Peachtree City GA 30269\r
+ US\r
+\r
+3C-84-6A (hex) TP-LINK TECHNOLOGIES CO.,LTD.\r
+3C846A (base 16) TP-LINK TECHNOLOGIES CO.,LTD.\r
+ Building 24(floors 1,3,4,5)and 28(floors 1-4)Central Science and Technology Park,Shennan Road,Nanshan\r
+ Shenzhen Guangdong 518057\r
+ CN\r
+\r
84-D8-1B (hex) TP-LINK TECHNOLOGIES CO.,LTD.\r
84D81B (base 16) TP-LINK TECHNOLOGIES CO.,LTD.\r
Building 24(floors 1,3,4,5)and 28(floors 1-4)Central Science and Technology Park,Shennan Road,Nanshan\r
NO.68, Qinghe Middle Street Haidian District, Beijing 100085\r
CN\r
\r
+8C-0E-60 (hex) Nanjing Juplink Intelligent Technologies Co., Ltd.\r
+8C0E60 (base 16) Nanjing Juplink Intelligent Technologies Co., Ltd.\r
+ No. 757 Dixiu Road, Binjiang Economic Development Zone, Jiangning District\r
+ Nanjing Jiangsu 211100\r
+ CN\r
+\r
+24-A1-60 (hex) Espressif Inc.\r
+24A160 (base 16) Espressif Inc.\r
+ Room 204, Building 2, 690 Bibo Rd, Pudong New Area\r
+ Shanghai Shanghai 201203\r
+ CN\r
+\r
+DC-AE-EB (hex) Ruckus Wireless\r
+DCAEEB (base 16) Ruckus Wireless\r
+ 350 West Java Drive\r
+ Sunnyvale CA 94089\r
+ US\r
+\r
E8-A2-45 (hex) Juniper Networks\r
E8A245 (base 16) Juniper Networks\r
1133 Innovation Way\r
Dongguan Guangdong 523808\r
CN\r
\r
-3C-84-6A (hex) TP-LINK TECHNOLOGIES CO.,LTD.\r
-3C846A (base 16) TP-LINK TECHNOLOGIES CO.,LTD.\r
- Building 24(floors 1,3,4,5)and 28(floors 1-4)Central Science and Technology Park,Shennan Road,Nanshan\r
- Shenzhen Guangdong 518057\r
- CN\r
-\r
78-04-E3 (hex) Huawei Device Co., Ltd.\r
7804E3 (base 16) Huawei Device Co., Ltd.\r
No.2 of Xincheng Road, Songshan Lake Zone\r
Dongguan Guangdong 523808\r
CN\r
\r
-24-A1-60 (hex) Espressif Inc.\r
-24A160 (base 16) Espressif Inc.\r
- Room 204, Building 2, 690 Bibo Rd, Pudong New Area\r
- Shanghai Shanghai 201203\r
- CN\r
-\r
-DC-AE-EB (hex) Ruckus Wireless\r
-DCAEEB (base 16) Ruckus Wireless\r
- 350 West Java Drive\r
- Sunnyvale CA 94089\r
- US\r
-\r
-24-81-C7 (hex) Huawei Device Co., Ltd.\r
-2481C7 (base 16) Huawei Device Co., Ltd.\r
- No.2 of Xincheng Road, Songshan Lake Zone\r
- Dongguan Guangdong 523808\r
- CN\r
-\r
-FC-86-2A (hex) Huawei Device Co., Ltd.\r
-FC862A (base 16) Huawei Device Co., Ltd.\r
- No.2 of Xincheng Road, Songshan Lake Zone\r
- Dongguan Guangdong 523808\r
- CN\r
-\r
1C-3D-2F (hex) HUAWEI TECHNOLOGIES CO.,LTD\r
1C3D2F (base 16) HUAWEI TECHNOLOGIES CO.,LTD\r
No.2 Xin Cheng Road, Room R6,Songshan Lake Technology Park\r
Saint Vincent de Mercuze Isère 38660\r
FR\r
\r
-48-43-DD (hex) Amazon Technologies Inc.\r
-4843DD (base 16) Amazon Technologies Inc.\r
- P.O Box 8102\r
- Reno NV 89507\r
- US\r
+24-81-C7 (hex) Huawei Device Co., Ltd.\r
+2481C7 (base 16) Huawei Device Co., Ltd.\r
+ No.2 of Xincheng Road, Songshan Lake Zone\r
+ Dongguan Guangdong 523808\r
+ CN\r
+\r
+FC-86-2A (hex) Huawei Device Co., Ltd.\r
+FC862A (base 16) Huawei Device Co., Ltd.\r
+ No.2 of Xincheng Road, Songshan Lake Zone\r
+ Dongguan Guangdong 523808\r
+ CN\r
\r
08-38-69 (hex) Hong Kong AMobile Intelligent Corp. Limited Taiwan Branch\r
083869 (base 16) Hong Kong AMobile Intelligent Corp. Limited Taiwan Branch\r
Wuhan Hubei 430074\r
CN\r
\r
+AC-95-72 (hex) Jovision Technology Co., Ltd.\r
+AC9572 (base 16) Jovision Technology Co., Ltd.\r
+ Floor 12, Building 3, Aosheng Square, No.1166 Xinluo Street\r
+ Jinan Shandong 250101\r
+ CN\r
+\r
+00-CB-BD (hex) Cambridge Broadband Networks Group\r
+00CBBD (base 16) Cambridge Broadband Networks Group\r
+ 1 Hammersmith Broadway\r
+ London W6 9DL\r
+ GB\r
+\r
+48-43-DD (hex) Amazon Technologies Inc.\r
+4843DD (base 16) Amazon Technologies Inc.\r
+ P.O Box 8102\r
+ Reno NV 89507\r
+ US\r
+\r
+58-94-A2 (hex) KETEK GmbH\r
+5894A2 (base 16) KETEK GmbH\r
+ Hofer Str. 3\r
+ München 81737\r
+ DE\r
+\r
+00-19-F5 (hex) Imagination Technologies Ltd\r
+0019F5 (base 16) Imagination Technologies Ltd\r
+ Home Park Estate\r
+ Kings Langley Hertfordshire WD4 8LZ\r
+ GB\r
+\r
+40-D2-5F (hex) ITEL MOBILE LIMITED\r
+40D25F (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
84-03-28 (hex) Juniper Networks\r
840328 (base 16) Juniper Networks\r
1133 Innovation Way\r
Sunnyvale CA 94089\r
US\r
\r
-08-9B-B9 (hex) Nokia\r
-089BB9 (base 16) Nokia\r
- Karaportti 3\r
- Espoo Finland 02610\r
- FI\r
-\r
00-1C-FC (hex) Sumitomo Electric Industries, Ltd\r
001CFC (base 16) Sumitomo Electric Industries, Ltd\r
1-1-3, Shimaya, Konohana-ku\r
Seongnam-si 13595\r
KR\r
\r
-AC-95-72 (hex) Jovision Technology Co., Ltd.\r
-AC9572 (base 16) Jovision Technology Co., Ltd.\r
- Floor 12, Building 3, Aosheng Square, No.1166 Xinluo Street\r
- Jinan Shandong 250101\r
- CN\r
-\r
-40-D2-5F (hex) ITEL MOBILE LIMITED\r
-40D25F (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
A8-03-2A (hex) Espressif Inc.\r
A8032A (base 16) Espressif Inc.\r
Room 204, Building 2, 690 Bibo Rd, Pudong New Area\r
Shanghai Shanghai 201203\r
CN\r
\r
-00-19-F5 (hex) Imagination Technologies Ltd\r
-0019F5 (base 16) Imagination Technologies Ltd\r
- Home Park Estate\r
- Kings Langley Hertfordshire WD4 8LZ\r
- GB\r
-\r
-00-CB-BD (hex) Cambridge Broadband Networks Group\r
-00CBBD (base 16) Cambridge Broadband Networks Group\r
- 1 Hammersmith Broadway\r
- London W6 9DL\r
- GB\r
+D8-EF-42 (hex) Huawei Device Co., Ltd.\r
+D8EF42 (base 16) Huawei Device Co., Ltd.\r
+ No.2 of Xincheng Road, Songshan Lake Zone\r
+ Dongguan Guangdong 523808\r
+ CN\r
\r
-58-94-A2 (hex) KETEK GmbH\r
-5894A2 (base 16) KETEK GmbH\r
- Hofer Str. 3\r
- München 81737\r
- DE\r
+80-CC-12 (hex) Huawei Device Co., Ltd.\r
+80CC12 (base 16) Huawei Device Co., Ltd.\r
+ No.2 of Xincheng Road, Songshan Lake Zone\r
+ Dongguan Guangdong 523808\r
+ CN\r
\r
-4C-22-19 (hex) YUANFUDAO HK LIMTED\r
-4C2219 (base 16) YUANFUDAO HK LIMTED\r
- Building C, global creative center, No. 10, Furong street\r
- Beijing 100102\r
+18-AA-0F (hex) Huawei Device Co., Ltd.\r
+18AA0F (base 16) Huawei Device Co., Ltd.\r
+ No.2 of Xincheng Road, Songshan Lake Zone\r
+ Dongguan Guangdong 523808\r
CN\r
\r
54-D9-C6 (hex) Huawei Device Co., Ltd.\r
Suwon Gyeonggi-Do 16677\r
KR\r
\r
-D8-EF-42 (hex) Huawei Device Co., Ltd.\r
-D8EF42 (base 16) Huawei Device Co., Ltd.\r
- No.2 of Xincheng Road, Songshan Lake Zone\r
- Dongguan Guangdong 523808\r
- CN\r
-\r
-80-CC-12 (hex) Huawei Device Co., Ltd.\r
-80CC12 (base 16) Huawei Device Co., Ltd.\r
- No.2 of Xincheng Road, Songshan Lake Zone\r
- Dongguan Guangdong 523808\r
- CN\r
-\r
-18-AA-0F (hex) Huawei Device Co., Ltd.\r
-18AA0F (base 16) Huawei Device Co., Ltd.\r
- No.2 of Xincheng Road, Songshan Lake Zone\r
- Dongguan Guangdong 523808\r
- CN\r
-\r
-B0-A4-60 (hex) Intel Corporate\r
-B0A460 (base 16) Intel Corporate\r
- Lot 8, Jalan Hi-Tech 2/3 \r
- Kulim Kedah 09000\r
- MY\r
-\r
AC-9A-96 (hex) Maxlinear, Inc\r
AC9A96 (base 16) Maxlinear, Inc\r
Am Campeon 3\r
Neubiberg Bavaria 85579\r
DE\r
\r
-8C-70-86 (hex) Gesellschaft für Sonder-EDV-Anlagen mbH\r
-8C7086 (base 16) Gesellschaft für Sonder-EDV-Anlagen mbH\r
- Lorsbacher Straße 31\r
- Hofheim 65719\r
- DE\r
-\r
-1C-28-AF (hex) Aruba, a Hewlett Packard Enterprise Company\r
-1C28AF (base 16) Aruba, a Hewlett Packard Enterprise Company\r
- 3333 Scott Blvd\r
- Santa Clara CA 95054\r
- US\r
-\r
-E4-24-6C (hex) Zhejiang Dahua Technology Co., Ltd.\r
-E4246C (base 16) Zhejiang Dahua Technology Co., Ltd.\r
- No.1199,Waterfront Road \r
- Hangzhou Zhejiang 310053\r
- CN\r
-\r
-E8-EB-1B (hex) Microchip Technology Inc.\r
-E8EB1B (base 16) Microchip Technology Inc.\r
- 2355 W. Chandler Blvd.\r
- Chandler AZ 85224\r
- US\r
-\r
-84-02-83 (hex) HUMAX Co., Ltd.\r
-840283 (base 16) HUMAX Co., Ltd.\r
- HUMAX Village, 216, Hwangsaeul-ro, Bu\r
- Seongnam-si Gyeonggi-do 463-875\r
- KR\r
-\r
-94-17-00 (hex) Xiaomi Communications Co Ltd\r
-941700 (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
-68-D6-ED (hex) GooWi Wireless Technology Co., Limited\r
-68D6ED (base 16) GooWi Wireless Technology Co., Limited\r
- RM402 Building212, Tairan Technology Park, Futian District\r
- Shenzhen Guangdong 518000\r
+4C-22-19 (hex) YUANFUDAO HK LIMTED\r
+4C2219 (base 16) YUANFUDAO HK LIMTED\r
+ Building C, global creative center, No. 10, Furong street\r
+ Beijing 100102\r
CN\r
\r
00-E4-06 (hex) HUAWEI TECHNOLOGIES CO.,LTD\r
Seoul 153-801\r
KR\r
\r
-28-B7-7C (hex) IEEE Registration Authority\r
-28B77C (base 16) IEEE Registration Authority\r
- 445 Hoes Lane\r
- Piscataway NJ 08554\r
+B0-A4-60 (hex) Intel Corporate\r
+B0A460 (base 16) Intel Corporate\r
+ Lot 8, Jalan Hi-Tech 2/3 \r
+ Kulim Kedah 09000\r
+ MY\r
+\r
+1C-28-AF (hex) Aruba, a Hewlett Packard Enterprise Company\r
+1C28AF (base 16) Aruba, a Hewlett Packard Enterprise Company\r
+ 3333 Scott Blvd\r
+ Santa Clara CA 95054\r
+ US\r
+\r
+E4-24-6C (hex) Zhejiang Dahua Technology Co., Ltd.\r
+E4246C (base 16) Zhejiang Dahua Technology Co., Ltd.\r
+ No.1199,Waterfront Road \r
+ Hangzhou Zhejiang 310053\r
+ CN\r
+\r
+E8-EB-1B (hex) Microchip Technology Inc.\r
+E8EB1B (base 16) Microchip Technology Inc.\r
+ 2355 W. Chandler Blvd.\r
+ Chandler AZ 85224\r
US\r
\r
28-C2-1F (hex) SAMSUNG ELECTRO-MECHANICS(THAILAND)\r
Bangpakong Chachoengsao 24180\r
TH\r
\r
-5C-7D-7D (hex) Technicolor CH USA Inc.\r
-5C7D7D (base 16) Technicolor CH USA Inc.\r
- 5030 Sugarloaf Parkway Bldg 6 \r
- Lawrenceville GA 30044\r
- US\r
+68-D6-ED (hex) GooWi Wireless Technology Co., Limited\r
+68D6ED (base 16) GooWi Wireless Technology Co., Limited\r
+ RM402 Building212, Tairan Technology Park, Futian District\r
+ Shenzhen Guangdong 518000\r
+ CN\r
\r
-B0-7D-64 (hex) Intel Corporate\r
-B07D64 (base 16) Intel Corporate\r
- Lot 8, Jalan Hi-Tech 2/3 \r
- Kulim Kedah 09000\r
- MY\r
+94-17-00 (hex) Xiaomi Communications Co Ltd\r
+941700 (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
+84-02-83 (hex) HUMAX Co., Ltd.\r
+840283 (base 16) HUMAX Co., Ltd.\r
+ HUMAX Village, 216, Hwangsaeul-ro, Bu\r
+ Seongnam-si Gyeonggi-do 463-875\r
+ KR\r
+\r
+8C-70-86 (hex) Gesellschaft für Sonder-EDV-Anlagen mbH\r
+8C7086 (base 16) Gesellschaft für Sonder-EDV-Anlagen mbH\r
+ Lorsbacher Straße 31\r
+ Hofheim 65719\r
+ DE\r
\r
F4-BF-A8 (hex) Juniper Networks\r
F4BFA8 (base 16) Juniper Networks\r
Sunnyvale CA 94089\r
US\r
\r
-C0-61-9A (hex) IEEE Registration Authority\r
-C0619A (base 16) IEEE Registration Authority\r
+28-B7-7C (hex) IEEE Registration Authority\r
+28B77C (base 16) IEEE Registration Authority\r
445 Hoes Lane\r
Piscataway NJ 08554\r
US\r
\r
+40-06-34 (hex) Huawei Device Co., Ltd.\r
+400634 (base 16) Huawei Device Co., Ltd.\r
+ No.2 of Xincheng Road, Songshan Lake Zone\r
+ Dongguan Guangdong 523808\r
+ CN\r
+\r
C4-2B-44 (hex) Huawei Device Co., Ltd.\r
C42B44 (base 16) Huawei Device Co., Ltd.\r
No.2 of Xincheng Road, Songshan Lake Zone\r
Ohta-ku Tokyo 146-8501\r
JP\r
\r
+5C-7D-7D (hex) Technicolor CH USA Inc.\r
+5C7D7D (base 16) Technicolor CH USA Inc.\r
+ 5030 Sugarloaf Parkway Bldg 6 \r
+ Lawrenceville GA 30044\r
+ US\r
+\r
+70-61-EE (hex) Sunwoda Electronic Co.,Ltd\r
+7061EE (base 16) Sunwoda Electronic Co.,Ltd\r
+ No 2,Yihe Road, shiyan Street?shilong Community ,Baoan District\r
+ Shenzhen 518105\r
+ CN\r
+\r
+C0-61-9A (hex) IEEE Registration Authority\r
+C0619A (base 16) IEEE Registration Authority\r
+ 445 Hoes Lane\r
+ Piscataway NJ 08554\r
+ US\r
+\r
74-42-7F (hex) AVM Audiovisuelles Marketing und Computersysteme GmbH\r
74427F (base 16) AVM Audiovisuelles Marketing und Computersysteme GmbH\r
Alt-Moabit 95\r
Berlin Berlin 10559\r
DE\r
\r
-40-06-34 (hex) Huawei Device Co., Ltd.\r
-400634 (base 16) Huawei Device Co., Ltd.\r
- No.2 of Xincheng Road, Songshan Lake Zone\r
- Dongguan Guangdong 523808\r
- CN\r
+74-F9-CA (hex) Nintendo Co.,Ltd\r
+74F9CA (base 16) Nintendo Co.,Ltd\r
+ 11-1 HOKOTATE-CHO KAMITOBA,MINAMI-KU\r
+ KYOTO KYOTO 601-8501\r
+ JP\r
\r
-70-61-EE (hex) Sunwoda Electronic Co.,Ltd\r
-7061EE (base 16) Sunwoda Electronic Co.,Ltd\r
- No 2,Yihe Road, shiyan Street?shilong Community ,Baoan District\r
- Shenzhen 518105\r
- CN\r
+68-9E-0B (hex) Cisco Systems, Inc\r
+689E0B (base 16) Cisco Systems, Inc\r
+ 80 West Tasman Drive\r
+ San Jose CA 94568\r
+ US\r
\r
14-3F-C3 (hex) SnapAV\r
143FC3 (base 16) SnapAV\r
Rueil Malmaison Cedex hauts de seine 92848\r
FR\r
\r
-74-F9-CA (hex) Nintendo Co.,Ltd\r
-74F9CA (base 16) Nintendo Co.,Ltd\r
- 11-1 HOKOTATE-CHO KAMITOBA,MINAMI-KU\r
- KYOTO KYOTO 601-8501\r
- JP\r
-\r
-50-C6-8E (hex) Biwin Semiconductor (HK) Company Limted\r
-50C68E (base 16) Biwin Semiconductor (HK) Company Limted\r
- 5th/F., Block 4, Tongfuyu Industrial Park, Tanglang, Xili, Nanshan\r
- Shenzhen Guangdong 518055\r
- CN\r
-\r
-04-E7-95 (hex) HUAWEI TECHNOLOGIES CO.,LTD\r
-04E795 (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-D0-DC (hex) Amazon Technologies Inc.\r
A0D0DC (base 16) Amazon Technologies Inc.\r
P.O Box 8102\r
Reno NV 89507\r
US\r
\r
-68-9E-0B (hex) Cisco Systems, Inc\r
-689E0B (base 16) Cisco Systems, Inc\r
- 80 West Tasman Drive\r
- San Jose CA 94568\r
- US\r
-\r
-00-42-38 (hex) Intel Corporate\r
-004238 (base 16) Intel Corporate\r
- Lot 8, Jalan Hi-Tech 2/3 \r
- Kulim Kedah 09000\r
- MY\r
-\r
-C8-FE-6A (hex) Juniper Networks\r
-C8FE6A (base 16) Juniper Networks\r
- 1133 Innovation Way\r
- Sunnyvale CA 94089\r
- US\r
+50-C6-8E (hex) Biwin Semiconductor (HK) Company Limted\r
+50C68E (base 16) Biwin Semiconductor (HK) Company Limted\r
+ 5th/F., Block 4, Tongfuyu Industrial Park, Tanglang, Xili, Nanshan\r
+ Shenzhen Guangdong 518055\r
+ CN\r
\r
80-CA-4B (hex) SHENZHEN GONGJIN ELECTRONICS CO.,LTD\r
80CA4B (base 16) SHENZHEN GONGJIN ELECTRONICS CO.,LTD\r
SHENZHEN GUANGDONG 518122\r
CN\r
\r
+04-E7-95 (hex) HUAWEI TECHNOLOGIES CO.,LTD\r
+04E795 (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
64-F5-4E (hex) EM Microelectronic\r
64F54E (base 16) EM Microelectronic\r
Rue des Sors 3\r
Castel Maggiore Bologna 40013\r
IT\r
\r
-C4-DD-57 (hex) Espressif Inc.\r
-C4DD57 (base 16) Espressif Inc.\r
- Room 204, Building 2, 690 Bibo Rd, Pudong New Area\r
- Shanghai Shanghai 201203\r
- CN\r
-\r
-70-2F-4B (hex) Steelcase Inc.\r
-702F4B (base 16) Steelcase Inc.\r
- 901 44th Street SE\r
- Grand Rapids MI 49508-7594\r
- US\r
-\r
-E4-75-DC (hex) Arcadyan Corporation\r
-E475DC (base 16) Arcadyan Corporation\r
- No.8, Sec.2, Guangfu Rd.\r
- Hsinchu City Hsinchu 30071\r
- TW\r
-\r
C4-16-88 (hex) Huawei Device Co., Ltd.\r
C41688 (base 16) Huawei Device Co., Ltd.\r
No.2 of Xincheng Road, Songshan Lake Zone\r
Dongguan Guangdong 523808\r
CN\r
\r
+30-A9-98 (hex) Huawei Device Co., Ltd.\r
+30A998 (base 16) Huawei Device Co., Ltd.\r
+ No.2 of Xincheng Road, Songshan Lake Zone\r
+ Dongguan Guangdong 523808\r
+ CN\r
+\r
+C8-FE-6A (hex) Juniper Networks\r
+C8FE6A (base 16) Juniper Networks\r
+ 1133 Innovation Way\r
+ Sunnyvale CA 94089\r
+ US\r
+\r
BC-A5-A9 (hex) Apple, Inc.\r
BCA5A9 (base 16) Apple, Inc.\r
1 Infinite Loop\r
Cupertino CA 95014\r
US\r
\r
-30-A9-98 (hex) Huawei Device Co., Ltd.\r
-30A998 (base 16) Huawei Device Co., Ltd.\r
- No.2 of Xincheng Road, Songshan Lake Zone\r
- Dongguan Guangdong 523808\r
+70-2F-4B (hex) Steelcase Inc.\r
+702F4B (base 16) Steelcase Inc.\r
+ 901 44th Street SE\r
+ Grand Rapids MI 49508-7594\r
+ US\r
+\r
+E4-75-DC (hex) Arcadyan Corporation\r
+E475DC (base 16) Arcadyan Corporation\r
+ No.8, Sec.2, Guangfu Rd.\r
+ Hsinchu City Hsinchu 30071\r
+ TW\r
+\r
+C4-DD-57 (hex) Espressif Inc.\r
+C4DD57 (base 16) Espressif Inc.\r
+ Room 204, Building 2, 690 Bibo Rd, Pudong New Area\r
+ Shanghai Shanghai 201203\r
CN\r
\r
+58-20-8A (hex) IEEE Registration Authority\r
+58208A (base 16) IEEE Registration Authority\r
+ 445 Hoes Lane\r
+ Piscataway NJ 08554\r
+ US\r
+\r
00-7D-60 (hex) Apple, Inc.\r
007D60 (base 16) Apple, Inc.\r
1 Infinite Loop\r
Cupertino CA 95014\r
US\r
\r
+6C-1E-D7 (hex) vivo Mobile Communication Co., Ltd.\r
+6C1ED7 (base 16) vivo Mobile Communication Co., Ltd.\r
+ #283,BBK Road\r
+ Wusha,Chang'An DongGuan City,Guangdong, 523860\r
+ CN\r
+\r
+F0-AA-0B (hex) Arra Networks/ Spectramesh\r
+F0AA0B (base 16) Arra Networks/ Spectramesh\r
+ 9201 Ward Pkwy #101\r
+ Kansas City MO 64114\r
+ US\r
+\r
+94-56-41 (hex) Palo Alto Networks\r
+945641 (base 16) Palo Alto Networks\r
+ 3000 Tannery Way\r
+ Santa Clara CA 95054\r
+ US\r
+\r
EC-C3-02 (hex) HUMAX Co., Ltd.\r
ECC302 (base 16) HUMAX Co., Ltd.\r
HUMAX Village, 216, Hwangsaeul-ro, Bu\r
shenzhen Guangdong 518067\r
CN\r
\r
+18-36-72 (hex) Shaoxing ShunChuang Technology CO.,LTD\r
+183672 (base 16) Shaoxing ShunChuang Technology CO.,LTD\r
+ N.O.398 west tongjiang load shangyu\r
+ Shaoxing Zhejiang 312300\r
+ CN\r
+\r
00-C3-43 (hex) E-T-A Circuit Breakers Ltd\r
00C343 (base 16) E-T-A Circuit Breakers Ltd\r
6 Telford Close\r
Aylesbury Buckinghamshire HP198DG\r
GB\r
\r
-58-20-8A (hex) IEEE Registration Authority\r
-58208A (base 16) IEEE Registration Authority\r
- 445 Hoes Lane\r
- Piscataway NJ 08554\r
+B0-A6-51 (hex) Cisco Systems, Inc\r
+B0A651 (base 16) Cisco Systems, Inc\r
+ 80 West Tasman Drive\r
+ San Jose CA 94568\r
US\r
\r
00-90-D2 (hex) Artel Video Systems\r
Westford MA 01886\r
US\r
\r
-6C-1E-D7 (hex) vivo Mobile Communication Co., Ltd.\r
-6C1ED7 (base 16) vivo Mobile Communication Co., Ltd.\r
- #283,BBK Road\r
- Wusha,Chang'An DongGuan City,Guangdong, 523860\r
+B4-BA-12 (hex) China Mobile (Hangzhou) Information Technology Co.,Ltd.\r
+B4BA12 (base 16) China Mobile (Hangzhou) Information Technology Co.,Ltd.\r
+ No. 1600 Yuhangtang Road, Wuchang Street, Yuhang District\r
+ Hangzhou Zhejiang 311100\r
CN\r
\r
-F0-AA-0B (hex) Arra Networks/ Spectramesh\r
-F0AA0B (base 16) Arra Networks/ Spectramesh\r
- 9201 Ward Pkwy #101\r
- Kansas City MO 64114\r
- US\r
-\r
-94-56-41 (hex) Palo Alto Networks\r
-945641 (base 16) Palo Alto Networks\r
- 3000 Tannery Way\r
- Santa Clara CA 95054\r
- US\r
-\r
-80-F5-B5 (hex) Texas Instruments\r
-80F5B5 (base 16) Texas Instruments\r
- 12500 TI Blvd\r
- Dallas TX 75243\r
+D4-91-0F (hex) Amazon Technologies Inc.\r
+D4910F (base 16) Amazon Technologies Inc.\r
+ P.O Box 8102\r
+ Reno NV 89507\r
US\r
\r
1C-30-08 (hex) Hui Zhou Gaoshengda Technology Co.,LTD\r
Singapore 556741\r
SG\r
\r
-B4-BA-12 (hex) China Mobile (Hangzhou) Information Technology Co.,Ltd.\r
-B4BA12 (base 16) China Mobile (Hangzhou) Information Technology Co.,Ltd.\r
- No. 1600 Yuhangtang Road, Wuchang Street, Yuhang District\r
- Hangzhou Zhejiang 311100\r
- CN\r
-\r
5C-F9-FD (hex) Taicang T&W Electronics\r
5CF9FD (base 16) Taicang T&W Electronics\r
89# Jiang Nan RD\r
Dongguan Guangdong 523808\r
CN\r
\r
-18-36-72 (hex) Shaoxing ShunChuang Technology CO.,LTD\r
-183672 (base 16) Shaoxing ShunChuang Technology CO.,LTD\r
- N.O.398 west tongjiang load shangyu\r
- Shaoxing Zhejiang 312300\r
- CN\r
-\r
28-DE-65 (hex) Aruba, a Hewlett Packard Enterprise Company\r
28DE65 (base 16) Aruba, a Hewlett Packard Enterprise Company\r
3333 Scott Blvd\r
Santa Clara CA 95054\r
US\r
\r
-B0-A6-51 (hex) Cisco Systems, Inc\r
-B0A651 (base 16) Cisco Systems, Inc\r
- 80 West Tasman Drive\r
- San Jose CA 94568\r
+C4-FB-AA (hex) HUAWEI TECHNOLOGIES CO.,LTD\r
+C4FBAA (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-E0-C2 (hex) China Mobile Group Device Co.,Ltd.\r
+E0E0C2 (base 16) China Mobile Group Device Co.,Ltd.\r
+ 32 Xuanwumen West Street,Xicheng District\r
+ Beijing 100053\r
+ CN\r
+\r
+80-F5-B5 (hex) Texas Instruments\r
+80F5B5 (base 16) Texas Instruments\r
+ 12500 TI Blvd\r
+ Dallas TX 75243\r
US\r
\r
-D4-91-0F (hex) Amazon Technologies Inc.\r
-D4910F (base 16) Amazon Technologies Inc.\r
- P.O Box 8102\r
- Reno NV 89507\r
+F0-64-26 (hex) Extreme Networks, Inc.\r
+F06426 (base 16) Extreme Networks, Inc.\r
+ 6480 Via Del Oro\r
+ San Jose CA 95119\r
US\r
\r
-B8-5F-B0 (hex) HUAWEI TECHNOLOGIES CO.,LTD\r
-B85FB0 (base 16) HUAWEI TECHNOLOGIES CO.,LTD\r
- No.2 Xin Cheng Road, Room R6,Songshan Lake Technology Park\r
- Dongguan 523808\r
+70-3A-2D (hex) Shenzhen V-Link Technology CO., LTD.\r
+703A2D (base 16) Shenzhen V-Link Technology CO., LTD.\r
+ Room 1803, BaiRuiDa Building, Bantian Sub-district, LongGang District\r
+ Shenzhen GuangDong 518000\r
CN\r
\r
-C4-FB-AA (hex) HUAWEI TECHNOLOGIES CO.,LTD\r
-C4FBAA (base 16) HUAWEI TECHNOLOGIES CO.,LTD\r
- No.2 Xin Cheng Road, Room R6,Songshan Lake Technology Park\r
- Dongguan 523808\r
+1C-45-C2 (hex) Huizhou City Sunsin lntelligent Technology Co.,Ltd\r
+1C45C2 (base 16) Huizhou City Sunsin lntelligent Technology Co.,Ltd\r
+ Outside No.6 community, Zhongkai high tech Zone, Huizhou\r
+ Huizhou 516000\r
CN\r
\r
AC-DC-CA (hex) HUAWEI TECHNOLOGIES CO.,LTD\r
Dongguan 523808\r
CN\r
\r
+B8-5F-B0 (hex) HUAWEI TECHNOLOGIES CO.,LTD\r
+B85FB0 (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
64-A2-00 (hex) Xiaomi Communications Co Ltd\r
64A200 (base 16) Xiaomi Communications Co Ltd\r
The Rainbow City of China Resources\r
Dongguan Guangdong 523808\r
CN\r
\r
-E0-E0-C2 (hex) China Mobile Group Device Co.,Ltd.\r
-E0E0C2 (base 16) China Mobile Group Device Co.,Ltd.\r
- 32 Xuanwumen West Street,Xicheng District\r
- Beijing 100053\r
- CN\r
-\r
-F0-64-26 (hex) Extreme Networks, Inc.\r
-F06426 (base 16) Extreme Networks, Inc.\r
- 6480 Via Del Oro\r
- San Jose CA 95119\r
- US\r
-\r
-70-3A-2D (hex) Shenzhen V-Link Technology CO., LTD.\r
-703A2D (base 16) Shenzhen V-Link Technology CO., LTD.\r
- Room 1803, BaiRuiDa Building, Bantian Sub-district, LongGang District\r
- Shenzhen GuangDong 518000\r
- CN\r
-\r
-1C-45-C2 (hex) Huizhou City Sunsin lntelligent Technology Co.,Ltd\r
-1C45C2 (base 16) Huizhou City Sunsin lntelligent Technology Co.,Ltd\r
- Outside No.6 community, Zhongkai high tech Zone, Huizhou\r
- Huizhou 516000\r
- CN\r
+00-1A-65 (hex) Seluxit\r
+001A65 (base 16) Seluxit\r
+ Sofiendalsvej 74\r
+ Aalborg SV 9200\r
+ DK\r
\r
7C-4E-09 (hex) Shenzhen Skyworth Wireless Technology Co.,Ltd\r
7C4E09 (base 16) Shenzhen Skyworth Wireless Technology Co.,Ltd\r
Sunnyvale CA 94089\r
US\r
\r
+AC-67-84 (hex) Google, Inc.\r
+AC6784 (base 16) Google, Inc.\r
+ 1600 Amphitheatre Parkway\r
+ Mountain View CA 94043\r
+ US\r
+\r
A8-B0-88 (hex) eero inc.\r
A8B088 (base 16) eero inc.\r
660 3rd Street\r
San Francisco CA 94107\r
US\r
\r
-00-1A-65 (hex) Seluxit\r
-001A65 (base 16) Seluxit\r
- Sofiendalsvej 74\r
- Aalborg SV 9200\r
- DK\r
-\r
28-0F-C5 (hex) Beijing Leadsec Technology Co., Ltd.\r
280FC5 (base 16) Beijing Leadsec Technology Co., Ltd.\r
Venus Plaza No.21Zhongguancun Software Park,No.8 Dongbeiwang Xilu, Haidian District\r
Dongguan 523808\r
CN\r
\r
-AC-67-84 (hex) Google, Inc.\r
-AC6784 (base 16) Google, Inc.\r
- 1600 Amphitheatre Parkway\r
- Mountain View CA 94043\r
- US\r
+9C-5F-B0 (hex) Samsung Electronics Co.,Ltd\r
+9C5FB0 (base 16) Samsung Electronics Co.,Ltd\r
+ #94-1, Imsoo-Dong\r
+ Gumi Gyeongbuk 730-350\r
+ KR\r
+\r
+E8-7F-6B (hex) Samsung Electronics Co.,Ltd\r
+E87F6B (base 16) Samsung Electronics Co.,Ltd\r
+ #94-1, Imsoo-Dong\r
+ Gumi Gyeongbuk 730-350\r
+ KR\r
+\r
+94-F2-BB (hex) Valeo Vision Systems\r
+94F2BB (base 16) Valeo Vision Systems\r
+ Dunmore Road\r
+ Tuam Co. Galway H54 Y276\r
+ IE\r
\r
90-DE-80 (hex) Shenzhen Century Xinyang Technology Co., Ltd\r
90DE80 (base 16) Shenzhen Century Xinyang Technology Co., Ltd\r
Dongguan Guangdong 523808\r
CN\r
\r
-9C-5F-B0 (hex) Samsung Electronics Co.,Ltd\r
-9C5FB0 (base 16) Samsung Electronics Co.,Ltd\r
- #94-1, Imsoo-Dong\r
- Gumi Gyeongbuk 730-350\r
- KR\r
-\r
-E8-7F-6B (hex) Samsung Electronics Co.,Ltd\r
-E87F6B (base 16) Samsung Electronics Co.,Ltd\r
- #94-1, Imsoo-Dong\r
- Gumi Gyeongbuk 730-350\r
- KR\r
-\r
FC-B6-9D (hex) Zhejiang Dahua Technology Co., Ltd.\r
FCB69D (base 16) Zhejiang Dahua Technology Co., Ltd.\r
No.1199,Waterfront Road \r
Hangzhou Zhejiang 310053\r
CN\r
\r
+78-6A-1F (hex) ARRIS Group, Inc.\r
+786A1F (base 16) ARRIS Group, Inc.\r
+ 6450 Sequence Drive\r
+ San Diego CA 92121\r
+ US\r
+\r
+24-94-CB (hex) ARRIS Group, Inc.\r
+2494CB (base 16) ARRIS Group, Inc.\r
+ 6450 Sequence Drive\r
+ San Diego CA 92121\r
+ US\r
+\r
18-5B-B3 (hex) Samsung Electronics Co.,Ltd\r
185BB3 (base 16) Samsung Electronics Co.,Ltd\r
#94-1, Imsoo-Dong\r
Gumi Gyeongbuk 730-350\r
KR\r
\r
-94-F2-BB (hex) Valeo Vision Systems\r
-94F2BB (base 16) Valeo Vision Systems\r
- Dunmore Road\r
- Tuam Co. Galway H54 Y276\r
- IE\r
+48-8B-0A (hex) Cisco Systems, Inc\r
+488B0A (base 16) Cisco Systems, Inc\r
+ 80 West Tasman Drive\r
+ San Jose CA 94568\r
+ US\r
+\r
+8C-7A-15 (hex) Ruckus Wireless\r
+8C7A15 (base 16) Ruckus Wireless\r
+ 350 West Java Drive\r
+ Sunnyvale CA 94089\r
+ US\r
\r
64-20-E0 (hex) T3 Technology Co., Ltd.\r
6420E0 (base 16) T3 Technology Co., Ltd.\r
Dongguan 523808\r
CN\r
\r
+E4-F1-D4 (hex) vivo Mobile Communication Co., Ltd.\r
+E4F1D4 (base 16) vivo Mobile Communication Co., Ltd.\r
+ #283,BBK Road\r
+ Wusha,Chang'An DongGuan City,Guangdong, 523860\r
+ CN\r
+\r
A4-6D-A4 (hex) HUAWEI TECHNOLOGIES CO.,LTD\r
A46DA4 (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
-48-8B-0A (hex) Cisco Systems, Inc\r
-488B0A (base 16) Cisco Systems, Inc\r
- 80 West Tasman Drive\r
- San Jose CA 94568\r
- US\r
-\r
-24-94-CB (hex) ARRIS Group, Inc.\r
-2494CB (base 16) ARRIS Group, Inc.\r
- 6450 Sequence Drive\r
- San Diego CA 92121\r
- US\r
-\r
-78-6A-1F (hex) ARRIS Group, Inc.\r
-786A1F (base 16) ARRIS Group, Inc.\r
- 6450 Sequence Drive\r
- San Diego CA 92121\r
- US\r
-\r
-8C-7A-15 (hex) Ruckus Wireless\r
-8C7A15 (base 16) Ruckus Wireless\r
- 350 West Java Drive\r
- Sunnyvale CA 94089\r
- US\r
-\r
84-11-C2 (hex) IEEE Registration Authority\r
8411C2 (base 16) IEEE Registration Authority\r
445 Hoes Lane\r
Piscataway NJ 08554\r
US\r
\r
+20-AC-9C (hex) China Telecom Corporation Limited\r
+20AC9C (base 16) China Telecom Corporation Limited\r
+ 31 Jinrong Street, Xicheng District, Beijing, China\r
+ Beijing, China 100033\r
+ CN\r
+\r
28-AD-18 (hex) Hui Zhou Gaoshengda Technology Co.,LTD\r
28AD18 (base 16) Hui Zhou Gaoshengda Technology Co.,LTD\r
No.75,Zhongkai High-Tech Development District,Huizhou\r
Dongguan Guangdong 523808\r
CN\r
\r
-20-AC-9C (hex) China Telecom Corporation Limited\r
-20AC9C (base 16) China Telecom Corporation Limited\r
- 31 Jinrong Street, Xicheng District, Beijing, China\r
- Beijing, China 100033\r
- CN\r
-\r
74-78-27 (hex) Dell Inc.\r
747827 (base 16) Dell Inc.\r
One Dell Way\r
Round Rock TX 78682\r
US\r
\r
-10-96-93 (hex) Amazon Technologies Inc.\r
-109693 (base 16) Amazon Technologies Inc.\r
- P.O Box 8102\r
- Reno NV 89507\r
+C4-0B-31 (hex) Apple, Inc.\r
+C40B31 (base 16) Apple, Inc.\r
+ 1 Infinite Loop\r
+ Cupertino CA 95014\r
US\r
\r
-E4-F1-D4 (hex) vivo Mobile Communication Co., Ltd.\r
-E4F1D4 (base 16) vivo Mobile Communication Co., Ltd.\r
- #283,BBK Road\r
- Wusha,Chang'An DongGuan City,Guangdong, 523860\r
+BC-62-CE (hex) SHENZHEN NETIS TECHNOLOGY CO.,LTD\r
+BC62CE (base 16) SHENZHEN NETIS TECHNOLOGY CO.,LTD\r
+ 8 Floor, Bd B, information port, Langshan RD, Nanshan district, \r
+ Shenzhen Guangdong 518057\r
CN\r
\r
94-09-D3 (hex) shenzhen maxtopic technology co.,ltd\r
shenzhen guangdong 518108\r
CN\r
\r
+78-2E-56 (hex) China Mobile Group Device Co.,Ltd.\r
+782E56 (base 16) China Mobile Group Device Co.,Ltd.\r
+ 32 Xuanwumen West Street,Xicheng District\r
+ Beijing 100053\r
+ CN\r
+\r
58-D5-6E (hex) D-Link International\r
58D56E (base 16) D-Link International\r
1 Internal Business Park, #03-12,The Synergy\r
Singapore Singapore 609917\r
SG\r
\r
-BC-62-CE (hex) SHENZHEN NETIS TECHNOLOGY CO.,LTD\r
-BC62CE (base 16) SHENZHEN NETIS TECHNOLOGY CO.,LTD\r
- 8 Floor, Bd B, information port, Langshan RD, Nanshan district, \r
- Shenzhen Guangdong 518057\r
- CN\r
-\r
-78-2E-56 (hex) China Mobile Group Device Co.,Ltd.\r
-782E56 (base 16) China Mobile Group Device Co.,Ltd.\r
- 32 Xuanwumen West Street,Xicheng District\r
- Beijing 100053\r
+C4-CB-54 (hex) Fibocom Auto Inc.\r
+C4CB54 (base 16) Fibocom Auto Inc.\r
+ 5/F,Tower A,Technology Building II,1057# Nanhai Blvd\r
+ Shenzhen Guangdong 518054\r
CN\r
\r
-C4-0B-31 (hex) Apple, Inc.\r
-C40B31 (base 16) Apple, Inc.\r
- 1 Infinite Loop\r
- Cupertino CA 95014\r
+10-2D-31 (hex) Shenzhen Americas Trading Company LLC\r
+102D31 (base 16) Shenzhen Americas Trading Company LLC\r
+ 1308 Capital Ave.Suite #7\r
+ Plano TX 75074\r
US\r
\r
+0C-35-4F (hex) Nokia\r
+0C354F (base 16) Nokia\r
+ 600 March Road\r
+ Kanata Ontario K2K 2E6\r
+ CA\r
+\r
30-24-A9 (hex) HP Inc.\r
3024A9 (base 16) HP Inc.\r
10300 Energy Dr\r
Spring TX 77389\r
US\r
\r
-A8-6E-4E (hex) Huawei Device Co., Ltd.\r
-A86E4E (base 16) Huawei Device Co., Ltd.\r
- No.2 of Xincheng Road, Songshan Lake Zone\r
- Dongguan Guangdong 523808\r
- CN\r
-\r
94-5F-34 (hex) Renesas Electronics (Penang) Sdn. Bhd.\r
945F34 (base 16) Renesas Electronics (Penang) Sdn. Bhd.\r
Phase 3, Bayan Lepas FIZ\r
Seoul 153-801\r
KR\r
\r
-2C-4A-11 (hex) Ciena Corporation\r
-2C4A11 (base 16) Ciena Corporation\r
- 7035 Ridge Road\r
- Hanover MD 21076\r
- US\r
-\r
-1C-4C-48 (hex) ITEL MOBILE LIMITED\r
-1C4C48 (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
-C4-CB-54 (hex) Fibocom Auto Inc.\r
-C4CB54 (base 16) Fibocom Auto Inc.\r
- 5/F,Tower A,Technology Building II,1057# Nanhai Blvd\r
- Shenzhen Guangdong 518054\r
- CN\r
-\r
-10-2D-31 (hex) Shenzhen Americas Trading Company LLC\r
-102D31 (base 16) Shenzhen Americas Trading Company LLC\r
- 1308 Capital Ave.Suite #7\r
- Plano TX 75074\r
- US\r
-\r
-2C-07-86 (hex) Huawei Device Co., Ltd.\r
-2C0786 (base 16) Huawei Device Co., Ltd.\r
- No.2 of Xincheng Road, Songshan Lake Zone\r
- Dongguan Guangdong 523808\r
- CN\r
-\r
-0C-35-4F (hex) Nokia\r
-0C354F (base 16) Nokia\r
- 600 March Road\r
- Kanata Ontario K2K 2E6\r
- CA\r
-\r
60-81-2B (hex) Astronics Custom Control Concepts\r
60812B (base 16) Astronics Custom Control Concepts\r
6020 S 190th ST\r
San Jose CA 94568\r
US\r
\r
+2C-07-86 (hex) Huawei Device Co., Ltd.\r
+2C0786 (base 16) Huawei Device Co., Ltd.\r
+ No.2 of Xincheng Road, Songshan Lake Zone\r
+ Dongguan Guangdong 523808\r
+ CN\r
+\r
+A8-6E-4E (hex) Huawei Device Co., Ltd.\r
+A86E4E (base 16) Huawei Device Co., Ltd.\r
+ No.2 of Xincheng Road, Songshan Lake Zone\r
+ Dongguan Guangdong 523808\r
+ CN\r
+\r
+2C-4A-11 (hex) Ciena Corporation\r
+2C4A11 (base 16) Ciena Corporation\r
+ 7035 Ridge Road\r
+ Hanover MD 21076\r
+ US\r
+\r
+1C-4C-48 (hex) ITEL MOBILE LIMITED\r
+1C4C48 (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
+00-14-5A (hex) Westermo Neratec AG\r
+00145A (base 16) Westermo Neratec AG\r
+ Rosswiesstrasse 29\r
+ CH-8608 Bubikon ZH\r
+ CH\r
+\r
+A8-99-DC (hex) i-TOP DESING TECHNOLOGY CO.,LTD\r
+A899DC (base 16) i-TOP DESING TECHNOLOGY CO.,LTD\r
+ 301-302,Rongchengda Building,Dabao Road, Bao an District\r
+ Shenzhen 518101\r
+ CN\r
+\r
+B0-7B-25 (hex) Dell Inc.\r
+B07B25 (base 16) Dell Inc.\r
+ One Dell Way\r
+ Round Rock TX 78682\r
+ US\r
+\r
30-E2-83 (hex) Texas Instruments\r
30E283 (base 16) Texas Instruments\r
12500 TI Blvd\r
Dallas TX 75243\r
US\r
\r
+48-F0-7B (hex) ALPSALPINE CO,.LTD\r
+48F07B (base 16) ALPSALPINE CO,.LTD\r
+ 6-1\r
+ Kakuda Miyagi-Pref 981-1595\r
+ JP\r
+\r
+28-A1-83 (hex) ALPSALPINE CO,.LTD\r
+28A183 (base 16) ALPSALPINE CO,.LTD\r
+ 6-1\r
+ Kakuda Miyagi-Pref 981-1595\r
+ JP\r
+\r
+00-1E-3D (hex) ALPSALPINE CO,.LTD\r
+001E3D (base 16) ALPSALPINE CO,.LTD\r
+ 1-2-1, Okinouchi,\r
+ Soma-city, Fukushima-pref., 976-8501\r
+ JP\r
+\r
00-02-C7 (hex) ALPSALPINE CO,.LTD\r
0002C7 (base 16) ALPSALPINE CO,.LTD\r
1-2-1, Okinouchi, Sama-City,\r
Soma-city Fukushima 976-8501\r
JP\r
\r
-28-A1-83 (hex) ALPSALPINE CO,.LTD\r
-28A183 (base 16) ALPSALPINE CO,.LTD\r
- 6-1\r
- Kakuda Miyagi-Pref 981-1595\r
- JP\r
+1C-D1-BA (hex) Fiberhome Telecommunication Technologies Co.,LTD\r
+1CD1BA (base 16) Fiberhome Telecommunication Technologies Co.,LTD\r
+ No.5 DongXin Road\r
+ Wuhan Hubei 430074\r
+ CN\r
\r
-00-1E-3D (hex) ALPSALPINE CO,.LTD\r
-001E3D (base 16) ALPSALPINE CO,.LTD\r
- 1-2-1, Okinouchi,\r
- Soma-city, Fukushima-pref., 976-8501\r
- JP\r
+E0-29-67 (hex) HMD Global Oy\r
+E02967 (base 16) HMD Global Oy\r
+ Bertel Jungin aukio 9\r
+ Espoo 02600\r
+ FI\r
\r
-48-F0-7B (hex) ALPSALPINE CO,.LTD\r
-48F07B (base 16) ALPSALPINE CO,.LTD\r
- 6-1\r
- Kakuda Miyagi-Pref 981-1595\r
- JP\r
+98-8B-69 (hex) Shenzhen hylitech Co.,LTD\r
+988B69 (base 16) Shenzhen hylitech Co.,LTD\r
+ Room 1001, Tower B, Daulshine Global Science And Technology Center, Hong Lang 2 Road North, Baoan District, Shenzhen 518101, China\r
+ shenzhen GuangDong 518109\r
+ CN\r
\r
-00-14-5A (hex) Westermo Neratec AG\r
-00145A (base 16) Westermo Neratec AG\r
- Rosswiesstrasse 29\r
- CH-8608 Bubikon ZH\r
- CH\r
+18-14-6C (hex) Zhejiang Tmall Technology Co., Ltd.\r
+18146C (base 16) Zhejiang Tmall Technology Co., Ltd.\r
+ Ali Center,No.3331 Keyuan South RD (Shenzhen bay), Nanshan District, Shenzhen Guangdong province\r
+ Shenzhen GuangDong 518000\r
+ CN\r
+\r
+9C-05-67 (hex) Honor Device Co., Ltd.\r
+9C0567 (base 16) Honor Device Co., Ltd.\r
+ A1701, Block AB, Building 1, Tianan Yungu Phase I, Gangtou Community, Bantian Street\r
+ Shenzhen Guangdong 518129\r
+ CN\r
+\r
+C0-E3-FB (hex) HUAWEI TECHNOLOGIES CO.,LTD\r
+C0E3FB (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
+84-EA-ED (hex) Roku, Inc\r
+84EAED (base 16) Roku, Inc\r
+ 1155 Coleman Ave\r
+ San Jose CA 95110\r
+ US\r
+\r
+00-12-AD (hex) VIVAVIS AG\r
+0012AD (base 16) VIVAVIS AG\r
+ Nobelstraße, 18\r
+ Ettlingen Baden-Württemberg 76275\r
+ DE\r
+\r
+40-89-A8 (hex) WiredIQ, LLC\r
+4089A8 (base 16) WiredIQ, LLC\r
+ 1 South School Avenue\r
+ sarasota FL 34237\r
+ US\r
+\r
+3C-20-93 (hex) GD Midea Air-Conditioning Equipment Co.,Ltd.\r
+3C2093 (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
+44-AE-25 (hex) Cisco Systems, Inc\r
+44AE25 (base 16) Cisco Systems, Inc\r
+ 80 West Tasman Drive\r
+ San Jose CA 94568\r
+ US\r
+\r
+BC-E7-12 (hex) Cisco Systems, Inc\r
+BCE712 (base 16) Cisco Systems, Inc\r
+ 80 West Tasman Drive\r
+ San Jose CA 94568\r
+ US\r
+\r
+B0-7D-64 (hex) Intel Corporate\r
+B07D64 (base 16) Intel Corporate\r
+ Lot 8, Jalan Hi-Tech 2/3 \r
+ Kulim Kedah 09000\r
+ MY\r
+\r
+00-42-38 (hex) Intel Corporate\r
+004238 (base 16) Intel Corporate\r
+ Lot 8, Jalan Hi-Tech 2/3 \r
+ Kulim Kedah 09000\r
+ MY\r
+\r
+50-C3-A2 (hex) nFore Technology Co.,Ltd.\r
+50C3A2 (base 16) nFore Technology Co.,Ltd.\r
+ 5F., No.31, Ln. 258, Ruiguang Rd. Neihu Dist., Taipei City 114, Taiwan\r
+ Taipei 114\r
+ TW\r
+\r
+80-4B-50 (hex) Silicon Laboratories\r
+804B50 (base 16) Silicon Laboratories\r
+ 400 West Cesar Chavez Street\r
+ Austin TX 78701\r
+ US\r
+\r
+68-3F-7D (hex) INGRAM MICRO SERVICES\r
+683F7D (base 16) INGRAM MICRO SERVICES\r
+ 100 CHEMIN DE BAILLOT\r
+ MONTAUBAN 82000\r
+ FR\r
+\r
+74-8F-4D (hex) duagon Germany GmbH\r
+748F4D (base 16) duagon Germany GmbH\r
+ Neuwieder Straße 1-7\r
+ Nuremberg Bavaria 90411\r
+ DE\r
+\r
+BC-F4-5F (hex) zte corporation\r
+BCF45F (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
+60-55-F9 (hex) Espressif Inc.\r
+6055F9 (base 16) Espressif Inc.\r
+ Room 204, Building 2, 690 Bibo Rd, Pudong New Area\r
+ Shanghai Shanghai 201203\r
+ CN\r
+\r
+8C-EA-48 (hex) Samsung Electronics Co.,Ltd\r
+8CEA48 (base 16) Samsung Electronics Co.,Ltd\r
+ 129, Samsung-ro, Youngtongl-Gu\r
+ Suwon Gyeonggi-Do 16677\r
+ KR\r
+\r
+00-5F-67 (hex) TP-Link Corporation Limited\r
+005F67 (base 16) TP-Link Corporation Limited\r
+ Room 901,9/F.New East Ocean Centre, 9 Science Museum Road\r
+ Tsim Sha Tsui Kowloon 999077\r
+ HK\r
+\r
+50-3D-C6 (hex) Xiaomi Communications Co Ltd\r
+503DC6 (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
+B0-BD-1B (hex) Dongguan Liesheng Electronic Co., Ltd.\r
+B0BD1B (base 16) Dongguan Liesheng Electronic Co., Ltd.\r
+ F5, Building B, North Block, Gaosheng Tech Park, No. 84 Zhongli Road, Nancheng District, Dongguan Ci\r
+ dongguan guangdong 523000\r
+ CN\r
+\r
+D4-EC-AB (hex) vivo Mobile Communication Co., Ltd.\r
+D4ECAB (base 16) vivo Mobile Communication Co., Ltd.\r
+ #283,BBK Road\r
+ Wusha,Chang'An DongGuan City,Guangdong, 523860\r
+ CN\r
+\r
+BC-3E-CB (hex) vivo Mobile Communication Co., Ltd.\r
+BC3ECB (base 16) vivo Mobile Communication Co., Ltd.\r
+ #283,BBK Road\r
+ Wusha,Chang'An DongGuan City,Guangdong, 523860\r
+ CN\r
+\r
+08-79-8C (hex) HUAWEI TECHNOLOGIES CO.,LTD\r
+08798C (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-DB-A2 (hex) Fibrain\r
+54DBA2 (base 16) Fibrain\r
+ Zaczernie 190F\r
+ Zaczernie Subcarpathia 36-062\r
+ PL\r
+\r
+08-9B-B9 (hex) Nokia Solutions and Networks GmbH & Co. KG\r
+089BB9 (base 16) Nokia Solutions and Networks GmbH & Co. KG\r
+ Werinherstrasse 91\r
+ München Bavaria D-81541\r
+ DE\r
+\r
+10-96-93 (hex) Amazon Technologies Inc.\r
+109693 (base 16) Amazon Technologies Inc.\r
+ P.O Box 8102 \r
+ Reno NV 89507\r
+ US\r
+\r
+34-AF-B3 (hex) Amazon Technologies Inc.\r
+34AFB3 (base 16) Amazon Technologies Inc.\r
+ P.O Box 8102 \r
+ Reno NV 89507\r
+ US\r
+\r
+64-A1-98 (hex) Huawei Device Co., Ltd.\r
+64A198 (base 16) Huawei Device Co., Ltd.\r
+ No.2 of Xincheng Road, Songshan Lake Zone\r
+ Dongguan Guangdong 523808\r
+ CN\r
+\r
+5C-9A-A1 (hex) Huawei Device Co., Ltd.\r
+5C9AA1 (base 16) Huawei Device Co., Ltd.\r
+ No.2 of Xincheng Road, Songshan Lake Zone\r
+ Dongguan Guangdong 523808\r
+ CN\r
+\r
+24-ED-FD (hex) Siemens Canada Limited\r
+24EDFD (base 16) Siemens Canada Limited\r
+ 1954 Technology Drive\r
+ Peterborough Ontario K9J 6X7\r
+ CA\r
+\r
+6C-CD-D6 (hex) NETGEAR\r
+6CCDD6 (base 16) NETGEAR\r
+ 350 East Plumeria Drive\r
+ San Jose CA 95134\r
+ US\r
+\r
+54-07-64 (hex) Huawei Device Co., Ltd.\r
+540764 (base 16) Huawei Device Co., Ltd.\r
+ No.2 of Xincheng Road, Songshan Lake Zone\r
+ Dongguan Guangdong 523808\r
+ CN\r
+\r
+DC-D7-A0 (hex) Huawei Device Co., Ltd.\r
+DCD7A0 (base 16) Huawei Device Co., Ltd.\r
+ No.2 of Xincheng Road, Songshan Lake Zone\r
+ Dongguan Guangdong 523808\r
+ CN\r
+\r
+98-77-E7 (hex) Kaonmedia CO., LTD.\r
+9877E7 (base 16) Kaonmedia CO., LTD.\r
+ 884-3, Seongnam-daero, Bundang-gu\r
+ Seongnam-si Gyeonggi-do 13517\r
+ KR\r
+\r
+14-18-C3 (hex) Intel Corporate\r
+1418C3 (base 16) Intel Corporate\r
+ Lot 8, Jalan Hi-Tech 2/3 \r
+ Kulim Kedah 09000\r
+ MY\r
+\r
+78-D4-F1 (hex) IEEE Registration Authority\r
+78D4F1 (base 16) IEEE Registration Authority\r
+ 445 Hoes Lane\r
+ Piscataway NJ 08554\r
+ US\r
Jamaica NY 11435\r
US\r
\r
-4C-93-A6 (hex) 4D Sistem Ticaret A.S.\r
-400000-4FFFFF (base 16) 4D Sistem Ticaret A.S.\r
- Oran Mah. Turan Gunes Bul. Park Oran Ofis 180-Y No:6 Cankaya \r
- ANKARA 06550\r
- TR\r
-\r
4C-93-A6 (hex) Private\r
500000-5FFFFF (base 16) Private\r
\r
Singapore 486123\r
SG\r
\r
+8C-AE-49 (hex) Chengdu BillDTE Technology Co., Ltd\r
+600000-6FFFFF (base 16) Chengdu BillDTE Technology Co., Ltd\r
+ Chengdu BiiDTE Technology Co.,Ltd\r
+ Chengdu Sichuan 610041\r
+ CN\r
+\r
8C-AE-49 (hex) Gigawave\r
A00000-AFFFFF (base 16) Gigawave\r
Unit 4 Metro Business Park, ballycurreen\r
cork T12 HP60\r
IE\r
\r
-8C-AE-49 (hex) Chengdu BillDTE Technology Co., Ltd\r
-600000-6FFFFF (base 16) Chengdu BillDTE Technology Co., Ltd\r
- Chengdu BiiDTE Technology Co.,Ltd\r
- Chengdu Sichuan 610041\r
+8C-AE-49 (hex) TTR Corporation\r
+900000-9FFFFF (base 16) TTR Corporation\r
+ 20-1 Iwaoshi-machi\r
+ Takasaki-shi Gunma 370-0044\r
+ JP\r
+\r
+8C-AE-49 (hex) Precitec Optronik GmbH\r
+700000-7FFFFF (base 16) Precitec Optronik GmbH\r
+ Schleussnerstraße 54\r
+ Neu-Isenburg Hessen 63263\r
+ DE\r
+\r
+8C-AE-49 (hex) Parametric GmbH\r
+C00000-CFFFFF (base 16) Parametric GmbH\r
+ Waldeggstrasse 82\r
+ Interlaken BE 3800\r
+ CH\r
+\r
+8C-AE-49 (hex) LLC Taipit - Measuring Equipment\r
+800000-8FFFFF (base 16) LLC Taipit - Measuring Equipment\r
+ Voroshilova, 2\r
+ Saint-Petersburg 193318\r
+ RU\r
+\r
+A4-53-EE (hex) Stellamore\r
+100000-1FFFFF (base 16) Stellamore\r
+ Room 1519, 15th Floor, Block A, Economic Building, Baoyuan Huafeng Headquarters, No. 288, Xixiang Avenue, Bao'an District\r
+ Shenzhen Guangdong 518100\r
+ CN\r
+\r
+8C-AE-49 (hex) Shenzhen C & D Electronics Co., Ltd.\r
+E00000-EFFFFF (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
+A4-53-EE (hex) Dongguan HuaFuu industrial co., LTD\r
+900000-9FFFFF (base 16) Dongguan HuaFuu industrial co., LTD\r
+ Huafuu technology park,jinggangzhong Road,shatian\r
+ Dongguan Guangdong 523841\r
+ CN\r
+\r
+A4-53-EE (hex) Ubisafe Smart Devices\r
+200000-2FFFFF (base 16) Ubisafe Smart Devices\r
+ Getulio Vargas 2729\r
+ Sao Jose SC 88103-400\r
+ BR\r
+\r
+4C-93-A6 (hex) 4TheWall - 4D Sistem A.S\r
+400000-4FFFFF (base 16) 4TheWall - 4D Sistem A.S\r
+ Oran Mah. Turan Gunes Bul. Park Oran Ofis 180-Y No:6 Cankaya \r
+ ANKARA 06550\r
+ TR\r
+\r
+A0-02-4A (hex) Xiaojie Technology (Shenzhen) Co., Ltd\r
+600000-6FFFFF (base 16) Xiaojie Technology (Shenzhen) Co., Ltd\r
+ 801#, Block B1,Kexing Secience Park, Hi-Tech Industrial Park, Nanshan District\r
+ Shenzhen Guangdong 518000\r
+ CN\r
+\r
+78-D4-F1 (hex) Huaqin Telecom Technology Co.,Ltd.\r
+500000-5FFFFF (base 16) Huaqin Telecom Technology Co.,Ltd.\r
+ Building 1,No.399, Keyuan Road, Pudong, Shanghai China\r
+ Shanghai 200120\r
CN\r
\r
4C-4B-F9 (hex) Shenzhen dingsheng technology co., LTD\r
Ewing NJ 08628\r
US\r
\r
+8C-AE-49 (hex) H3 Platform\r
+100000-1FFFFF (base 16) H3 Platform\r
+ 11F-1, No. 79, Sec. 1, Xingtai 5th rd., Xizhi\r
+ New Taipei 221\r
+ TW\r
+\r
+A4-53-EE (hex) MAHLE ELECTRONICS, SLU\r
+000000-0FFFFF (base 16) MAHLE ELECTRONICS, SLU\r
+ Ctra. Madrid-Valencia Km. 196\r
+ Motilla del Palancar Cuenca 16200\r
+ ES\r
+\r
+A4-53-EE (hex) Aura Home, Inc.\r
+600000-6FFFFF (base 16) Aura Home, Inc.\r
+ 50 Eldridge Street, Suite 5D\r
+ New York NY 10002\r
+ US\r
+\r
+A4-53-EE (hex) SSK CORPORATION\r
+D00000-DFFFFF (base 16) SSK CORPORATION\r
+ 3F, M-10, Centre of Hi-Tech Industrial Park, Nanshan\r
+ Shenzhen 518054\r
+ CN\r
+\r
+A0-02-4A (hex) Argos Solutions AS\r
+400000-4FFFFF (base 16) Argos Solutions AS\r
+ Dyrmyrgata 35\r
+ Kongsberg 3611\r
+ NO\r
+\r
+A0-02-4A (hex) Danriver Technologies Corp.\r
+200000-2FFFFF (base 16) Danriver Technologies Corp.\r
+ Building 3#, 2F, Yunxin Rd. \r
+ Shanghai 200436\r
+ CN\r
+\r
+A0-02-4A (hex) Xi'an Yingsheng Electric Technology Co.,Ltd.\r
+B00000-BFFFFF (base 16) Xi'an Yingsheng Electric Technology Co.,Ltd.\r
+ Room 303, building B, Xi'an University of Technology science and Technology Park, 26 Gazelle road, Zhang Ba Street office,\r
+ Xi'an 710065\r
+ CN\r
+\r
+A0-02-4A (hex) Kontakt Micro-Location Sp z o.o.\r
+900000-9FFFFF (base 16) Kontakt Micro-Location Sp z o.o.\r
+ Stoczniowcow 3\r
+ Krakow 30-709\r
+ PL\r
+\r
20-85-93 (hex) UNILUMIN GROUP CO.,LTD\r
300000-3FFFFF (base 16) UNILUMIN GROUP CO.,LTD\r
No.112 Yongfu Rd.,BaoanDistrict,\r
Greater Noida Uttar Pradesh 201310\r
IN\r
\r
-C0-61-9A (hex) Stello\r
-400000-4FFFFF (base 16) Stello\r
- 1041 Rue Parent\r
- Saint-Bruno-de-Montarville Quebec J3V 6L7\r
- CA\r
-\r
C0-61-9A (hex) IPG Automotive GmbH\r
600000-6FFFFF (base 16) IPG Automotive GmbH\r
Bannwaldallee 60\r
Bochum 44799 \r
DE\r
\r
+C0-61-9A (hex) Stello\r
+400000-4FFFFF (base 16) Stello\r
+ 9995 Rue de Châteauneuf (Local V)\r
+ Brossard Quebec J4Z 3V7\r
+ CA\r
+\r
+8C-AE-49 (hex) Larch Networks\r
+D00000-DFFFFF (base 16) Larch Networks\r
+ 11 Amal Str.\r
+ Rosh Ain 4809239\r
+ IL\r
+\r
+A4-53-EE (hex) T-Touching Co., Ltd.\r
+800000-8FFFFF (base 16) T-Touching Co., Ltd.\r
+ 28B, No. 4, Science and Technology 10th Road\r
+ Dongguan GuangDong 52300\r
+ CN\r
+\r
+A0-02-4A (hex) bitbee Inc\r
+D00000-DFFFFF (base 16) bitbee Inc\r
+ #703, 361 Simindae-ro, Dongan-gu,\r
+ anyang-si gyeonggi-do 14057\r
+ KR\r
+\r
+A4-53-EE (hex) Beijing Lanke Science and Technology Co.,LTd.\r
+700000-7FFFFF (base 16) Beijing Lanke Science and Technology Co.,LTd.\r
+ Room 607, building 6, No.1, Chaoqian Road, science and Technology Park, Changping District\r
+ Beijing 102209\r
+ CN\r
+\r
+A0-02-4A (hex) Zhejiang Hechuan Technology Co.,Ltd\r
+000000-0FFFFF (base 16) Zhejiang Hechuan Technology Co.,Ltd\r
+ No. 9, Fucai Road, Longyou Industrial Zone, Quzhou City, Zhejiang Province, PRC\r
+ Quzhou 324000\r
+ CN\r
+\r
+A0-02-4A (hex) SomaDetect Inc\r
+300000-3FFFFF (base 16) SomaDetect Inc\r
+ 241 Canada Street, Suite 10 \r
+ Fredericton New Brunswick E3A 4A1\r
+ CA\r
+\r
4C-4B-F9 (hex) Shandong Linkotech Electronic Co., Ltd.\r
600000-6FFFFF (base 16) Shandong Linkotech Electronic Co., Ltd.\r
22nd Floor, Building 2, Aosheng Building, No.1166 Xinyi Street, High-tech Zone\r
8C-47-6E (hex) Private\r
700000-7FFFFF (base 16) Private\r
\r
+8C-AE-49 (hex) BERTIN TECHNOLOGIES\r
+300000-3FFFFF (base 16) BERTIN TECHNOLOGIES\r
+ 10 Avenue Ampère\r
+ Montigny-le-Bretonneux IDF 78180\r
+ FR\r
+\r
+8C-AE-49 (hex) Gati Information Technolog(Kunshan)Co.,Ltd.\r
+500000-5FFFFF (base 16) Gati Information Technolog(Kunshan)Co.,Ltd.\r
+ 2-5 / F, room 7, No. 88, Baifu Road, Economic and Technological Development Zone\r
+ Kunshan. jiangsu 215300\r
+ CN\r
+\r
+8C-AE-49 (hex) SEVERIN Elektrogeräte GmbH\r
+200000-2FFFFF (base 16) SEVERIN Elektrogeräte GmbH\r
+ Röhre 27\r
+ Sundern NRW 59846\r
+ DE\r
+\r
+A4-53-EE (hex) Williamson Corporation\r
+400000-4FFFFF (base 16) Williamson Corporation\r
+ 70 Domino Drive\r
+ Concord MA 01742\r
+ US\r
+\r
+A4-53-EE (hex) SOS LAB Co., Ltd.\r
+C00000-CFFFFF (base 16) SOS LAB Co., Ltd.\r
+ B-101, BI Center, GIST 123 Cheomdangwagi-ro\r
+ Gwangju 61005\r
+ KR\r
+\r
+A4-53-EE (hex) Foshan Yisihang Electrical Technology Co., Ltd.\r
+500000-5FFFFF (base 16) Foshan Yisihang Electrical Technology Co., Ltd.\r
+ F4 Block A Lege Industrial Park, North Yucheng Road, Lunjiao Town, Shunde District\r
+ Foshan Guangdong 528308\r
+ CN\r
+\r
+A4-53-EE (hex) Larva.io OÜ\r
+300000-3FFFFF (base 16) Larva.io OÜ\r
+ Sidur 3\r
+ Tallinn 11313\r
+ EE\r
+\r
+A0-02-4A (hex) IoTecha Corp\r
+E00000-EFFFFF (base 16) IoTecha Corp\r
+ 2555 Route 130, Suite 2\r
+ Cranbury NJ 08512\r
+ US\r
+\r
20-85-93 (hex) Great Lite International\r
700000-7FFFFF (base 16) Great Lite International\r
11F., No.207-2, Sec. 3, Beixin Rd., Xindian Dist.,\r
Matam Scientific Industries Center, Building 8.2\r
Mail box 15123 Haifa 3508409\r
IL\r
+\r
+8C-AE-49 (hex) Jiangsu Sixingda Information Technology Co., Ltd.\r
+400000-4FFFFF (base 16) Jiangsu Sixingda Information Technology Co., Ltd.\r
+ Jiangsu Sixingda Information Technology Co., Ltd.\r
+ Nanjing Jiangsu 210000\r
+ CN\r
+\r
+8C-AE-49 (hex) Suzhou Guowang Electronics Technology Co., Ltd.\r
+B00000-BFFFFF (base 16) Suzhou Guowang Electronics Technology Co., Ltd.\r
+ No. 99, Changli Road, 703, Wuzhong science and technology entrepreneurship Park\r
+ Suzhou 215168\r
+ CN\r
+\r
+8C-AE-49 (hex) Ouman Oy\r
+000000-0FFFFF (base 16) Ouman Oy\r
+ Voimatie 6\r
+ Kempele FIN-90440\r
+ FI\r
+\r
+A4-53-EE (hex) Viper Design, LLC\r
+B00000-BFFFFF (base 16) Viper Design, LLC\r
+ 85 Cude Lane\r
+ Madison TN 37115\r
+ US\r
+\r
+A0-02-4A (hex) Donguan Amsamotion Automation Technology Co., Ltd\r
+500000-5FFFFF (base 16) Donguan Amsamotion Automation Technology Co., Ltd\r
+ Block A, Zosun Intelligence Creation Zone, No.9 Yizhan Road, Yuanwubian Streeet Nancheng District,\r
+ Dongguan Gunagdong 523000\r
+ CN\r
+\r
+A0-02-4A (hex) Guangdong Jinpeng Technology Co. LTD\r
+A00000-AFFFFF (base 16) Guangdong Jinpeng Technology Co. LTD\r
+ Room 504, 5 / F, Self-built A3 Building, No. 50 Science Avenue, Huangpu District\r
+ Guangzhou 510700\r
+ CN\r
+\r
+A0-02-4A (hex) Encroute AB\r
+C00000-CFFFFF (base 16) Encroute AB\r
+ Box 2062\r
+ Sundbyberg 17402\r
+ SE\r
+\r
+A0-02-4A (hex) Vitec Imaging Solutions Spa\r
+100000-1FFFFF (base 16) Vitec Imaging Solutions Spa\r
+ Via Valsugana 100\r
+ Cassola Vicenza 36022\r
+ IT\r
+\r
+A0-02-4A (hex) Beijing Lyratone Technology Co., Ltd\r
+800000-8FFFFF (base 16) Beijing Lyratone Technology Co., Ltd\r
+ 1st floor, Caigang building, No.40 Beiyuan Road\r
+ Beijing 100020\r
+ CN\r
+\r
+78-D4-F1 (hex) Cartender\r
+100000-1FFFFF (base 16) Cartender\r
+ Via della Meccanica 2a\r
+ Padova PD 35127\r
+ IT\r
Pitstone Bucks LU7 9GX\r
GB\r
\r
-70-B3-D5 (hex) Viko Elektrik-Elektronik A.Ş.\r
-EC8000-EC8FFF (base 16) Viko Elektrik-Elektronik A.Ş.\r
- Abdurrahmangazi Mah. Ebubekir Cad. No:44 Sancaktepe\r
- Istanbul 34887\r
- TR\r
-\r
70-B3-D5 (hex) ATX Networks Corp\r
9D9000-9D9FFF (base 16) ATX Networks Corp\r
1-501 Clements Road West\r
Hong Kong Hong Kong 00000\r
HK\r
\r
-70-B3-D5 (hex) Technology Link Corporation\r
-B1B000-B1BFFF (base 16) Technology Link Corporation\r
- Shin-Yokohama Kohoku-ku\r
- yokohama kanagawa 222-0033\r
- JP\r
-\r
70-B3-D5 (hex) VANTAGE INTEGRATED SECURITY SOLUTIONS PVT LTD\r
6BE000-6BEFFF (base 16) VANTAGE INTEGRATED SECURITY SOLUTIONS PVT LTD\r
B3, Bredon House, 321, Tettenhall Road, Tettenhall\r
Watford Hertfordshire WD25 8HU\r
GB\r
\r
-70-B3-D5 (hex) sensorway\r
-C52000-C52FFF (base 16) sensorway\r
- A-339 samsong techno valley, 140 tongilro, deockyanggu\r
- goyangsi gyeonggido 10594\r
- KR\r
+70-B3-D5 (hex) Technology Link Corporation\r
+B1B000-B1BFFF (base 16) Technology Link Corporation\r
+ Shin-Yokohama Kohoku-ku\r
+ yokohama kanagawa 222-0033\r
+ JP\r
\r
70-B3-D5 (hex) Tucsen Photonics Co., Ltd. \r
8A7000-8A7FFF (base 16) Tucsen Photonics Co., Ltd. \r
fuzhou 350000\r
CN\r
\r
-70-B3-D5 (hex) Beijing Yourong Runda Rechnology Development Co.Ltd.\r
-980000-980FFF (base 16) Beijing Yourong Runda Rechnology Development Co.Ltd.\r
- Changping District Science and Technology Park Advanced Road 37\r
- Beijing 6219650\r
- CN\r
+70-B3-D5 (hex) sensorway\r
+C52000-C52FFF (base 16) sensorway\r
+ A-339 samsong techno valley, 140 tongilro, deockyanggu\r
+ goyangsi gyeonggido 10594\r
+ KR\r
\r
70-B3-D5 (hex) KDT Corp.\r
E72000-E72FFF (base 16) KDT Corp.\r
shaoxing zhejiang 312030\r
CN\r
\r
-70-B3-D5 (hex) AUTOMATICA Y REGULACION S.A.\r
-EBF000-EBFFFF (base 16) AUTOMATICA Y REGULACION S.A.\r
- Condell 1735, Nunoa\r
- Santiago RM 7770331\r
- CL\r
+70-B3-D5 (hex) Beijing Yourong Runda Rechnology Development Co.Ltd.\r
+980000-980FFF (base 16) Beijing Yourong Runda Rechnology Development Co.Ltd.\r
+ Changping District Science and Technology Park Advanced Road 37\r
+ Beijing 6219650\r
+ CN\r
\r
70-B3-D5 (hex) R.C. Systems Inc\r
52F000-52FFFF (base 16) R.C. Systems Inc\r
Brendola Vicenza 36040\r
IT\r
\r
+70-B3-D5 (hex) AUTOMATICA Y REGULACION S.A.\r
+EBF000-EBFFFF (base 16) AUTOMATICA Y REGULACION S.A.\r
+ Condell 1735, Nunoa\r
+ Santiago RM 7770331\r
+ CL\r
+\r
70-B3-D5 (hex) Digital Solutions JSC\r
D9F000-D9FFFF (base 16) Digital Solutions JSC\r
room 4, office 1, 3rd floor, building 7, house 9a, 2nd Sinichkina Str.\r
Moscow 111020\r
RU\r
\r
-70-B3-D5 (hex) DOGA\r
-62A000-62AFFF (base 16) DOGA\r
- 11 rue Lavoisier\r
- MAUREPAS 78310\r
- FR\r
-\r
70-B3-D5 (hex) Oculii\r
B96000-B96FFF (base 16) Oculii\r
829 Space Dr\r
Woodside NY 11377\r
US\r
\r
-70-B3-D5 (hex) Remote Diagnostic Technologies Ltd\r
-C99000-C99FFF (base 16) Remote Diagnostic Technologies Ltd\r
- Pavilion C2 Ashwood Park, Ashwood Way\r
- Basingstoke Hampshire RG23 8BG\r
- GB\r
+70-B3-D5 (hex) DOGA\r
+62A000-62AFFF (base 16) DOGA\r
+ 11 rue Lavoisier\r
+ MAUREPAS 78310\r
+ FR\r
\r
70-B3-D5 (hex) NEUROPHET, Inc.\r
E31000-E31FFF (base 16) NEUROPHET, Inc.\r
Seoul Province 06247\r
KR\r
\r
+70-B3-D5 (hex) Remote Diagnostic Technologies Ltd\r
+C99000-C99FFF (base 16) Remote Diagnostic Technologies Ltd\r
+ Pavilion C2 Ashwood Park, Ashwood Way\r
+ Basingstoke Hampshire RG23 8BG\r
+ GB\r
+\r
+70-B3-D5 (hex) Gogo Business Aviation\r
+3E0000-3E0FFF (base 16) Gogo Business Aviation\r
+ 105 Edgeview Dr., Suite 300\r
+ Broomfield CO 80021\r
+ US\r
+\r
70-B3-D5 (hex) Chromateq\r
944000-944FFF (base 16) Chromateq\r
191, allée de Lauzard, Bat. B, RDC 1 (Chromateq)\r
Nesher 3688520\r
IL\r
\r
-70-B3-D5 (hex) Gogo Business Aviation\r
-3E0000-3E0FFF (base 16) Gogo Business Aviation\r
- 105 Edgeview Dr., Suite 300\r
- Broomfield CO 80021\r
- US\r
-\r
70-B3-D5 (hex) Asiga Pty Ltd\r
53E000-53EFFF (base 16) Asiga Pty Ltd\r
Unit 2, 19-21 Bourke Road\r
Alexandria New South Wales 2015\r
AU\r
\r
-70-B3-D5 (hex) ENABLER LTD.\r
-15A000-15AFFF (base 16) ENABLER LTD.\r
- 29F Shiroyama Trust Tower 4-3-1 Toranomon \r
- Minato-ku Tokyo 105-6029\r
- JP\r
-\r
-70-B3-D5 (hex) LINEAGE POWER PVT LTD.,\r
-62E000-62EFFF (base 16) LINEAGE POWER PVT LTD.,\r
- 30-A1, KIADB, 1ST PHASE INDUSTRIAL ESTATE,KUMBALGODU, BANGALORE-MYSORE ROAD\r
- BANGALORE KARNATAKA 560074\r
- IN\r
-\r
70-B3-D5 (hex) Salupo Sas\r
898000-898FFF (base 16) Salupo Sas\r
Via Laganeto n. 129\r
Amagasaki Hyogo 660-0082\r
JP\r
\r
+70-B3-D5 (hex) LINEAGE POWER PVT LTD.,\r
+62E000-62EFFF (base 16) LINEAGE POWER PVT LTD.,\r
+ 30-A1, KIADB, 1ST PHASE INDUSTRIAL ESTATE,KUMBALGODU, BANGALORE-MYSORE ROAD\r
+ BANGALORE KARNATAKA 560074\r
+ IN\r
+\r
+70-B3-D5 (hex) ENABLER LTD.\r
+15A000-15AFFF (base 16) ENABLER LTD.\r
+ 29F Shiroyama Trust Tower 4-3-1 Toranomon \r
+ Minato-ku Tokyo 105-6029\r
+ JP\r
+\r
70-B3-D5 (hex) Grupo Epelsa S.L.\r
40D000-40DFFF (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) WEPTECH elektronik GmbH\r
+9CD000-9CDFFF (base 16) WEPTECH elektronik GmbH\r
+ Ostring 10\r
+ Landau 76829\r
+ DE\r
+\r
70-B3-D5 (hex) AnaPico AG\r
0BB000-0BBFFF (base 16) AnaPico AG\r
Europa-Strasse 9\r
Glattbrugg Schweiz 8152\r
CH\r
\r
+70-B3-D5 (hex) Egag, LLC\r
+9A8000-9A8FFF (base 16) Egag, LLC\r
+ 303 King James Ct\r
+ Upper Marlboro MD 20774\r
+ US\r
+\r
70-B3-D5 (hex) Season Electronics Ltd\r
F46000-F46FFF (base 16) Season Electronics Ltd\r
600 Nest Business Park \r
Havant Hampshire PO9 5TL\r
GB\r
\r
-70-B3-D5 (hex) WEPTECH elektronik GmbH\r
-9CD000-9CDFFF (base 16) WEPTECH elektronik GmbH\r
- Ostring 10\r
- Landau 76829\r
- DE\r
-\r
-70-B3-D5 (hex) Egag, LLC\r
-9A8000-9A8FFF (base 16) Egag, LLC\r
- 303 King James Ct\r
- Upper Marlboro MD 20774\r
- US\r
+70-B3-D5 (hex) Algodue Elettronica Srl\r
+191000-191FFF (base 16) Algodue Elettronica Srl\r
+ Via P. Gobetti, 16F\r
+ Maggiora NO 28014\r
+ IT\r
\r
70-B3-D5 (hex) Hermann Sewerin GmbH\r
484000-484FFF (base 16) Hermann Sewerin GmbH\r
GwangMyung-si Gyeonggi-do, Korea 14322\r
KR\r
\r
-70-B3-D5 (hex) Algodue Elettronica Srl\r
-191000-191FFF (base 16) Algodue Elettronica Srl\r
- Via P. Gobetti, 16F\r
- Maggiora NO 28014\r
- IT\r
-\r
70-B3-D5 (hex) Beijing Vizum Technology Co.,Ltd.\r
F33000-F33FFF (base 16) Beijing Vizum Technology Co.,Ltd.\r
Room603, Floor6, Block2, No.1 Zhongguancun, No.81 Beiqing Road\r
Beijing Beijing 100094\r
CN\r
\r
-70-B3-D5 (hex) Volution Group UK\r
-687000-687FFF (base 16) Volution Group UK\r
- Vent-Axia Ltd, Fleming Way\r
- Crawley WEST SUSSEX RH10 9YX\r
- GB\r
-\r
-70-B3-D5 (hex) Vertex Co.,Ltd.\r
-8DD000-8DDFFF (base 16) Vertex Co.,Ltd.\r
- 4-1-17 Higashifuchinobe,Chuo-ku\r
- Sagamihara Kanagawa 252-0203\r
- JP\r
-\r
70-B3-D5 (hex) Monnit Corporation\r
393000-393FFF (base 16) Monnit Corporation\r
3400 S West Temple\r
Salt Lake City UT 84115\r
US\r
\r
-70-B3-D5 (hex) Specialized Communications Corp.\r
-867000-867FFF (base 16) Specialized Communications Corp.\r
- 20940 Twin Springs Drive\r
- Smithsburg 21783\r
- US\r
-\r
70-B3-D5 (hex) eSight\r
FD9000-FD9FFF (base 16) eSight\r
515 Legget Drive, Suite 200\r
Gävle Gavleborg 80647\r
SE\r
\r
+70-B3-D5 (hex) Volution Group UK\r
+687000-687FFF (base 16) Volution Group UK\r
+ Vent-Axia Ltd, Fleming Way\r
+ Crawley WEST SUSSEX RH10 9YX\r
+ GB\r
+\r
+70-B3-D5 (hex) Vertex Co.,Ltd.\r
+8DD000-8DDFFF (base 16) Vertex Co.,Ltd.\r
+ 4-1-17 Higashifuchinobe,Chuo-ku\r
+ Sagamihara Kanagawa 252-0203\r
+ JP\r
+\r
+70-B3-D5 (hex) Specialized Communications Corp.\r
+867000-867FFF (base 16) Specialized Communications Corp.\r
+ 20940 Twin Springs Drive\r
+ Smithsburg 21783\r
+ US\r
+\r
70-B3-D5 (hex) Jabil, Inc.\r
736000-736FFF (base 16) Jabil, Inc.\r
888 Executive Center Dr. W.\r
Guangzhou Guangdong 510665\r
CN\r
\r
+70-B3-D5 (hex) 7thSense Design Limited\r
+E46000-E46FFF (base 16) 7thSense Design Limited\r
+ 2 The Courtyard, Shoreham Road\r
+ Upper Beeding West Sussex BN44 3TN\r
+ GB\r
+\r
70-B3-D5 (hex) Cominfo, Inc.\r
6F5000-6F5FFF (base 16) Cominfo, Inc.\r
Nabrezi 695\r
Shenyang Liaoning 110000\r
CN\r
\r
-70-B3-D5 (hex) 7thSense Design Limited\r
-E46000-E46FFF (base 16) 7thSense Design Limited\r
- 2 The Courtyard, Shoreham Road\r
- Upper Beeding West Sussex BN44 3TN\r
- GB\r
-\r
70-B3-D5 (hex) Weltek Technologies Co. Ltd.\r
C48000-C48FFF (base 16) Weltek Technologies Co. Ltd.\r
Flat A-B, 12/F, Block 1, Wah Fung Ind. Centre, 33-39 Kwai Fung Crescent, Kwai Chung, N.T.\r
HK 852\r
HK\r
\r
-70-B3-D5 (hex) TimeMachines Inc.\r
-756000-756FFF (base 16) TimeMachines Inc.\r
- 300 S 68th Street Place, Suite 100\r
- Lincoln NE 68510\r
- US\r
-\r
70-B3-D5 (hex) BirdDog Australia\r
3B9000-3B9FFF (base 16) BirdDog Australia\r
Unit 1, 8 Theobald St\r
MOHALI Punjab 140306\r
IN\r
\r
-70-B3-D5 (hex) KRONOTECH SRL\r
-626000-626FFF (base 16) KRONOTECH SRL\r
- VIALE UNGHERIA 125\r
- UDINE ITALY/UDINE 33100\r
- IT\r
+70-B3-D5 (hex) TimeMachines Inc.\r
+756000-756FFF (base 16) TimeMachines Inc.\r
+ 300 S 68th Street Place, Suite 100\r
+ Lincoln NE 68510\r
+ US\r
\r
70-B3-D5 (hex) Algra tec AG\r
80C000-80CFFF (base 16) Algra tec AG\r
Merenschwand Aargau 5634\r
CH\r
\r
+70-B3-D5 (hex) KRONOTECH SRL\r
+626000-626FFF (base 16) KRONOTECH SRL\r
+ VIALE UNGHERIA 125\r
+ UDINE ITALY/UDINE 33100\r
+ IT\r
+\r
70-B3-D5 (hex) Enlaps\r
2AF000-2AFFFF (base 16) Enlaps\r
29 chemin du vieux chene, Tarmac\r
Neusaess Bayern 85356\r
DE\r
\r
-70-B3-D5 (hex) Shangnuo company\r
-82B000-82BFFF (base 16) Shangnuo company\r
- Nong'an district\r
- Changchun Jilin 130000\r
- CN\r
+70-B3-D5 (hex) NaraControls Inc\r
+3FD000-3FDFFF (base 16) NaraControls Inc\r
+ youngdong daero\r
+ Seoul 06072\r
+ KR\r
\r
70-B3-D5 (hex) Shanghai Westwell Information and Technology Company Ltd\r
856000-856FFF (base 16) Shanghai Westwell Information and Technology Company Ltd\r
Shanghai Shanghai 200050\r
CN\r
\r
-70-B3-D5 (hex) NaraControls Inc\r
-3FD000-3FDFFF (base 16) NaraControls Inc\r
- youngdong daero\r
- Seoul 06072\r
- KR\r
+70-B3-D5 (hex) Shangnuo company\r
+82B000-82BFFF (base 16) Shangnuo company\r
+ Nong'an district\r
+ Changchun Jilin 130000\r
+ CN\r
\r
70-B3-D5 (hex) Vision Sensing Co., Ltd.\r
93F000-93FFFF (base 16) Vision Sensing Co., Ltd.\r
TORINO TORINO 10142\r
IT\r
\r
-70-B3-D5 (hex) Daifuku CO., Ltd.\r
-3A2000-3A2FFF (base 16) Daifuku CO., Ltd.\r
- 1225 Nakazaiji, Hino-cho, Gamo-gun, Shiga\r
- Gamo-gun Shiga-ken 529-1692\r
- JP\r
-\r
70-B3-D5 (hex) CLARESYS LIMITED\r
485000-485FFF (base 16) CLARESYS LIMITED\r
154E Brook Drive, Milton Park\r
Bengaluru Karnataka 562149\r
IN\r
\r
+70-B3-D5 (hex) Daifuku CO., Ltd.\r
+3A2000-3A2FFF (base 16) Daifuku CO., Ltd.\r
+ 1225 Nakazaiji, Hino-cho, Gamo-gun, Shiga\r
+ Gamo-gun Shiga-ken 529-1692\r
+ JP\r
+\r
70-B3-D5 (hex) Panamera\r
7B1000-7B1FFF (base 16) Panamera\r
Rua. Dr. Brasilio Vicente de Castro, 111\r
Critiba Parana 81200-526\r
BR\r
\r
-70-B3-D5 (hex) QUNU LABS PRIVATE LIMITED\r
-9A6000-9A6FFF (base 16) QUNU LABS PRIVATE LIMITED\r
- Centenary Building, 2nd Floor,, East Wing, No. 28 M.G. Road\r
- BANGALORE KARNATAKA 560025\r
- IN\r
-\r
70-B3-D5 (hex) ALTIT.CO.,Ltd.\r
552000-552FFF (base 16) ALTIT.CO.,Ltd.\r
Gasan Digital 1 ro 88, 1905\r
Bengaluru Karnataka 560066\r
IN\r
\r
+70-B3-D5 (hex) QUNU LABS PRIVATE LIMITED\r
+9A6000-9A6FFF (base 16) QUNU LABS PRIVATE LIMITED\r
+ Centenary Building, 2nd Floor,, East Wing, No. 28 M.G. Road\r
+ BANGALORE KARNATAKA 560025\r
+ IN\r
+\r
70-B3-D5 (hex) Galaxy Next Generation, Inc.\r
E1D000-E1DFFF (base 16) Galaxy Next Generation, Inc.\r
285 Big A Rd \r
Istanbul 34912\r
TR\r
\r
-70-B3-D5 (hex) TableConnect GmbH\r
-7BD000-7BDFFF (base 16) TableConnect GmbH\r
- Schlossgasse 13/2/3\r
- Vienna Vienna 1050\r
- AT\r
-\r
70-B3-D5 (hex) Cubic ITS, Inc. dba GRIDSMART Technologies\r
7EC000-7ECFFF (base 16) Cubic ITS, Inc. dba GRIDSMART Technologies\r
10545 Hardin Valley Rd\r
Knoxville TN 37932\r
US\r
\r
+70-B3-D5 (hex) TableConnect GmbH\r
+7BD000-7BDFFF (base 16) TableConnect GmbH\r
+ Schlossgasse 13/2/3\r
+ Vienna Vienna 1050\r
+ AT\r
+\r
70-B3-D5 (hex) Eldes Ltd\r
8B6000-8B6FFF (base 16) Eldes Ltd\r
Ukmerges 283b\r
Vilnius LT-06313\r
LT\r
\r
+70-B3-D5 (hex) Circle Consult ApS\r
+23D000-23DFFF (base 16) Circle Consult ApS\r
+ Rundforbivej 271A\r
+ Naerum 2850\r
+ DK\r
+\r
70-B3-D5 (hex) Foerster-Technik GmbH\r
453000-453FFF (base 16) Foerster-Technik GmbH\r
Gerwigstraße 25\r
Saffle Varmland 66132\r
SE\r
\r
-70-B3-D5 (hex) Circle Consult ApS\r
-23D000-23DFFF (base 16) Circle Consult ApS\r
- Rundforbivej 271A\r
- Naerum 2850\r
- DK\r
+70-B3-D5 (hex) Velvac Incorporated\r
+44F000-44FFFF (base 16) Velvac Incorporated\r
+ 2405 S. Calhoun Road\r
+ New Berlin WI 53151-2709\r
+ US\r
\r
70-B3-D5 (hex) CreevX\r
BF4000-BF4FFF (base 16) CreevX\r
Randalstown Antrim BT41 3LH\r
GB\r
\r
+70-B3-D5 (hex) Connido Limited\r
+71D000-71DFFF (base 16) Connido Limited\r
+ 35 Kingsland Road\r
+ London E2 8AA\r
+ GB\r
+\r
70-B3-D5 (hex) Potter Electric Signal Co. LLC\r
261000-261FFF (base 16) Potter Electric Signal Co. LLC\r
1609 Park 370 Place\r
Hazelwood MO 63042\r
US\r
\r
-70-B3-D5 (hex) Velvac Incorporated\r
-44F000-44FFFF (base 16) Velvac Incorporated\r
- 2405 S. Calhoun Road\r
- New Berlin WI 53151-2709\r
- US\r
+70-B3-D5 (hex) EDF Lab\r
+BDC000-BDCFFF (base 16) EDF Lab\r
+ 7 Bd Gaspard Monge\r
+ PALAISEAU 91120\r
+ FR\r
\r
-70-B3-D5 (hex) Connido Limited\r
-71D000-71DFFF (base 16) Connido Limited\r
- 35 Kingsland Road\r
- London E2 8AA\r
+70-B3-D5 (hex) EarTex\r
+627000-627FFF (base 16) EarTex\r
+ 41 Corsham Street\r
+ London England N1 6DR\r
GB\r
\r
+70-B3-D5 (hex) PANASONIC LIFE SOLUTIONS ELEKTRİK SANAYİ VE TİCARE\r
+EC8000-EC8FFF (base 16) PANASONIC LIFE SOLUTIONS ELEKTRİK SANAYİ VE TİCARE\r
+ Abdurrahmangazi Mah. Ebubekir Cad. No:44 Sancaktepe\r
+ Istanbul 34887\r
+ TR\r
+\r
+70-B3-D5 (hex) VALEO CDA\r
+51F000-51FFFF (base 16) VALEO CDA\r
+ Hummendorfer Str 74\r
+ Kronach 96317\r
+ DE\r
+\r
+70-B3-D5 (hex) Telco Antennas Pty Ltd\r
+256000-256FFF (base 16) Telco Antennas Pty Ltd\r
+ 5/1 Roebuck St\r
+ Hemmant QLD 4154\r
+ AU\r
+\r
+70-B3-D5 (hex) enders GmbH\r
+D3E000-D3EFFF (base 16) enders GmbH\r
+ Sonnenstraße 39\r
+ Ergolding 84030\r
+ DE\r
+\r
+70-B3-D5 (hex) DaiShin Information & Communications Co., Ltd\r
+560000-560FFF (base 16) DaiShin Information & Communications Co., Ltd\r
+ DaiShin I&C Bldg., 205-28, Gasan digital 1-ro Geumcheon-gu\r
+ Seoul Seoul 08501\r
+ KR\r
+\r
+70-B3-D5 (hex) ULSee Inc\r
+1B7000-1B7FFF (base 16) ULSee Inc\r
+ 9F, No.97, Jingye 1st Road Zhongshan Dist.,Taipei City 104451 Taiwan\r
+ Taipei Taipei 104451\r
+ TW\r
+\r
+70-B3-D5 (hex) Nexus Electric S.A.\r
+CD8000-CD8FFF (base 16) Nexus Electric S.A.\r
+ Serú 63\r
+ Mendoza Mendoza M5500FNA\r
+ AR\r
+\r
70-B3-D5 (hex) EVCO SPA\r
A80000-A80FFF (base 16) EVCO SPA\r
VIA FELTRE N. 81\r
Istanbul - 34775\r
TR\r
\r
-70-B3-D5 (hex) Farmobile\r
-5A8000-5A8FFF (base 16) Farmobile\r
- 18132 Melrose Dr.\r
- Bucyrus KS 66013\r
- \r
-\r
70-B3-D5 (hex) Nautel Limted\r
EB0000-EB0FFF (base 16) Nautel Limted\r
10089 Peggy's Cove Road\r
Bergisch Gladbach North Rhine-Westphalia 51465\r
DE\r
\r
-70-B3-D5 (hex) Cetitec GmbH\r
-B36000-B36FFF (base 16) Cetitec GmbH\r
- Mannheimer Strasse 17\r
- Pforzheim 75179\r
- DE\r
-\r
70-B3-D5 (hex) DONG IL VISION Co., Ltd.\r
038000-038FFF (base 16) DONG IL VISION Co., Ltd.\r
#9 Ftrek tower, 11-25, Simindaero 327 beongil,Dongan-gu\r
Anyangi-Si Gyeonggi-Do 14055\r
KR\r
\r
+70-B3-D5 (hex) Cetitec GmbH\r
+B36000-B36FFF (base 16) Cetitec GmbH\r
+ Mannheimer Strasse 17\r
+ Pforzheim 75179\r
+ DE\r
+\r
70-B3-D5 (hex) Kamacho Scale Co., Ltd.\r
385000-385FFF (base 16) Kamacho Scale Co., Ltd.\r
2246 Mure\r
Takamatsu-shi Kagawa-ken 761-0196\r
JP\r
\r
-70-B3-D5 (hex) Visual Robotics\r
-0F4000-0F4FFF (base 16) Visual Robotics\r
- 38 Irving Rd\r
- Eugene OR 97404\r
- US\r
-\r
70-B3-D5 (hex) Vessel Technology Ltd\r
44D000-44DFFF (base 16) Vessel Technology Ltd\r
Banchory Business Centre, Burn O'Bennie Road\r
Pethch Tikva Israel 4959376\r
IL\r
\r
-70-B3-D5 (hex) TEX COMPUTER SRL \r
-6C2000-6C2FFF (base 16) TEX COMPUTER SRL \r
- VIA MERCADANTE 35\r
- CATTOLICA RIMINI 47841\r
- IT\r
+70-B3-D5 (hex) Visual Robotics\r
+0F4000-0F4FFF (base 16) Visual Robotics\r
+ 38 Irving Rd\r
+ Eugene OR 97404\r
+ US\r
\r
70-B3-D5 (hex) TangRen C&S CO., Ltd\r
3FC000-3FCFFF (base 16) TangRen C&S CO., Ltd\r
Shenzhen Guangdong 518052\r
CN\r
\r
+70-B3-D5 (hex) TEX COMPUTER SRL \r
+6C2000-6C2FFF (base 16) TEX COMPUTER SRL \r
+ VIA MERCADANTE 35\r
+ CATTOLICA RIMINI 47841\r
+ IT\r
+\r
70-B3-D5 (hex) LOTES TM OOO\r
EA5000-EA5FFF (base 16) LOTES TM OOO\r
Barklaya 22, str.1\r
Moscow 121309\r
RU\r
\r
-70-B3-D5 (hex) Yi An Electronics Co., Ltd\r
-F28000-F28FFF (base 16) Yi An Electronics Co., Ltd\r
- 5F.-2, No. 81, Sec. 1, Xintai 5th Rd., Xizhi Dist\r
- New Taipei City 22101\r
- TW\r
-\r
70-B3-D5 (hex) Ariston Thermo s.p.a.\r
3D6000-3D6FFF (base 16) Ariston Thermo s.p.a.\r
Via Aristide Merloni 45\r
Fabriano Ancona 60044\r
IT\r
\r
-70-B3-D5 (hex) MG s.r.l.\r
-130000-130FFF (base 16) MG s.r.l.\r
- via Monte Bianco, 1\r
- Solbiate Olona VA 21058\r
- IT\r
+70-B3-D5 (hex) Yi An Electronics Co., Ltd\r
+F28000-F28FFF (base 16) Yi An Electronics Co., Ltd\r
+ 5F.-2, No. 81, Sec. 1, Xintai 5th Rd., Xizhi Dist\r
+ New Taipei City 22101\r
+ TW\r
\r
70-B3-D5 (hex) DORLET SAU\r
639000-639FFF (base 16) DORLET SAU\r
Ryazan 390048\r
RU\r
\r
+70-B3-D5 (hex) MG s.r.l.\r
+130000-130FFF (base 16) MG s.r.l.\r
+ via Monte Bianco, 1\r
+ Solbiate Olona VA 21058\r
+ IT\r
+\r
+70-B3-D5 (hex) Postmark Incorporated \r
+CBB000-CBBFFF (base 16) Postmark Incorporated \r
+ 3197 Duncan Lane\r
+ San Luis Obispo CA 93401\r
+ US\r
+\r
70-B3-D5 (hex) Glory Technology Service Inc.\r
801000-801FFF (base 16) Glory Technology Service Inc.\r
3F., No.43-1, Ln. 11, Sec. 6, Minquan E. Rd\r
Gifu-shi Gifu 500-8122\r
JP\r
\r
-70-B3-D5 (hex) Postmark Incorporated \r
-CBB000-CBBFFF (base 16) Postmark Incorporated \r
- 3197 Duncan Lane\r
- San Luis Obispo CA 93401\r
- US\r
-\r
70-B3-D5 (hex) Abbott Diagnostics Technologies AS\r
53F000-53FFFF (base 16) Abbott Diagnostics Technologies AS\r
P. O. Box 6863 Rodeløkka\r
VILLA BARTOLOMEA IT 37049\r
IT\r
\r
-70-B3-D5 (hex) Global Power Products\r
-3B1000-3B1FFF (base 16) Global Power Products\r
- 225 Arnold Road\r
- Lawrenceville 30044\r
- US\r
-\r
70-B3-D5 (hex) Sankyo Intec Co,ltd\r
E7F000-E7FFFF (base 16) Sankyo Intec Co,ltd\r
127 Tokimata\r
waltham MA 02453\r
US\r
\r
+70-B3-D5 (hex) Global Power Products\r
+3B1000-3B1FFF (base 16) Global Power Products\r
+ 225 Arnold Road\r
+ Lawrenceville 30044\r
+ US\r
+\r
+70-B3-D5 (hex) Nidec asi spa\r
+D88000-D88FFF (base 16) Nidec asi spa\r
+ s.s11 , ca sordis 4\r
+ Montebello Vicentino vicenza 36054\r
+ IT\r
+\r
70-B3-D5 (hex) EnergizeEV\r
EB6000-EB6FFF (base 16) EnergizeEV\r
#160, 1684 Decoto Road\r
Praha Czech Republic 15000\r
CZ\r
\r
-70-B3-D5 (hex) Nidec asi spa\r
-D88000-D88FFF (base 16) Nidec asi spa\r
- s.s11 , ca sordis 4\r
- Montebello Vicentino vicenza 36054\r
- IT\r
-\r
70-B3-D5 (hex) Frog Cellsat Limited\r
C5E000-C5EFFF (base 16) Frog Cellsat Limited\r
D-213, Sector-63, Noida\r
Shanghai Shanghai 201114\r
CN\r
\r
-70-B3-D5 (hex) NooliTIC\r
-E51000-E51FFF (base 16) NooliTIC\r
- 165 avenue de bretagne\r
- LILLE 59000\r
- FR\r
+70-B3-D5 (hex) Sphere of economical technologies Ltd\r
+1C1000-1C1FFF (base 16) Sphere of economical technologies Ltd\r
+ 132, 7-ya Liniya Str.\r
+ Omsk Omskaya oblast 644021\r
+ RU\r
\r
70-B3-D5 (hex) Simplified MFG\r
66F000-66FFFF (base 16) Simplified MFG\r
Mesa AZ 85206\r
US\r
\r
-70-B3-D5 (hex) Sphere of economical technologies Ltd\r
-1C1000-1C1FFF (base 16) Sphere of economical technologies Ltd\r
- 132, 7-ya Liniya Str.\r
- Omsk Omskaya oblast 644021\r
- RU\r
+70-B3-D5 (hex) NooliTIC\r
+E51000-E51FFF (base 16) NooliTIC\r
+ 165 avenue de bretagne\r
+ LILLE 59000\r
+ FR\r
\r
70-B3-D5 (hex) Scenario Automation\r
43C000-43CFFF (base 16) Scenario Automation\r
New Taipei City Taiwan 23143\r
TW\r
\r
-70-B3-D5 (hex) BRS Sistemas Eletrônicos\r
-3CD000-3CDFFF (base 16) BRS Sistemas Eletrônicos\r
- Rua Gomes de Freitas, 491 / 204\r
- Porto Alegre RS 91380-000\r
- BR\r
-\r
70-B3-D5 (hex) Nuance Hearing Ltd.\r
AE4000-AE4FFF (base 16) Nuance Hearing Ltd.\r
Raoul Wallenberg 24, Building A1, Floor 3\r
Tel Aviv 6971920\r
IL\r
\r
+70-B3-D5 (hex) BRS Sistemas Eletrônicos\r
+3CD000-3CDFFF (base 16) BRS Sistemas Eletrônicos\r
+ Rua Gomes de Freitas, 491 / 204\r
+ Porto Alegre RS 91380-000\r
+ BR\r
+\r
70-B3-D5 (hex) HONG JIANG ELECTRONICS CO., LTD.\r
E64000-E64FFF (base 16) HONG JIANG ELECTRONICS CO., LTD.\r
9F, No. 649-3, Zhong Zheng Rd.,, Xin Zhuang Dist., New Taipei City,, TAIWAN(R.O.C.)\r
TianHe GuangZhou 515800\r
CN\r
\r
-70-B3-D5 (hex) Malin Space Science System\r
-FE5000-FE5FFF (base 16) Malin Space Science System\r
- 5880 Pacific Center Blvd \r
- San Diego CA 92121\r
- US\r
-\r
70-B3-D5 (hex) OLEDCOMM\r
7D3000-7D3FFF (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) Malin Space Science System\r
+FE5000-FE5FFF (base 16) Malin Space Science System\r
+ 5880 Pacific Center Blvd \r
+ San Diego CA 92121\r
+ US\r
+\r
70-B3-D5 (hex) Wexiodisk AB\r
905000-905FFF (base 16) Wexiodisk AB\r
Mardvagen 4\r
Straelen NRW 47638\r
DE\r
\r
-70-B3-D5 (hex) Abbott Diagnostics Technologies AS\r
-DDE000-DDEFFF (base 16) Abbott Diagnostics Technologies AS\r
- P. O. Box 6863 Rodeløkka\r
- Oslo Oslo 0504\r
- NO\r
-\r
70-B3-D5 (hex) PuS GmbH und Co. KG\r
09D000-09DFFF (base 16) PuS GmbH und Co. KG\r
Hainstr. 13\r
MEISHINGUCHI,TOYONAKA OSAKA 561-0841\r
JP\r
\r
+70-B3-D5 (hex) Abbott Diagnostics Technologies AS\r
+DDE000-DDEFFF (base 16) Abbott Diagnostics Technologies AS\r
+ P. O. Box 6863 Rodeløkka\r
+ Oslo Oslo 0504\r
+ NO\r
+\r
70-B3-D5 (hex) Laser Imagineering Vertriebs GmbH\r
3EE000-3EEFFF (base 16) Laser Imagineering Vertriebs GmbH\r
Rudolf-Diesel-Weg 5\r
London E1 2JH\r
GB\r
\r
+70-B3-D5 (hex) BIRTECH TECHNOLOGY\r
+E65000-E65FFF (base 16) BIRTECH TECHNOLOGY\r
+ Ak is Business Center, Tuzla, Istanbul / Turkey\r
+ Istanbul Tuzla 34944\r
+ TR\r
+\r
70-B3-D5 (hex) SUN ELECTRONICS CO.,LTD.\r
D82000-D82FFF (base 16) SUN ELECTRONICS CO.,LTD.\r
667-2,Furugori,Misato-machi,Kodama-gun\r
Saitama-ken 367-0111\r
JP\r
\r
-70-B3-D5 (hex) BIRTECH TECHNOLOGY\r
-E65000-E65FFF (base 16) BIRTECH TECHNOLOGY\r
- Ak is Business Center, Tuzla, Istanbul / Turkey\r
- Istanbul Tuzla 34944\r
- TR\r
+70-B3-D5 (hex) xTom GmbH\r
+8B5000-8B5FFF (base 16) xTom GmbH\r
+ Kreuzstr.60\r
+ Duesseldorf NRW 40210\r
+ DE\r
\r
70-B3-D5 (hex) Transit Solutions, LLC.\r
E68000-E68FFF (base 16) Transit Solutions, LLC.\r
Tel Aviv 6971920\r
IL\r
\r
-70-B3-D5 (hex) xTom GmbH\r
-8B5000-8B5FFF (base 16) xTom GmbH\r
- Kreuzstr.60\r
- Duesseldorf NRW 40210\r
- DE\r
-\r
70-B3-D5 (hex) E-Controls\r
6E2000-6E2FFF (base 16) E-Controls\r
PASSATGE GARROTXA, 6\r
ES\r
\r
70-B3-D5 (hex) Potter Electric Signal Co. LLC\r
-B9A000-B9AFFF (base 16) Potter Electric Signal Co. LLC\r
+1BE000-1BEFFF (base 16) Potter Electric Signal Co. LLC\r
1609 Park 370 Place\r
Hazelwood MO 63042\r
US\r
\r
70-B3-D5 (hex) Potter Electric Signal Co. LLC\r
-1BE000-1BEFFF (base 16) Potter Electric Signal Co. LLC\r
+B9A000-B9AFFF (base 16) Potter Electric Signal Co. LLC\r
1609 Park 370 Place\r
Hazelwood MO 63042\r
US\r
Evanston IL 60204\r
US\r
\r
-70-B3-D5 (hex) System West dba ICS Electronics\r
-E06000-E06FFF (base 16) System West dba ICS Electronics\r
- 7034 Commerce Circle Suite A\r
- Pleasanton CA 94588\r
- US\r
-\r
-70-B3-D5 (hex) Nevotek\r
-358000-358FFF (base 16) Nevotek\r
- 5201 Great America Pkwy ste 320\r
- Santa Clara CA 95054\r
- US\r
+70-B3-D5 (hex) ABB\r
+C47000-C47FFF (base 16) ABB\r
+ Fulachstrasse 150\r
+ Schaffhausen 8200\r
+ CH\r
\r
-70-B3-D5 (hex) Arctos Showlasertechnik GmbH\r
-D02000-D02FFF (base 16) Arctos Showlasertechnik GmbH\r
- Sägewerkstraße 16\r
- Saaldorf-Surheim Bavaria 83416\r
+70-B3-D5 (hex) GETT Geraetetechnik GmbH\r
+290000-290FFF (base 16) GETT Geraetetechnik GmbH\r
+ Mittlerer Ring 1\r
+ Treuen 08233\r
DE\r
\r
-70-B3-D5 (hex) Gremesh.com\r
-218000-218FFF (base 16) Gremesh.com\r
+70-B3-D5 (hex) ACRIOS Systems s.r.o.\r
+CEE000-CEEFFF (base 16) ACRIOS Systems s.r.o.\r
+ Tvar?žkova, 2738\r
+ Rožnov pod Radhošt?m 75661\r
+ CZ\r
+\r
+70-B3-D5 (hex) CREATIVE\r
+A65000-A65FFF (base 16) CREATIVE\r
+ 801 Chenil Bldg. 266 Hwagokro,\r
+ Gangseogu seoul 07673\r
+ KR\r
+\r
+70-B3-D5 (hex) BAE Systems\r
+AFC000-AFCFFF (base 16) BAE Systems\r
+ 1098 Clark Street\r
+ Endicott NY 13760\r
+ US\r
+\r
+70-B3-D5 (hex) Samwell International Inc\r
+B42000-B42FFF (base 16) Samwell International Inc\r
+ No. 317-1, Sec.2, An Kang Rd., Hsintien Dist\r
+ New Taipei City 231\r
+ TW\r
+\r
+70-B3-D5 (hex) DAYOUPLUS\r
+474000-474FFF (base 16) DAYOUPLUS\r
+ 3F 509, Dunchon-daero, Jungwon-gu, Seongnam-si, Gyeonggi-do, Republic of Korea\r
+ Seongnam-si Gyeonggi-do 13217\r
+ KR\r
+\r
+70-B3-D5 (hex) Guangzhou Xianhe Technology Engineering Co., Ltd\r
+C13000-C13FFF (base 16) Guangzhou Xianhe Technology Engineering Co., Ltd\r
+ No. 30-6, Jiantai Road, Dongyong Town, Nansha District\r
+ Guangzhou Guangdong 511453\r
+ CN\r
+\r
+70-B3-D5 (hex) Lightside Instruments AS\r
+EC2000-EC2FFF (base 16) Lightside Instruments AS\r
+ Thorvald Meyers gate 34A\r
+ Oslo 0555\r
+ NO\r
+\r
+70-B3-D5 (hex) Farmobile, LLC\r
+5A8000-5A8FFF (base 16) Farmobile, LLC\r
+ 4001 West 114th Street Suite 300\r
+ Leawood KS 66211\r
+ US\r
+\r
+70-B3-D5 (hex) System West dba ICS Electronics\r
+E06000-E06FFF (base 16) System West dba ICS Electronics\r
+ 7034 Commerce Circle Suite A\r
+ Pleasanton CA 94588\r
+ US\r
+\r
+70-B3-D5 (hex) Nevotek\r
+358000-358FFF (base 16) Nevotek\r
+ 5201 Great America Pkwy ste 320\r
+ Santa Clara CA 95054\r
+ US\r
+\r
+70-B3-D5 (hex) Arctos Showlasertechnik GmbH\r
+D02000-D02FFF (base 16) Arctos Showlasertechnik GmbH\r
+ Sägewerkstraße 16\r
+ Saaldorf-Surheim Bavaria 83416\r
+ DE\r
+\r
+70-B3-D5 (hex) Gremesh.com\r
+218000-218FFF (base 16) Gremesh.com\r
Beursplein 37\r
Rotterdam Zuid-Holland 3011 AA\r
NL\r
Bad Marienberg Rheinland-Pfalz 56470\r
DE\r
\r
+70-B3-D5 (hex) Walton Hi-Tech Industries Ltd.\r
+E5C000-E5CFFF (base 16) Walton Hi-Tech Industries Ltd.\r
+ HOLDING NO. I-65/2, WARD NO-07\r
+ CHANDRA, KALIAKOIR, GAZIPUR. 1750\r
+ BD\r
+\r
+70-B3-D5 (hex) Flextronics International Kft\r
+699000-699FFF (base 16) Flextronics International Kft\r
+ 38. Zrinyi Str.\r
+ Zalaegerszeg Zala 8900\r
+ HU\r
+\r
70-B3-D5 (hex) JFA Electronics Industry and Commerce EIRELI\r
5F7000-5F7FFF (base 16) JFA Electronics Industry and Commerce EIRELI\r
Rua Flor das Pedras, 175\r
Boonton Township NJ 07005\r
US\r
\r
-70-B3-D5 (hex) Walton Hi-Tech Industries Ltd.\r
-E5C000-E5CFFF (base 16) Walton Hi-Tech Industries Ltd.\r
- HOLDING NO. I-65/2, WARD NO-07\r
- CHANDRA, KALIAKOIR, GAZIPUR. 1750\r
- BD\r
-\r
70-B3-D5 (hex) aquila biolabs GmbH\r
7DB000-7DBFFF (base 16) aquila biolabs GmbH\r
Arnold-Sommerfeld-Ring 2\r
Isola Vicentina Vicenza 36033\r
IT\r
\r
-70-B3-D5 (hex) Flextronics International Kft\r
-699000-699FFF (base 16) Flextronics International Kft\r
- 38. Zrinyi Str.\r
- Zalaegerszeg Zala 8900\r
- HU\r
-\r
70-B3-D5 (hex) LGE\r
DAE000-DAEFFF (base 16) LGE\r
10, Magokjungang 10-ro, Gangseo-gu\r
Borehamwood Hert WD6 1NA\r
GB\r
\r
+70-B3-D5 (hex) Kospel S.A.\r
+249000-249FFF (base 16) Kospel S.A.\r
+ Olchowa 1\r
+ Koszalin 75-136\r
+ PL\r
+\r
70-B3-D5 (hex) Microchip Technology Germany II GmbH&Co.KG\r
77F000-77FFFF (base 16) Microchip Technology Germany II GmbH&Co.KG\r
Emmy-Noether-Straße 14\r
San Luis Obispo CA 93401\r
US\r
\r
-70-B3-D5 (hex) Kospel S.A.\r
-249000-249FFF (base 16) Kospel S.A.\r
- Olchowa 1\r
- Koszalin 75-136\r
- PL\r
-\r
70-B3-D5 (hex) Coheros Oy\r
D2E000-D2EFFF (base 16) Coheros Oy\r
Tammukkakatu 6\r
Broomfield CO 80021\r
US\r
\r
-70-B3-D5 (hex) Taejin InfoTech\r
-A75000-A75FFF (base 16) Taejin InfoTech\r
- 40, Imi-ro, A-411\r
- Uiwang-si Gyeonggi-do 16006\r
- KR\r
-\r
-70-B3-D5 (hex) ARCLAN'SYSTEM\r
-25C000-25CFFF (base 16) ARCLAN'SYSTEM\r
- 1140 rue Ampère - Actimart II - Lot 9\r
- AIX EN PROVENCE 13290\r
- FR\r
-\r
70-B3-D5 (hex) Smart Embedded Systems\r
A09000-A09FFF (base 16) Smart Embedded Systems\r
6701 Koll Center Parkway #250\r
Kaohsiung City 802\r
TW\r
\r
+70-B3-D5 (hex) Taejin InfoTech\r
+A75000-A75FFF (base 16) Taejin InfoTech\r
+ 40, Imi-ro, A-411\r
+ Uiwang-si Gyeonggi-do 16006\r
+ KR\r
+\r
+70-B3-D5 (hex) ARCLAN'SYSTEM\r
+25C000-25CFFF (base 16) ARCLAN'SYSTEM\r
+ 1140 rue Ampère - Actimart II - Lot 9\r
+ AIX EN PROVENCE 13290\r
+ FR\r
+\r
70-B3-D5 (hex) LLC Sarov Innovative Technologies (WIZOLUTION)\r
50F000-50FFFF (base 16) LLC Sarov Innovative Technologies (WIZOLUTION)\r
RUSSIAN FEDERATION, Nizhny Novgorod region, Varlamovskaya road, 7, build 2\r
Bristol Avon BS14 0AF\r
GB\r
\r
+70-B3-D5 (hex) INVISSYS\r
+AD4000-AD4FFF (base 16) INVISSYS\r
+ 25 rue marcel issartier\r
+ merignac 33700\r
+ FR\r
+\r
70-B3-D5 (hex) LM-Instruments Oy\r
5AC000-5ACFFF (base 16) LM-Instruments Oy\r
Norrbyn rantatie 8\r
Klein-Winternheim Rheinland-Pfalz 55270\r
DE\r
\r
-70-B3-D5 (hex) Sanmina Israel\r
-C18000-C18FFF (base 16) Sanmina Israel\r
- Koren Industrial Zone , POBox 102\r
- Maalot Israel 2101002\r
- IL\r
-\r
-70-B3-D5 (hex) INVISSYS\r
-AD4000-AD4FFF (base 16) INVISSYS\r
- 25 rue marcel issartier\r
- merignac 33700\r
- FR\r
-\r
70-B3-D5 (hex) Panoramic Power\r
669000-669FFF (base 16) Panoramic Power\r
15 Atir Yeda\r
Kfar Saba 4464312\r
IL\r
\r
-70-B3-D5 (hex) Panoramic Power\r
-06D000-06DFFF (base 16) Panoramic Power\r
- Atir Yeda 15\r
- Kfar Saba 4464312\r
+70-B3-D5 (hex) Sanmina Israel\r
+C18000-C18FFF (base 16) Sanmina Israel\r
+ Koren Industrial Zone , POBox 102\r
+ Maalot Israel 2101002\r
IL\r
\r
70-B3-D5 (hex) Avlinkpro\r
Totowa NJ 07512\r
US\r
\r
-70-B3-D5 (hex) DECYBEN\r
-683000-683FFF (base 16) DECYBEN\r
- 170 Rue Raymond Losserand\r
- Paris 75014\r
- FR\r
+70-B3-D5 (hex) Panoramic Power\r
+06D000-06DFFF (base 16) Panoramic Power\r
+ Atir Yeda 15\r
+ Kfar Saba 4464312\r
+ IL\r
\r
70-B3-D5 (hex) C4I Systems Ltd\r
5C6000-5C6FFF (base 16) C4I Systems Ltd\r
Bsel BS 4057\r
CH\r
\r
-70-B3-D5 (hex) CoreEL Technologies Pvt Ltd\r
-10D000-10DFFF (base 16) CoreEL Technologies Pvt Ltd\r
- #21, 7th Main, 1st Block ,Koramangala, \r
- Bangalore Karnataka 560034\r
- IN\r
+70-B3-D5 (hex) DECYBEN\r
+683000-683FFF (base 16) DECYBEN\r
+ 170 Rue Raymond Losserand\r
+ Paris 75014\r
+ FR\r
\r
70-B3-D5 (hex) adnexo GmbH\r
4E3000-4E3FFF (base 16) adnexo GmbH\r
Moscow Moscow 109380\r
RU\r
\r
+70-B3-D5 (hex) CoreEL Technologies Pvt Ltd\r
+10D000-10DFFF (base 16) CoreEL Technologies Pvt Ltd\r
+ #21, 7th Main, 1st Block ,Koramangala, \r
+ Bangalore Karnataka 560034\r
+ IN\r
+\r
70-B3-D5 (hex) Shenzhen Vikings Technology Co., Ltd.\r
46A000-46AFFF (base 16) Shenzhen Vikings Technology Co., Ltd.\r
Floor 3, building 2, tiantong industrial park, gaofeng community, dalang street, longhua district\r
Ho Chi Minh City Ho Chi Minh 70000\r
VN\r
\r
-70-B3-D5 (hex) aelettronica group srl\r
-AD9000-AD9FFF (base 16) aelettronica group srl\r
- via matteotti,22\r
- gaggiano milano 20083\r
- IT\r
-\r
70-B3-D5 (hex) C W F Hamilton & Co Ltd\r
82A000-82AFFF (base 16) C W F Hamilton & Co Ltd\r
20 Lunns Road, Middleton\r
Christchurch Canterbury 8024\r
NZ\r
\r
+70-B3-D5 (hex) aelettronica group srl\r
+AD9000-AD9FFF (base 16) aelettronica group srl\r
+ via matteotti,22\r
+ gaggiano milano 20083\r
+ IT\r
+\r
70-B3-D5 (hex) Wuhan Xingtuxinke ELectronic Co.,Ltd\r
165000-165FFF (base 16) Wuhan Xingtuxinke ELectronic Co.,Ltd\r
NO.C3-8F,Software Park,Optics Valley,East Lake Development Zone,Wuhan,Hubei,China\r
Seung-nam Si Gyeonggi-Do 13488\r
KR\r
\r
-70-B3-D5 (hex) TIAMA\r
-8A1000-8A1FFF (base 16) TIAMA\r
- ZA des Plattes - 1 Chemin des Plattes\r
- VOURLES 69390 \r
- FR\r
-\r
70-B3-D5 (hex) Honeywell/Intelligrated\r
94C000-94CFFF (base 16) Honeywell/Intelligrated\r
10045 International Blvd\r
Cincinnati OH 45246\r
US\r
\r
+70-B3-D5 (hex) TIAMA\r
+8A1000-8A1FFF (base 16) TIAMA\r
+ ZA des Plattes - 1 Chemin des Plattes\r
+ VOURLES 69390 \r
+ FR\r
+\r
70-B3-D5 (hex) LARIMART SPA\r
536000-536FFF (base 16) LARIMART SPA\r
VIA DI TORREVECCHIA\r
Mölnlycke SE-435 33\r
SE\r
\r
-70-B3-D5 (hex) Packet Power\r
-B54000-B54FFF (base 16) Packet Power\r
- 2716 Summer Str. N.E.\r
- Minneapolis MN 55413\r
- US\r
-\r
70-B3-D5 (hex) Ketronixs Sdn Bhd\r
6AC000-6ACFFF (base 16) Ketronixs Sdn Bhd\r
51-17-B Menara BHL Bank, Jalan Sultan Ahmad Shah\r
Georgetown Penang 10050\r
MY\r
\r
+70-B3-D5 (hex) Packet Power\r
+B54000-B54FFF (base 16) Packet Power\r
+ 2716 Summer Str. N.E.\r
+ Minneapolis MN 55413\r
+ US\r
+\r
70-B3-D5 (hex) Alto Aviation\r
D0F000-D0FFFF (base 16) Alto Aviation\r
86 Leominster Road\r
Brooklyn Park MN 55428\r
US\r
\r
+70-B3-D5 (hex) Proemion GmbH\r
+A03000-A03FFF (base 16) Proemion GmbH\r
+ Donaustraße 14\r
+ Fulda Hessen 36043\r
+ DE\r
+\r
70-B3-D5 (hex) GPSat Systems\r
386000-386FFF (base 16) GPSat Systems\r
Suite 1 22 Aberdeen Road\r
Havant Hampshire PO9 5TL\r
GB\r
\r
-70-B3-D5 (hex) Proemion GmbH\r
-A03000-A03FFF (base 16) Proemion GmbH\r
- Donaustraße 14\r
- Fulda Hessen 36043\r
- DE\r
-\r
70-B3-D5 (hex) Magenta Labs, Inc.\r
376000-376FFF (base 16) Magenta Labs, Inc.\r
164 Townsend Street Unit 1\r
MONTCEAU LES MINES SAONE ET LOIRE 71300\r
FR\r
\r
-70-B3-D5 (hex) DAVE SRL\r
-27B000-27BFFF (base 16) DAVE SRL\r
- VIA TALPONEDO 29/A\r
- PORCIA PORDENONE 330850\r
- IT\r
-\r
70-B3-D5 (hex) ZAO ZEO\r
619000-619FFF (base 16) ZAO ZEO\r
Khachaturiana 14a\r
Shanghai Shanghai 201612\r
CN\r
\r
+70-B3-D5 (hex) DAVE SRL\r
+27B000-27BFFF (base 16) DAVE SRL\r
+ VIA TALPONEDO 29/A\r
+ PORCIA PORDENONE 330850\r
+ IT\r
+\r
70-B3-D5 (hex) MB connect line GmbH Fernwartungssysteme\r
8FB000-8FBFFF (base 16) MB connect line GmbH Fernwartungssysteme\r
Winnettener Straße 6\r
Singapore Singapore 479237\r
SG\r
\r
-70-B3-D5 (hex) WILMORE ELECTRONICS COMPANY\r
-ED4000-ED4FFF (base 16) WILMORE ELECTRONICS COMPANY\r
- 607 US HIGHWAY 70A E\r
- HILLSBOROUGH NC 27278-8526\r
- US\r
-\r
70-B3-D5 (hex) Cubic ITS, Inc. dba GRIDSMART Technologies\r
CBF000-CBFFFF (base 16) Cubic ITS, Inc. dba GRIDSMART Technologies\r
10545 Hardin Valley Rd\r
Knoxville TN 37932\r
US\r
\r
+70-B3-D5 (hex) WILMORE ELECTRONICS COMPANY\r
+ED4000-ED4FFF (base 16) WILMORE ELECTRONICS COMPANY\r
+ 607 US HIGHWAY 70A E\r
+ HILLSBOROUGH NC 27278-8526\r
+ US\r
+\r
70-B3-D5 (hex) Veo Robotics, Inc.\r
6C4000-6C4FFF (base 16) Veo Robotics, Inc.\r
411 Waverley Oaks Rd. Suite 107\r
Winterswijk 7101 EK\r
NL\r
\r
-70-B3-D5 (hex) tetronik GmbH AEN\r
-909000-909FFF (base 16) tetronik GmbH AEN\r
- Silberbachstr.10\r
- Taunusstein Hessen 65232\r
- DE\r
-\r
-70-B3-D5 (hex) EBE Mobility & Green Energy GmbH\r
-624000-624FFF (base 16) EBE Mobility & Green Energy GmbH\r
- Prießnitzgasse 16\r
- Mödling Austria 2340\r
- AT\r
-\r
70-B3-D5 (hex) WuXi anktech Co., Ltd \r
B61000-B61FFF (base 16) WuXi anktech Co., Ltd \r
Room1801, No.6 Third Financial Street, Binhu District, Wuxi City, Jiangsu Province\r
Budapest PEST 1024 \r
HU\r
\r
-70-B3-D5 (hex) Potter Electric Signal Co. LLC\r
-70C000-70CFFF (base 16) Potter Electric Signal Co. LLC\r
- 1609 Park 370 Place\r
- Hazelwood MO 63042\r
- US\r
-\r
-70-B3-D5 (hex) Potter Electric Signal Co. LLC\r
-C17000-C17FFF (base 16) Potter Electric Signal Co. LLC\r
- 1609 Park 370 Place\r
- Hazelwood MO 63042\r
- US\r
+70-B3-D5 (hex) tetronik GmbH AEN\r
+909000-909FFF (base 16) tetronik GmbH AEN\r
+ Silberbachstr.10\r
+ Taunusstein Hessen 65232\r
+ DE\r
\r
70-B3-D5 (hex) Boundary Technologies Ltd\r
BBC000-BBCFFF (base 16) Boundary Technologies Ltd\r
Edinburgh Midlothian EH3 6NL\r
GB\r
\r
-70-B3-D5 (hex) Microvision\r
-5F5000-5F5FFF (base 16) Microvision\r
- 272, Digital-ro, 1004ho Microvision.\r
- Guro-gu, Seoul, Republic of Korea 08848\r
- KR\r
+70-B3-D5 (hex) EBE Mobility & Green Energy GmbH\r
+624000-624FFF (base 16) EBE Mobility & Green Energy GmbH\r
+ Prießnitzgasse 16\r
+ Mödling Austria 2340\r
+ AT\r
+\r
+70-B3-D5 (hex) Potter Electric Signal Co. LLC\r
+C17000-C17FFF (base 16) Potter Electric Signal Co. LLC\r
+ 1609 Park 370 Place\r
+ Hazelwood MO 63042\r
+ US\r
+\r
+70-B3-D5 (hex) Potter Electric Signal Co. LLC\r
+70C000-70CFFF (base 16) Potter Electric Signal Co. LLC\r
+ 1609 Park 370 Place\r
+ Hazelwood MO 63042\r
+ US\r
+\r
+70-B3-D5 (hex) Field Design Inc.\r
+8D1000-8D1FFF (base 16) Field Design Inc.\r
+ BrightCore 4F, Kita-Shinagaw 5-5-15\r
+ Shinagawa-ku Tokyo 1410001\r
+ JP\r
+\r
+70-B3-D5 (hex) Microvision\r
+5F5000-5F5FFF (base 16) Microvision\r
+ 272, Digital-ro, 1004ho Microvision.\r
+ Guro-gu, Seoul, Republic of Korea 08848\r
+ KR\r
+\r
+70-B3-D5 (hex) Alfa Elettronica srl\r
+BF0000-BF0FFF (base 16) Alfa Elettronica srl\r
+ Via Amman, 35\r
+ Cordenons - - not required - - 33084\r
+ IT\r
+\r
+70-B3-D5 (hex) Utopi Ltd\r
+80E000-80EFFF (base 16) Utopi Ltd\r
+ 3 Candymill Lane\r
+ Hamilton ML3 0FD\r
+ GB\r
+\r
+70-B3-D5 (hex) PREO INDUSTRIES FAR EAST LTD\r
+8E8000-8E8FFF (base 16) PREO INDUSTRIES FAR EAST LTD\r
+ UNIT B, 26/F, AMIATA IND'L BLDG\r
+ HONG KONG NIL\r
+ HK\r
+\r
+70-B3-D5 (hex) Entec Solar S.L.\r
+887000-887FFF (base 16) Entec Solar S.L.\r
+ C/ Bambú 4\r
+ Madrid Madrid 28036\r
+ ES\r
\r
70-B3-D5 (hex) YUYAMA MFG Co.,Ltd\r
BBB000-BBBFFF (base 16) YUYAMA MFG Co.,Ltd\r
Genova Italy 16152\r
IT\r
\r
-70-B3-D5 (hex) Road-iQ, LLC\r
-4DD000-4DDFFF (base 16) Road-iQ, LLC\r
- 2183 Alpine Way\r
- Bellingham WA 98226\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
Taoyuan 330\r
TW\r
\r
-70-B3-D5 (hex) Zhuhai Lonl electric Co.,Ltd.\r
-EA9000-EA9FFF (base 16) Zhuhai Lonl electric Co.,Ltd.\r
- 2nd floor, building B3, nanfang software park, xiangzhou district\r
- Zhuhai Guangdong 519000\r
- CN\r
-\r
70-B3-D5 (hex) PolyTech A/S\r
F4C000-F4CFFF (base 16) PolyTech A/S\r
HI Park 445\r
Herning Herning 7400\r
DK\r
\r
+70-B3-D5 (hex) Zhuhai Lonl electric Co.,Ltd.\r
+EA9000-EA9FFF (base 16) Zhuhai Lonl electric Co.,Ltd.\r
+ 2nd floor, building B3, nanfang software park, xiangzhou district\r
+ Zhuhai Guangdong 519000\r
+ CN\r
+\r
70-B3-D5 (hex) Shanghai Tiancheng Communication Technology Corporation\r
1C3000-1C3FFF (base 16) Shanghai Tiancheng Communication Technology Corporation\r
No.618,Guangxing Rd.,Songjiang \r
shanghai 200090\r
CN\r
\r
-70-B3-D5 (hex) T&M Media Pty Ltd\r
-B41000-B41FFF (base 16) T&M Media Pty Ltd\r
- 6, 476 Gardeners Road\r
- Alexandria NSW 2015\r
- AU\r
-\r
70-B3-D5 (hex) SAMBO HITECH\r
282000-282FFF (base 16) SAMBO HITECH\r
469,Seokjung-ro,Namdong-Gu\r
Redditch Worcestershire B98 8LG\r
GB\r
\r
-70-B3-D5 (hex) Shenzhen CAMERAY ELECTRONIC CO., LTD\r
-1E2000-1E2FFF (base 16) Shenzhen CAMERAY ELECTRONIC CO., LTD\r
- 4-5FL, Building 1, Guanghui Science, and Technology Park; Minqing Road, Longhua Town\r
- shenzhen GD 518109\r
- CN\r
-\r
-70-B3-D5 (hex) Vulcan Wireless Inc.\r
-E4D000-E4DFFF (base 16) Vulcan Wireless Inc.\r
- 2218 Faraday Ave Suite 110\r
- Carlsbad CA 92008\r
- US\r
-\r
70-B3-D5 (hex) ERA TOYS LIMITED\r
193000-193FFF (base 16) ERA TOYS LIMITED\r
Room 505, 5th Floor, Beverley Commercial Centre, 87-105 Chatham Road South\r
Tsim Sha Tsui Kowloon 0000\r
HK\r
\r
+70-B3-D5 (hex) T&M Media Pty Ltd\r
+B41000-B41FFF (base 16) T&M Media Pty Ltd\r
+ 6, 476 Gardeners Road\r
+ Alexandria NSW 2015\r
+ AU\r
+\r
+70-B3-D5 (hex) A&T Corporation\r
+32E000-32EFFF (base 16) A&T Corporation\r
+ 2023-1\r
+ Endo, Fujisawa, Kanagawa 252-0816\r
+ JP\r
+\r
70-B3-D5 (hex) Scorpion Precision Industry (HK)CO. Ltd.\r
02B000-02BFFF (base 16) Scorpion Precision Industry (HK)CO. Ltd.\r
16th Floor, Excelsior Industrial Building,68-76 Sha Tsui Road,\r
Tsuen Wan New Territories 999077\r
HK\r
\r
-70-B3-D5 (hex) Cryptotronix LLC\r
-0DB000-0DBFFF (base 16) Cryptotronix LLC\r
- P.O. Box 273029\r
- Fort Collins CO 80525\r
+70-B3-D5 (hex) Shenzhen CAMERAY ELECTRONIC CO., LTD\r
+1E2000-1E2FFF (base 16) Shenzhen CAMERAY ELECTRONIC CO., LTD\r
+ 4-5FL, Building 1, Guanghui Science, and Technology Park; Minqing Road, Longhua Town\r
+ shenzhen GD 518109\r
+ CN\r
+\r
+70-B3-D5 (hex) Vulcan Wireless Inc.\r
+E4D000-E4DFFF (base 16) Vulcan Wireless Inc.\r
+ 2218 Faraday Ave Suite 110\r
+ Carlsbad CA 92008\r
US\r
\r
70-B3-D5 (hex) MIVO Technology AB\r
Stockholm 11215\r
SE\r
\r
-70-B3-D5 (hex) A&T Corporation\r
-32E000-32EFFF (base 16) A&T Corporation\r
- 2023-1\r
- Endo, Fujisawa, Kanagawa 252-0816\r
- JP\r
+70-B3-D5 (hex) Cryptotronix LLC\r
+0DB000-0DBFFF (base 16) Cryptotronix LLC\r
+ P.O. Box 273029\r
+ Fort Collins CO 80525\r
+ US\r
\r
70-B3-D5 (hex) TOMEI TSUSHIN KOGYO CO,.LTD\r
FB1000-FB1FFF (base 16) TOMEI TSUSHIN KOGYO CO,.LTD\r
Inazawa Shi Aichi ken 4928274\r
JP\r
\r
-70-B3-D5 (hex) DogWatch Inc\r
-1E7000-1E7FFF (base 16) DogWatch Inc\r
- 10 Michigan Drive\r
- Natick 01760\r
- US\r
-\r
70-B3-D5 (hex) RCH Vietnam Limited Liability Company\r
C09000-C09FFF (base 16) RCH Vietnam Limited Liability Company\r
Workshop F.01B-2, Lot No. F.01B Long Hau\r
Boulder CO 80301\r
US\r
\r
+70-B3-D5 (hex) DogWatch Inc\r
+1E7000-1E7FFF (base 16) DogWatch Inc\r
+ 10 Michigan Drive\r
+ Natick 01760\r
+ US\r
+\r
+70-B3-D5 (hex) Grossenbacher Systeme AG\r
+B75000-B75FFF (base 16) Grossenbacher Systeme AG\r
+ Spinnereistrasse 10\r
+ St. Gallen 9008\r
+ CH\r
+\r
+70-B3-D5 (hex) ITsynergy Ltd\r
+D2A000-D2AFFF (base 16) ITsynergy Ltd\r
+ 9 Bonhill Street\r
+ London EC2A 4DJ\r
+ GB\r
+\r
70-B3-D5 (hex) SHENZHEN HUINENGYUAN Technology Co., Ltd\r
A83000-A83FFF (base 16) SHENZHEN HUINENGYUAN Technology Co., Ltd\r
Room 206, 3 Building, Hongwanchuangke Center, Gushu, Xixiang, Baoan District\r
Blaricum 1261WT\r
NL\r
\r
-70-B3-D5 (hex) Grossenbacher Systeme AG\r
-B75000-B75FFF (base 16) Grossenbacher Systeme AG\r
- Spinnereistrasse 10\r
- St. Gallen 9008\r
- CH\r
-\r
-70-B3-D5 (hex) ITsynergy Ltd\r
-D2A000-D2AFFF (base 16) ITsynergy Ltd\r
- 9 Bonhill Street\r
- London EC2A 4DJ\r
- GB\r
-\r
70-B3-D5 (hex) Vaunix Technology Corporation\r
EE6000-EE6FFF (base 16) Vaunix Technology Corporation\r
7 New Pasture Rd\r
Newburyport MA 01950\r
US\r
\r
-70-B3-D5 (hex) chargeBIG\r
-869000-869FFF (base 16) chargeBIG\r
- Pragstraße 26-46\r
- Stuttgart 70376\r
- DE\r
-\r
70-B3-D5 (hex) Portrait Displays, Inc.\r
D77000-D77FFF (base 16) Portrait Displays, Inc.\r
6663 OWENS DR\r
PLEASANTON CA 94588\r
US\r
\r
-70-B3-D5 (hex) Sprintshield d.o.o.\r
-B03000-B03FFF (base 16) Sprintshield d.o.o.\r
- Marina Getaldi?a 3\r
- Velika Gorica 10410\r
- HR\r
+70-B3-D5 (hex) chargeBIG\r
+869000-869FFF (base 16) chargeBIG\r
+ Pragstraße 26-46\r
+ Stuttgart 70376\r
+ DE\r
\r
70-B3-D5 (hex) Tricom Research Inc.\r
601000-601FFF (base 16) Tricom Research Inc.\r
Irvine CA 92614\r
US\r
\r
-70-B3-D5 (hex) Mictrotrac Retsch GmbH\r
-F09000-F09FFF (base 16) Mictrotrac Retsch GmbH\r
- Retsch-Allee 1-5\r
- Haan NRW 42781\r
- DE\r
+70-B3-D5 (hex) Sprintshield d.o.o.\r
+B03000-B03FFF (base 16) Sprintshield d.o.o.\r
+ Marina Getaldi?a 3\r
+ Velika Gorica 10410\r
+ HR\r
\r
70-B3-D5 (hex) KeyProd\r
473000-473FFF (base 16) KeyProd\r
Paris 77008\r
FR\r
\r
-70-B3-D5 (hex) WARECUBE,INC\r
-AD3000-AD3FFF (base 16) WARECUBE,INC\r
- #A-811, 142-10, Saneop-ro, 156beon-gil, Gwonseon-gu\r
- Suwon-si 16648\r
- KR\r
-\r
-70-B3-D5 (hex) myUpTech AB\r
-FC3000-FC3FFF (base 16) myUpTech AB\r
- Box 14\r
- Markaryd 28532\r
- SE\r
-\r
-70-B3-D5 (hex) Scharco Elektronik GmbH\r
-C72000-C72FFF (base 16) Scharco Elektronik GmbH\r
- Tilsiter Strasse 8\r
- Wuppertal NRW 42277\r
+70-B3-D5 (hex) Mictrotrac Retsch GmbH\r
+F09000-F09FFF (base 16) Mictrotrac Retsch GmbH\r
+ Retsch-Allee 1-5\r
+ Haan NRW 42781\r
DE\r
\r
70-B3-D5 (hex) MB connect line GmbH Fernwartungssysteme\r
London England N1 6DR\r
GB\r
\r
+70-B3-D5 (hex) Scharco Elektronik GmbH\r
+C72000-C72FFF (base 16) Scharco Elektronik GmbH\r
+ Tilsiter Strasse 8\r
+ Wuppertal NRW 42277\r
+ DE\r
+\r
70-B3-D5 (hex) AVL DiTEST GmbH\r
78D000-78DFFF (base 16) AVL DiTEST GmbH\r
Alte Poststrasse 156\r
Graz 8020\r
AT\r
\r
+70-B3-D5 (hex) WARECUBE,INC\r
+AD3000-AD3FFF (base 16) WARECUBE,INC\r
+ #A-811, 142-10, Saneop-ro, 156beon-gil, Gwonseon-gu\r
+ Suwon-si 16648\r
+ KR\r
+\r
+70-B3-D5 (hex) myUpTech AB\r
+FC3000-FC3FFF (base 16) myUpTech AB\r
+ Box 14\r
+ Markaryd 28532\r
+ SE\r
+\r
70-B3-D5 (hex) TextSpeak Corporation\r
F0E000-F0EFFF (base 16) TextSpeak Corporation\r
55 Greensfarm RD 2nd Flr 200-69\r
Zola Predosa Bologna 40069\r
IT\r
\r
-70-B3-D5 (hex) HongSeok Ltd.\r
-30A000-30AFFF (base 16) HongSeok Ltd.\r
- 166, Osan-ro, Osan-myeon\r
- Iksan-si Jeollabuk-do 54670\r
- KR\r
-\r
70-B3-D5 (hex) WAYNE ANALYTICS LLC\r
301000-301FFF (base 16) WAYNE ANALYTICS LLC\r
100 Rialto Place, Suite 721\r
MELBOURNE FL 32901\r
US\r
\r
+70-B3-D5 (hex) HongSeok Ltd.\r
+30A000-30AFFF (base 16) HongSeok Ltd.\r
+ 166, Osan-ro, Osan-myeon\r
+ Iksan-si Jeollabuk-do 54670\r
+ KR\r
+\r
70-B3-D5 (hex) GS Elektromedizinsiche Geräte G. Stemple GmbH\r
3D3000-3D3FFF (base 16) GS Elektromedizinsiche Geräte G. Stemple GmbH\r
Hauswiesenstr. 26\r
Daejeon Yuseong-gu 34016\r
KR\r
\r
+70-B3-D5 (hex) Sequent AG\r
+291000-291FFF (base 16) Sequent AG\r
+ Eptingerstrasse 3\r
+ Basel 4052\r
+ CH\r
+\r
70-B3-D5 (hex) KODENSHI CORP.\r
DBA000-DBAFFF (base 16) KODENSHI CORP.\r
161,Jyuichi,Makishima\r
UJI KYOTO 6110041\r
JP\r
\r
-70-B3-D5 (hex) Sequent AG\r
-291000-291FFF (base 16) Sequent AG\r
- Eptingerstrasse 3\r
- Basel 4052\r
+70-B3-D5 (hex) ID Quantique SA\r
+657000-657FFF (base 16) ID Quantique SA\r
+ 3 chemin de la marbrerie\r
+ Carouge 1227\r
CH\r
\r
70-B3-D5 (hex) Profusion Limited\r
Southend on Sea Essex SS2 6UN\r
GB\r
\r
-70-B3-D5 (hex) ID Quantique SA\r
-657000-657FFF (base 16) ID Quantique SA\r
- 3 chemin de la marbrerie\r
- Carouge 1227\r
- CH\r
-\r
70-B3-D5 (hex) CDS Institute of Management Strategy, Inc.\r
3A3000-3A3FFF (base 16) CDS Institute of Management Strategy, Inc.\r
Fukuyoshi-cho Billding 7F, Roppongi 2-2-6\r
Ramsen 8262\r
CH\r
\r
-70-B3-D5 (hex) K&A Electronics Inc.\r
-9E4000-9E4FFF (base 16) K&A Electronics Inc.\r
- 2609 Pinelawn dr.\r
- La Crescenta CA 91214\r
- US\r
-\r
70-B3-D5 (hex) Paramount Bed Holdings Co., Ltd.\r
8F1000-8F1FFF (base 16) Paramount Bed Holdings Co., Ltd.\r
2-14-5. Higashisuna\r
LONDON County (optional) N17 9LJ\r
GB\r
\r
+70-B3-D5 (hex) K&A Electronics Inc.\r
+9E4000-9E4FFF (base 16) K&A Electronics Inc.\r
+ 2609 Pinelawn dr.\r
+ La Crescenta CA 91214\r
+ US\r
+\r
70-B3-D5 (hex) Indutherm Giesstechnologie GmbH\r
8DE000-8DEFFF (base 16) Indutherm Giesstechnologie GmbH\r
Brettener Straße 32\r
Porto Alegre - RS (Non U.S.) 91380-000\r
BR\r
\r
+70-B3-D5 (hex) Ideas srl\r
+B63000-B63FFF (base 16) Ideas srl\r
+ Via dei Brughi, 21\r
+ Gessate Milan 20060\r
+ IT\r
+\r
70-B3-D5 (hex) 2M Technology\r
F7D000-F7DFFF (base 16) 2M Technology\r
802 Greenview Drive \r
Natick MA 01760\r
US\r
\r
-70-B3-D5 (hex) Ideas srl\r
-B63000-B63FFF (base 16) Ideas srl\r
- Via dei Brughi, 21\r
- Gessate Milan 20060\r
- IT\r
-\r
70-B3-D5 (hex) Invert Robotics Ltd.\r
FC7000-FC7FFF (base 16) Invert Robotics Ltd.\r
Unit A, 235 Annex Road\r
Christchurch 8024\r
NZ\r
\r
+70-B3-D5 (hex) AERIAL CAMERA SYSTEMS Ltd\r
+FC4000-FC4FFF (base 16) AERIAL CAMERA SYSTEMS Ltd\r
+ 3 The Merlin Centre, Lancaster Road,\r
+ HIGH WYCOMBE HP12 3QL\r
+ GB\r
+\r
+70-B3-D5 (hex) TUALCOM ELEKTRONIK A.S.\r
+4A3000-4A3FFF (base 16) TUALCOM ELEKTRONIK A.S.\r
+ Mustafa Kemal mah.\r
+ ANKARA 06530\r
+ TR\r
+\r
+70-B3-D5 (hex) Underground Systems, Inc.\r
+424000-424FFF (base 16) Underground Systems, Inc.\r
+ 3A Trowbridge Drive\r
+ Bethel CT 06801\r
+ US\r
+\r
70-B3-D5 (hex) MPM Micro Präzision Marx GmbH\r
F60000-F60FFF (base 16) MPM Micro Präzision Marx GmbH\r
Neuenweiherstraße 19\r
San Francisco CA 94103-4938\r
US\r
\r
-70-B3-D5 (hex) Underground Systems, Inc.\r
-424000-424FFF (base 16) Underground Systems, Inc.\r
- 3A Trowbridge Drive\r
- Bethel CT 06801\r
- US\r
-\r
-70-B3-D5 (hex) AERIAL CAMERA SYSTEMS Ltd\r
-FC4000-FC4FFF (base 16) AERIAL CAMERA SYSTEMS Ltd\r
- 3 The Merlin Centre, Lancaster Road,\r
- HIGH WYCOMBE HP12 3QL\r
- GB\r
+70-B3-D5 (hex) Hensoldt Sensors GmbH\r
+2D3000-2D3FFF (base 16) Hensoldt Sensors GmbH\r
+ Woerthstrasse 85\r
+ Ulm Baden-Wuerttemberg 89081\r
+ DE\r
\r
-70-B3-D5 (hex) TUALCOM ELEKTRONIK A.S.\r
-4A3000-4A3FFF (base 16) TUALCOM ELEKTRONIK A.S.\r
- Mustafa Kemal mah.\r
- ANKARA 06530\r
- TR\r
+70-B3-D5 (hex) Kron Medidores\r
+C1E000-C1EFFF (base 16) Kron Medidores\r
+ Rua Alexandre de Gusmão, 278\r
+ São Paulo São Paulo 04760-020\r
+ BR\r
\r
70-B3-D5 (hex) Shanghai Jupper Technology Co.Ltd\r
157000-157FFF (base 16) Shanghai Jupper Technology Co.Ltd\r
Shanghai 201315\r
CN\r
\r
-70-B3-D5 (hex) Kron Medidores\r
-C1E000-C1EFFF (base 16) Kron Medidores\r
- Rua Alexandre de Gusmão, 278\r
- São Paulo São Paulo 04760-020\r
- BR\r
-\r
-70-B3-D5 (hex) IK MULTIMEDIA PRODUCTION SRL\r
-2FB000-2FBFFF (base 16) IK MULTIMEDIA PRODUCTION SRL\r
- Via dell'Industria 46\r
- Modena Italy 41122\r
- IT\r
+70-B3-D5 (hex) S-Rain Control A/S\r
+B68000-B68FFF (base 16) S-Rain Control A/S\r
+ Oldenvej 6\r
+ Kvistgård Copenhagen DK-3490\r
+ DK\r
\r
-70-B3-D5 (hex) Hensoldt Sensors GmbH\r
-2D3000-2D3FFF (base 16) Hensoldt Sensors GmbH\r
- Woerthstrasse 85\r
- Ulm Baden-Wuerttemberg 89081\r
- DE\r
+70-B3-D5 (hex) Thermo Fisher Scientific Inc.\r
+D96000-D96FFF (base 16) Thermo Fisher Scientific Inc.\r
+ Thermo Fisher Scientific Inc.\r
+ Shanghai Shanghai 201206\r
+ CN\r
\r
70-B3-D5 (hex) Autonomic Controls, Inc.\r
BC7000-BC7FFF (base 16) Autonomic Controls, Inc.\r
ARMONK NY 10504\r
US\r
\r
+70-B3-D5 (hex) IK MULTIMEDIA PRODUCTION SRL\r
+2FB000-2FBFFF (base 16) IK MULTIMEDIA PRODUCTION SRL\r
+ Via dell'Industria 46\r
+ Modena Italy 41122\r
+ IT\r
+\r
70-B3-D5 (hex) CYG CONTRON CO.LTD\r
A8C000-A8CFFF (base 16) CYG CONTRON CO.LTD\r
BUILDING A.NO.11 OF THE 6TH TECHNOGY ROAD,PHASE III OF TECNOLOGY INNOVATION COAST,ZHUHAI NATIONAL HI-TECH INDUSTRIES DEVELOPMENT ZONE\r
Zhuhai 519000\r
CN\r
\r
-70-B3-D5 (hex) Thermo Fisher Scientific Inc.\r
-D96000-D96FFF (base 16) Thermo Fisher Scientific Inc.\r
- Thermo Fisher Scientific Inc.\r
- Shanghai Shanghai 201206\r
- CN\r
-\r
-70-B3-D5 (hex) S-Rain Control A/S\r
-B68000-B68FFF (base 16) S-Rain Control A/S\r
- Oldenvej 6\r
- Kvistgård Copenhagen DK-3490\r
- DK\r
-\r
70-B3-D5 (hex) LIGPT\r
D14000-D14FFF (base 16) LIGPT\r
167, Jukdong-ro\r
Daejeon Yuseong-gu 34127\r
KR\r
\r
-70-B3-D5 (hex) Royal Engineering Consultancy Private Limited\r
-34F000-34FFFF (base 16) Royal Engineering Consultancy Private Limited\r
- 203 2nd Floor Jyoti Building 66 Nehru Place\r
- New Delhi 110019\r
- IN\r
+70-B3-D5 (hex) Innoknight\r
+AE8000-AE8FFF (base 16) Innoknight\r
+ Rm. 1A2-A01, No. 1, Lixing 1st Rd., East Dist., Hsinchu City 300, Taiwan (R.O.C.)\r
+ Hsinchu 300\r
+ TW\r
\r
70-B3-D5 (hex) Melissa Climate Jsc\r
2DD000-2DDFFF (base 16) Melissa Climate Jsc\r
Sofia 1000\r
BG\r
\r
-70-B3-D5 (hex) Innoknight\r
-AE8000-AE8FFF (base 16) Innoknight\r
- Rm. 1A2-A01, No. 1, Lixing 1st Rd., East Dist., Hsinchu City 300, Taiwan (R.O.C.)\r
- Hsinchu 300\r
- TW\r
+70-B3-D5 (hex) Royal Engineering Consultancy Private Limited\r
+34F000-34FFFF (base 16) Royal Engineering Consultancy Private Limited\r
+ 203 2nd Floor Jyoti Building 66 Nehru Place\r
+ New Delhi 110019\r
+ IN\r
\r
70-B3-D5 (hex) NUBURU Inc.\r
DC7000-DC7FFF (base 16) NUBURU Inc.\r
Centennial CO 80112\r
US\r
\r
+70-B3-D5 (hex) Projects Unlimited Inc.\r
+7C5000-7C5FFF (base 16) Projects Unlimited Inc.\r
+ 6300 Sand Lake Road\r
+ Dayton OH 45414\r
+ US\r
+\r
+70-B3-D5 (hex) Hilo\r
+B86000-B86FFF (base 16) Hilo\r
+ 4-6 Kiprou str\r
+ Tavros Athens 17778\r
+ GR\r
+\r
70-B3-D5 (hex) Vigorcloud Co., Ltd.\r
A3E000-A3EFFF (base 16) Vigorcloud Co., Ltd.\r
3F., No. 11, Xinpo 1st St., Xindian Dist.,\r
Incheon 2nd floor, 16 Giljuro, Seogu 22793\r
KR\r
\r
-70-B3-D5 (hex) Projects Unlimited Inc.\r
-7C5000-7C5FFF (base 16) Projects Unlimited Inc.\r
- 6300 Sand Lake Road\r
- Dayton OH 45414\r
- US\r
-\r
70-B3-D5 (hex) RFHIC\r
25E000-25EFFF (base 16) RFHIC\r
41-14, Burim-ro 170beon-gil\r
Dongan-gu, Anyang-si Gyeonggi-do 14055\r
KR\r
\r
-70-B3-D5 (hex) Hilo\r
-B86000-B86FFF (base 16) Hilo\r
- 4-6 Kiprou str\r
- Tavros Athens 17778\r
- GR\r
+70-B3-D5 (hex) ADDE\r
+79C000-79CFFF (base 16) ADDE\r
+ 21 impasse frédéric faÿs\r
+ Villeurbanne 69100\r
+ FR\r
\r
70-B3-D5 (hex) Federated Wireless, Inc. \r
E22000-E22FFF (base 16) Federated Wireless, Inc. \r
Arlington VA 22203\r
US\r
\r
-70-B3-D5 (hex) Nocix, LLC\r
-BE2000-BE2FFF (base 16) Nocix, LLC\r
- 201 East 16th Ave\r
- North Kansas City MO 64116\r
- US\r
-\r
-70-B3-D5 (hex) ADDE\r
-79C000-79CFFF (base 16) ADDE\r
- 21 impasse frédéric faÿs\r
- Villeurbanne 69100\r
- FR\r
-\r
70-B3-D5 (hex) DEUTA-WERKE GmbH\r
F6B000-F6BFFF (base 16) DEUTA-WERKE GmbH\r
Paffrather Str. 140\r
Bergisch Gladbach North Rhine-Westphalia 51465\r
DE\r
\r
+70-B3-D5 (hex) Nocix, LLC\r
+BE2000-BE2FFF (base 16) Nocix, LLC\r
+ 201 East 16th Ave\r
+ North Kansas City MO 64116\r
+ US\r
+\r
70-B3-D5 (hex) Servotronix Motion Control\r
B0E000-B0EFFF (base 16) Servotronix Motion Control\r
21C Yagia Kapayim st.\r
Eschbach 79427\r
DE\r
\r
-70-B3-D5 (hex) Qlinx Technologies\r
-EC9000-EC9FFF (base 16) Qlinx Technologies\r
- 1717 N Street NW Ste 1\r
- Washington DC 20036\r
- US\r
-\r
70-B3-D5 (hex) Pantherun Technologies Pvt Ltd\r
B14000-B14FFF (base 16) Pantherun Technologies Pvt Ltd\r
311 6th main road Hal 2nd stage\r
Bangalore Karnataka 560038\r
IN\r
\r
-70-B3-D5 (hex) Liberator Pty Ltd\r
-561000-561FFF (base 16) Liberator Pty Ltd\r
- 265?Gilbert Street\r
- Adelaide SA 5000\r
- AU\r
+70-B3-D5 (hex) Qlinx Technologies\r
+EC9000-EC9FFF (base 16) Qlinx Technologies\r
+ 1717 N Street NW Ste 1\r
+ Washington DC 20036\r
+ US\r
\r
70-B3-D5 (hex) EASTERN SCIENCE & TECHNOLOGY CO., LTD\r
2DF000-2DFFFF (base 16) EASTERN SCIENCE & TECHNOLOGY CO., LTD\r
Bridge of Don Aberdeen AB22 8GT\r
GB\r
\r
-70-B3-D5 (hex) Contec Americas Inc.\r
-883000-883FFF (base 16) Contec Americas Inc.\r
- 3991 Sarno Rd\r
- Melbourne FL 32934\r
- US\r
+70-B3-D5 (hex) Liberator Pty Ltd\r
+561000-561FFF (base 16) Liberator Pty Ltd\r
+ 265?Gilbert Street\r
+ Adelaide SA 5000\r
+ AU\r
+\r
+70-B3-D5 (hex) International Super Computer Co., Ltd.\r
+806000-806FFF (base 16) International Super Computer Co., Ltd.\r
+ 807-3, 8 / F, block F, No. 9, Shangdi Third Street, Haidian District\r
+ Beijing 100085\r
+ CN\r
\r
70-B3-D5 (hex) Hon Hai Precision IND.CO.,LTD\r
B45000-B45FFF (base 16) Hon Hai Precision IND.CO.,LTD\r
TAIPEI TAIWAN 33859\r
CN\r
\r
-70-B3-D5 (hex) International Super Computer Co., Ltd.\r
-806000-806FFF (base 16) International Super Computer Co., Ltd.\r
- 807-3, 8 / F, block F, No. 9, Shangdi Third Street, Haidian District\r
- Beijing 100085\r
- CN\r
+70-B3-D5 (hex) Contec Americas Inc.\r
+883000-883FFF (base 16) Contec Americas Inc.\r
+ 3991 Sarno Rd\r
+ Melbourne FL 32934\r
+ US\r
\r
70-B3-D5 (hex) Rivercity Innovations Ltd.\r
156000-156FFF (base 16) Rivercity Innovations Ltd.\r
Menomonee Falls WI 53051\r
US\r
\r
+70-B3-D5 (hex) EkspertStroyProekt LLC\r
+DE9000-DE9FFF (base 16) EkspertStroyProekt LLC\r
+ office 400, str.61, d.2/4, Luzhnetskaya nab.\r
+ Moscow Moscow 119270\r
+ RU\r
+\r
70-B3-D5 (hex) EA Elektroautomatik GmbH & Co. KG\r
4C3000-4C3FFF (base 16) EA Elektroautomatik GmbH & Co. KG\r
Helmholtzstraße 31-33\r
Viersen NRW 41747\r
DE\r
\r
-70-B3-D5 (hex) EkspertStroyProekt LLC\r
-DE9000-DE9FFF (base 16) EkspertStroyProekt LLC\r
- office 400, str.61, d.2/4, Luzhnetskaya nab.\r
- Moscow Moscow 119270\r
- RU\r
+70-B3-D5 (hex) GSP Sprachtechnologie GmbH\r
+93C000-93CFFF (base 16) GSP Sprachtechnologie GmbH\r
+ Teltowkanalstraße 1\r
+ Berlin 12247\r
+ DE\r
+\r
+70-B3-D5 (hex) GUNMA ELECTRONICS CO LTD\r
+64F000-64FFFF (base 16) GUNMA ELECTRONICS CO LTD\r
+ 760 OOMAMA\r
+ MIDORI-CITY GUNMA 376-0101\r
+ JP\r
\r
70-B3-D5 (hex) YDK Technologies Co.,Ltd\r
7F0000-7F0FFF (base 16) YDK Technologies Co.,Ltd\r
Shibuya-ku Tokyo 151-0051\r
JP\r
\r
+70-B3-D5 (hex) Velvac Incorporated\r
+4DD000-4DDFFF (base 16) Velvac Incorporated\r
+ 2183 Alpine Way\r
+ Bellingham WA 98226\r
+ US\r
+\r
70-B3-D5 (hex) Potter Electric Signal Co. LLC\r
A1B000-A1BFFF (base 16) Potter Electric Signal Co. LLC\r
1609 Park 370 Place\r
Hazelwood MO 63042\r
US\r
\r
+70-B3-D5 (hex) Digitella Inc.\r
+D03000-D03FFF (base 16) Digitella Inc.\r
+ 2F, Banpodaero 99\r
+ Seocho-gu Seoul 06657\r
+ KR\r
+\r
+70-B3-D5 (hex) Twoway Communications, Inc.\r
+41C000-41CFFF (base 16) Twoway Communications, Inc.\r
+ 41 Wu Kung 6 Rd., New Taipei Industrial Park, New Taipei City,24891,Taiwan,R.O.C.\r
+ New Taipei city Taipei 24891\r
+ TW\r
+\r
+70-B3-D5 (hex) Power Electronics Espana, S.L.\r
+BDB000-BDBFFF (base 16) Power Electronics Espana, S.L.\r
+ PI Pla de Carrases, CV-35 Salida 30Salida 30-\r
+ lliria Valencia 46160\r
+ ES\r
+\r
+70-B3-D5 (hex) B2cloud lda\r
+29E000-29EFFF (base 16) B2cloud lda\r
+ Urbanizacao do correlo 4,14\r
+ Gandra Paredes 4585-362\r
+ PT\r
+\r
+70-B3-D5 (hex) Elman srl\r
+B2C000-B2CFFF (base 16) Elman srl\r
+ Via di Valle Caia, km 4.700\r
+ Pomezia Roma 00040\r
+ IT\r
+\r
+70-B3-D5 (hex) AADONA Communication Pvt Ltd\r
+ED9000-ED9FFF (base 16) AADONA Communication Pvt Ltd\r
+ 1st Floor, Phoenix Tech Tower, Plot No. 14/46, IDA - Uppal\r
+ Hyderabad Telangana 500039\r
+ IN\r
+\r
70-B3-D5 (hex) DISMUNTEL SAL\r
92C000-92CFFF (base 16) DISMUNTEL SAL\r
Pol ind cotes\r
Bievres IDF 91470\r
\r
\r
-70-B3-D5 (hex) Farmobile\r
-13F000-13FFFF (base 16) Farmobile\r
- 18132 Melrose Dr.\r
- Bucyrus KS 66013\r
- \r
-\r
70-B3-D5 (hex) Code Blue Corporation\r
C3F000-C3FFFF (base 16) Code Blue Corporation\r
259 Hedcor St\r
Oslo Oslo 0504\r
NO\r
\r
+70-B3-D5 (hex) RCH Vietnam Limited Liability Company\r
+6BD000-6BDFFF (base 16) RCH Vietnam Limited Liability Company\r
+ Workshop F.01B-2, Lot No. F.01B Long Hau\r
+ Ho Chi Minh City Ho Chi Minh 70000\r
+ VN\r
+\r
70-B3-D5 (hex) Gamber Johnson-LLC\r
E34000-E34FFF (base 16) Gamber Johnson-LLC\r
3001 Borham Ave\r
Stevens Point WI 54481\r
US\r
\r
-70-B3-D5 (hex) RCH Vietnam Limited Liability Company\r
-6BD000-6BDFFF (base 16) RCH Vietnam Limited Liability Company\r
- Workshop F.01B-2, Lot No. F.01B Long Hau\r
- Ho Chi Minh City Ho Chi Minh 70000\r
- VN\r
+70-B3-D5 (hex) YUYAMA MFG Co.,Ltd\r
+C2B000-C2BFFF (base 16) YUYAMA MFG Co.,Ltd\r
+ 3-3-1\r
+ TOYONAKASHI OSAKA 561-0841\r
+ JP\r
\r
70-B3-D5 (hex) YUYAMA MFG Co.,Ltd\r
1F2000-1F2FFF (base 16) YUYAMA MFG Co.,Ltd\r
Moscow 105484\r
RU\r
\r
-70-B3-D5 (hex) YUYAMA MFG Co.,Ltd\r
-C2B000-C2BFFF (base 16) YUYAMA MFG Co.,Ltd\r
- 3-3-1\r
- TOYONAKASHI OSAKA 561-0841\r
- JP\r
-\r
70-B3-D5 (hex) eSMART Technologies SA\r
979000-979FFF (base 16) eSMART Technologies SA\r
Chemin de la Rueyre, 118\r
Renens VD 1020\r
CH\r
\r
-70-B3-D5 (hex) Duplomatic MS spa\r
-DE1000-DE1FFF (base 16) Duplomatic MS spa\r
- Via Re Depaolini 24\r
- Parabiago Milan 20015\r
- IT\r
-\r
70-B3-D5 (hex) Axnes AS\r
65F000-65FFFF (base 16) Axnes AS\r
Terje Løvåsvei 1\r
Grimstad 4879\r
NO\r
\r
+70-B3-D5 (hex) Duplomatic MS spa\r
+DE1000-DE1FFF (base 16) Duplomatic MS spa\r
+ Via Re Depaolini 24\r
+ Parabiago Milan 20015\r
+ IT\r
+\r
70-B3-D5 (hex) Nanjing Pingguang Electronic Technology Co., Ltd\r
541000-541FFF (base 16) Nanjing Pingguang Electronic Technology Co., Ltd\r
B30/B31 4th Floor, Building#11, Shengtai Road, JiangNing District\r
NanJing 211100\r
CN\r
\r
+70-B3-D5 (hex) PHYZHON Health Inc\r
+744000-744FFF (base 16) PHYZHON Health Inc\r
+ 180 Blue Ravine Road, suite A\r
+ Folsom CA 95630\r
+ US\r
+\r
70-B3-D5 (hex) thingdust AG\r
3C1000-3C1FFF (base 16) thingdust AG\r
Moosstrasse 7\r
Lucerne Lucerne 6003\r
CH\r
\r
+70-B3-D5 (hex) Panoramic Power\r
+53A000-53AFFF (base 16) Panoramic Power\r
+ 15 Atir Yeda\r
+ Kfar Saba 4464312\r
+ IL\r
+\r
70-B3-D5 (hex) ALVAT s.r.o.\r
369000-369FFF (base 16) ALVAT s.r.o.\r
Chodovska 228/3\r
Praha 4 14100\r
CZ\r
\r
-70-B3-D5 (hex) PHYZHON Health Inc\r
-744000-744FFF (base 16) PHYZHON Health Inc\r
- 180 Blue Ravine Road, suite A\r
- Folsom CA 95630\r
- US\r
-\r
70-B3-D5 (hex) PCB Piezotronics\r
4CA000-4CAFFF (base 16) PCB Piezotronics\r
3425 Walden Avenue\r
Depew NY 14043\r
US\r
\r
-70-B3-D5 (hex) Panoramic Power\r
-53A000-53AFFF (base 16) Panoramic Power\r
- 15 Atir Yeda\r
- Kfar Saba 4464312\r
- IL\r
-\r
70-B3-D5 (hex) STEP sarl\r
481000-481FFF (base 16) STEP sarl\r
11, avenue Aristide Berges\r
LANCEY ISERE 38190\r
FR\r
\r
-70-B3-D5 (hex) ZPAS S.A.\r
-2D9000-2D9FFF (base 16) ZPAS S.A.\r
- Przygorze 209\r
- Woliborz Lower Silesian (Dolno?l?skie) 57-431\r
- PL\r
+70-B3-D5 (hex) Mianjie Technology\r
+8FC000-8FCFFF (base 16) Mianjie Technology\r
+ Zhubang2000 Building2 1205\r
+ Beijing 100000\r
+ CN\r
\r
70-B3-D5 (hex) Redstone Sunshine(Beijing)Technology Co.,Ltd.\r
6C9000-6C9FFF (base 16) Redstone Sunshine(Beijing)Technology Co.,Ltd.\r
Beijing 100020\r
CN\r
\r
-70-B3-D5 (hex) Mianjie Technology\r
-8FC000-8FCFFF (base 16) Mianjie Technology\r
- Zhubang2000 Building2 1205\r
- Beijing 100000\r
- CN\r
+70-B3-D5 (hex) ZPAS S.A.\r
+2D9000-2D9FFF (base 16) ZPAS S.A.\r
+ Przygorze 209\r
+ Woliborz Lower Silesian (Dolno?l?skie) 57-431\r
+ PL\r
\r
70-B3-D5 (hex) HAI ROBOTICS Co., Ltd.\r
0B7000-0B7FFF (base 16) HAI ROBOTICS Co., Ltd.\r
Santa Ana CA 92705\r
US\r
\r
-70-B3-D5 (hex) Peter Huber Kaeltemaschinenbau AG\r
-DC4000-DC4FFF (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) Beijing Aumiwalker technology CO.,LTD\r
C7C000-C7CFFF (base 16) Beijing Aumiwalker technology CO.,LTD\r
Floor 6, Tower 1, No.1 Zhonghe Road Fengtai Science Park Beijing P.R.C.\r
Beijing Beijing 100071\r
CN\r
\r
+70-B3-D5 (hex) Peter Huber Kaeltemaschinenbau AG\r
+DC4000-DC4FFF (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) Kazdream Technologies LLP\r
089000-089FFF (base 16) Kazdream Technologies LLP\r
10, Turkestan Str.\r
Webb City MO 64870\r
US\r
\r
+70-B3-D5 (hex) Military Research Institute\r
+2F7000-2F7FFF (base 16) Military Research Institute\r
+ Veslarska 230\r
+ Brno 63700\r
+ CZ\r
+\r
70-B3-D5 (hex) Farmpro Ltd\r
17C000-17CFFF (base 16) Farmpro Ltd\r
806, 28 Digitalro 30gil, Gurogu\r
Irun Gipuzkoa 20305\r
ES\r
\r
-70-B3-D5 (hex) Military Research Institute\r
-2F7000-2F7FFF (base 16) Military Research Institute\r
- Veslarska 230\r
- Brno 63700\r
- CZ\r
-\r
70-B3-D5 (hex) Network Innovations\r
DA7000-DA7FFF (base 16) Network Innovations\r
4950 West Prospect Road\r
Champagne au Mont d'Or Rhône 69543\r
FR\r
\r
+70-B3-D5 (hex) Grossenbacher Systeme AG\r
+5FE000-5FEFFF (base 16) Grossenbacher Systeme AG\r
+ Spinnereistrasse 10\r
+ St. Gallen 9008\r
+ CH\r
+\r
+70-B3-D5 (hex) QUISS GmbH\r
+AAB000-AABFFF (base 16) QUISS GmbH\r
+ Lilienthalstraße 5\r
+ Puchheim 82178\r
+ DE\r
+\r
70-B3-D5 (hex) Shanghai Qinyue Communication Technology Co., Ltd.\r
B57000-B57FFF (base 16) Shanghai Qinyue Communication Technology Co., Ltd.\r
Room 101,Building 51,Lane 588,ShuPing Road,Jiading District\r
Oslo Select One 1405\r
NO\r
\r
-70-B3-D5 (hex) QUISS GmbH\r
-AAB000-AABFFF (base 16) QUISS GmbH\r
- Lilienthalstraße 5\r
- Puchheim 82178\r
- DE\r
-\r
-70-B3-D5 (hex) Grossenbacher Systeme AG\r
-5FE000-5FEFFF (base 16) Grossenbacher Systeme AG\r
- Spinnereistrasse 10\r
- St. Gallen 9008\r
- CH\r
-\r
70-B3-D5 (hex) Accolade Technology Inc\r
87A000-87AFFF (base 16) Accolade Technology Inc\r
124 Grove Street, Suite 315\r
FRANKLIN MA 02038\r
US\r
\r
+70-B3-D5 (hex) Loehnert Elektronik GmbH\r
+8A3000-8A3FFF (base 16) Loehnert Elektronik GmbH\r
+ Oskar-Sembach-Ring 18\r
+ Lauf a.d.Peg. Bavaria 91207\r
+ DE\r
+\r
70-B3-D5 (hex) Adcole Space\r
922000-922FFF (base 16) Adcole Space\r
734 Forest St.,Suite #100\r
Dinkelsbuehl Bavaria 91550\r
DE\r
\r
-70-B3-D5 (hex) Loehnert Elektronik GmbH\r
-8A3000-8A3FFF (base 16) Loehnert Elektronik GmbH\r
- Oskar-Sembach-Ring 18\r
- Lauf a.d.Peg. Bavaria 91207\r
- DE\r
-\r
-70-B3-D5 (hex) plc-tec AG\r
-095000-095FFF (base 16) plc-tec AG\r
- Panoramastrasse 5\r
- Hägglingen 5607\r
- CH\r
+70-B3-D5 (hex) Tobi Tribe Inc\r
+D68000-D68FFF (base 16) Tobi Tribe Inc\r
+ 13263 MIDDLETON FARM LN,\r
+ HERNDON, VA 20171\r
+ US\r
\r
70-B3-D5 (hex) Edge Power Solutions\r
612000-612FFF (base 16) Edge Power Solutions\r
Melbourne FL 32940\r
US\r
\r
-70-B3-D5 (hex) Tobi Tribe Inc\r
-D68000-D68FFF (base 16) Tobi Tribe Inc\r
- 13263 MIDDLETON FARM LN,\r
- HERNDON, VA 20171\r
- US\r
+70-B3-D5 (hex) Eurotempest AB\r
+E37000-E37FFF (base 16) Eurotempest AB\r
+ Algolgatan 10\r
+ Linköping Other 58335\r
+ SE\r
\r
70-B3-D5 (hex) Antek Technology \r
9E5000-9E5FFF (base 16) Antek Technology \r
Taipei 100\r
TW\r
\r
-70-B3-D5 (hex) Eurotempest AB\r
-E37000-E37FFF (base 16) Eurotempest AB\r
- Algolgatan 10\r
- Linköping Other 58335\r
- SE\r
+70-B3-D5 (hex) plc-tec AG\r
+095000-095FFF (base 16) plc-tec AG\r
+ Panoramastrasse 5\r
+ Hägglingen 5607\r
+ CH\r
+\r
+70-B3-D5 (hex) Weihai Weigao Medical Imaging Technology Co., Ltd\r
+534000-534FFF (base 16) Weihai Weigao Medical Imaging Technology Co., Ltd\r
+ No. 566-1, Qishan Road, Lingang Economic and Technological Development Zone\r
+ Weihai Shandong 264210\r
+ CN\r
\r
70-B3-D5 (hex) ARECA EMBEDDED SYSTEMS PVT LTD\r
F15000-F15FFF (base 16) ARECA EMBEDDED SYSTEMS PVT LTD\r
Incheon 21999\r
KR\r
\r
-70-B3-D5 (hex) Weihai Weigao Medical Imaging Technology Co., Ltd\r
-534000-534FFF (base 16) Weihai Weigao Medical Imaging Technology Co., Ltd\r
- No. 566-1, Qishan Road, Lingang Economic and Technological Development Zone\r
- Weihai Shandong 264210\r
- CN\r
-\r
70-B3-D5 (hex) LiveCopper Inc.\r
9E9000-9E9FFF (base 16) LiveCopper Inc.\r
600 Greer Rd\r
Shenzhen Guangdong 518132\r
CN\r
\r
-70-B3-D5 (hex) CAST Group of Companies Inc.\r
-BDE000-BDEFFF (base 16) CAST Group of Companies Inc.\r
- 35 Ripley Ave.\r
- Toronto Ontario M6S3P2\r
- CA\r
-\r
-70-B3-D5 (hex) Momentum Data Systems\r
-116000-116FFF (base 16) Momentum Data Systems\r
- 5432 Bolsa Ave Unit B\r
- Huntington Beach CA 92649\r
- US\r
-\r
70-B3-D5 (hex) Camozzi Automation SpA\r
3AB000-3ABFFF (base 16) Camozzi Automation SpA\r
Via Eritrea 20/I\r
Nürnberg Bavaria 90441\r
DE\r
\r
+70-B3-D5 (hex) CAST Group of Companies Inc.\r
+BDE000-BDEFFF (base 16) CAST Group of Companies Inc.\r
+ 35 Ripley Ave.\r
+ Toronto Ontario M6S3P2\r
+ CA\r
+\r
+70-B3-D5 (hex) Momentum Data Systems\r
+116000-116FFF (base 16) Momentum Data Systems\r
+ 5432 Bolsa Ave Unit B\r
+ Huntington Beach CA 92649\r
+ US\r
+\r
70-B3-D5 (hex) Arris\r
988000-988FFF (base 16) Arris\r
2500 Walsh Ave.\r
Santa Clara CA 95014\r
US\r
\r
-70-B3-D5 (hex) Xirgo Technologies LLC\r
-646000-646FFF (base 16) Xirgo Technologies LLC\r
- 188 Camino Ruiz\r
- Camarillo CA 93012\r
- US\r
-\r
70-B3-D5 (hex) Transit Solutions, LLC.\r
4E2000-4E2FFF (base 16) Transit Solutions, LLC.\r
114 West Grandview Avenue\r
Zelienople PA 16063\r
US\r
\r
+70-B3-D5 (hex) Xirgo Technologies LLC\r
+646000-646FFF (base 16) Xirgo Technologies LLC\r
+ 188 Camino Ruiz\r
+ Camarillo CA 93012\r
+ US\r
+\r
70-B3-D5 (hex) JD Squared, Inc.\r
562000-562FFF (base 16) JD Squared, Inc.\r
915 Riverview Drive\r
Johnson City TN 37601\r
US\r
\r
-70-B3-D5 (hex) VOCAL Technologies Ltd.\r
-7B5000-7B5FFF (base 16) VOCAL Technologies Ltd.\r
- 520 LEE ENTRANCE STE 202\r
- BUFFALO NY 142282583\r
- US\r
-\r
70-B3-D5 (hex) Deltronic Security AB\r
CEC000-CECFFF (base 16) Deltronic Security AB\r
E A Rosengrensgata 4\r
Vitória Espírito Santo 29070-010\r
BR\r
\r
+70-B3-D5 (hex) VOCAL Technologies Ltd.\r
+7B5000-7B5FFF (base 16) VOCAL Technologies Ltd.\r
+ 520 LEE ENTRANCE STE 202\r
+ BUFFALO NY 142282583\r
+ US\r
+\r
70-B3-D5 (hex) Shenyang TECHE Technology Co.,Ltd\r
47D000-47DFFF (base 16) Shenyang TECHE Technology Co.,Ltd\r
oom2302, Changfeng building, 26-2 Pangjiang street, Dadong District\r
Helsingborg 25225\r
SE\r
\r
+70-B3-D5 (hex) Larraioz Elektronika\r
+176000-176FFF (base 16) Larraioz Elektronika\r
+ FACT Larraioz, Ctra GI3162 km 2,2\r
+ Zarautz 20800\r
+ ES\r
+\r
70-B3-D5 (hex) Omsk Manufacturing Association named after A.S. Popov\r
A61000-A61FFF (base 16) Omsk Manufacturing Association named after A.S. Popov\r
10 Let Oktyabrya str, 195\r
VENDARGUES 34740\r
FR\r
\r
-70-B3-D5 (hex) Larraioz Elektronika\r
-176000-176FFF (base 16) Larraioz Elektronika\r
- FACT Larraioz, Ctra GI3162 km 2,2\r
- Zarautz 20800\r
- ES\r
+70-B3-D5 (hex) ICsec S.A.\r
+395000-395FFF (base 16) ICsec S.A.\r
+ Wichrowa 1A\r
+ Poznan 60-446\r
+ PL\r
\r
70-B3-D5 (hex) Potter Electric Signal Co. LLC\r
7A4000-7A4FFF (base 16) Potter Electric Signal Co. LLC\r
Hazelwood MO 63042\r
US\r
\r
-70-B3-D5 (hex) ICsec S.A.\r
-395000-395FFF (base 16) ICsec S.A.\r
- Wichrowa 1A\r
- Poznan 60-446\r
- PL\r
+70-B3-D5 (hex) KMtronic ltd\r
+540000-540FFF (base 16) KMtronic ltd\r
+ Dobri Czintulov 28A str.\r
+ Gorna Oryahovica VT 5100\r
+ BG\r
+\r
+70-B3-D5 (hex) MIJIENETRTECH CO.,LTD\r
+DCB000-DCBFFF (base 16) MIJIENETRTECH CO.,LTD\r
+ 402, Ilshin Techno Valley,555, Dalseo-daero Dalseo-gu\r
+ Daegu 42709\r
+ KR\r
+\r
+70-B3-D5 (hex) Mitech Integrated Systems Inc.\r
+C28000-C28FFF (base 16) Mitech Integrated Systems Inc.\r
+ 219 Robert Hicks Dr\r
+ Toronto ON M2R3R3\r
+ CA\r
+\r
+70-B3-D5 (hex) SOtM\r
+CC7000-CC7FFF (base 16) SOtM\r
+ 202 SSANGYONG-DONG 84/9 WOLBONG 4RO SEOBUK GU\r
+ Cheonan Chungnam 31171\r
+ KR\r
+\r
+70-B3-D5 (hex) Terratel Technology s.r.o.\r
+31A000-31AFFF (base 16) Terratel Technology s.r.o.\r
+ Dukelska 2192\r
+ Benesov CZ 25601\r
+ CZ\r
+\r
+70-B3-D5 (hex) Teledyne API\r
+F9D000-F9DFFF (base 16) Teledyne API\r
+ 9970 Carroll Canyon Road\r
+ San Diego CA 92131-1106\r
+ US\r
+\r
+70-B3-D5 (hex) QIT Co., Ltd.\r
+81C000-81CFFF (base 16) QIT Co., Ltd.\r
+ #713, ACE Gwanggyo Tower1, 17, Daehak 4-ro, Yeongtong-gu\r
+ Suwon-si Gyeonggi-do 16226\r
+ KR\r
+\r
+70-B3-D5 (hex) Farmobile, LLC\r
+13F000-13FFFF (base 16) Farmobile, LLC\r
+ 4001 West 114th Street Suite 300\r
+ Leawood KS 66211\r
+ US\r
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
# Those files right now are not supported by the grammar. Also,
# they are very long but quite repetitive and the parser is not very fast.
except ParseBaseException as e:
error('Pattern {!r} is invalid: {}', rest, e)
continue
-
- if not rest.endswith(':*'):
- error("pattern {!r} does not end with ':*'", match)
+ if rest[-1] not in '*:':
+ error('pattern {} does not end with "*" or ":"', match)
matches.sort()
prev = None
#
# List of PCI ID's
#
-# Version: 2020.10.11
-# Date: 2020-10-11 03:15:01
+# Version: 2020.10.25
+# Date: 2020-10-25 03:15:01
#
# Maintained by Albert Pool, Martin Mares, and other volunteers from
# the PCI ID Project at https://pci-ids.ucw.cz/.
1d49 0200 ThinkSystem 430-8i SAS/SATA 12Gb HBA
1d49 0202 ThinkSystem 430-8e SAS/SATA 12Gb HBA
1d49 0204 ThinkSystem 430-8i SAS/SATA 12Gb Dense HBA
+# PCIe switch SES management endpoint
+ 00b2 PEX880xx PCIe Gen 4 Switch SES management endpoint
00be SAS3504 Fusion-MPT Tri-Mode RAID On Chip (ROC)
00bf SAS3404 Fusion-MPT Tri-Mode I/O Controller Chip (IOC)
00c0 SAS3324 PCI-Express Fusion-MPT SAS-3
67e9 Baffin [Polaris11]
67eb Baffin [Radeon Pro V5300X]
67ef Baffin [Radeon RX 460/560D / Pro 450/455/460/555/555X/560/560X]
+ 1025 1367 RX560X 4GB
1028 1703 RX 560D OEM OC 2 GB
103c 3421 Radeon RX 460
1043 0561 AREZ Radeon RX 560
7347 Navi 14 [Radeon Pro W5500M]
734f Navi 14 [Radeon Pro W5300M]
7360 Navi 12 [Radeon Pro 5600M]
+ 73bf Navi 21 [Radeon RX 6900 Series]
+ 73c3 Navi 23
+ 73df Navi 22
7833 RS350 Host Bridge
7834 RS350 [Radeon 9100 PRO/XT IGP]
7835 RS350M [Mobility Radeon 9000 IGP]
13fb GM204GLM [Quadro M5500]
1401 GM206 [GeForce GTX 960]
1402 GM206 [GeForce GTX 950]
+ 1404 GM206 [GeForce GTX 960 FAKE]
1406 GM206 [GeForce GTX 960 OEM]
1407 GM206 [GeForce GTX 750 v2]
1427 GM206M [GeForce GTX 965M]
1c30 GP106GL [Quadro P2000]
1c31 GP106GL [Quadro P2200]
1c35 GP106
+ 1c36 GP106
1c60 GP106BM [GeForce GTX 1060 Mobile 6GB]
103c 8390 GeForce GTX 1060 Max-Q 6GB
1c61 GP106BM [GeForce GTX 1050 Ti Mobile]
1fd9 TU117BM [GeForce GTX 1650 Mobile Refresh]
1ff9 TU117GLM [Quadro T1000 Mobile]
20b0 GA100 [A100 SXM4 40GB]
+ 20b1 GA100 [A100 PCIe 40GB]
20be GA100 [GRID A100A]
20bf GA100 [GRID A100B]
20f1 GA100 [A100 PCIe 40GB]
2230 GA102GL [RTX A6000]
223f GA102GL
2482 GA104 [GeForce RTX 3070 Ti]
- 2484 GA104 [GeForce RTX 3070]
+ 2484 GA104 [GeForce RTX 3070 8GB / 16GB]
+ 10de 146b GA104 [GeForce RTX 3070]
+ 10de 14ae GA104 [GeForce RTX 3070 16GB]
2486 GA104 [GeForce RTX 3060 Ti]
- 249c GA104M [GeForce RTX 3070 Mobile]
+ 249c GA104M [GeForce RTX 3070 Mobile / Max-Q]
249d GA104M [GeForce RTX 3070 Mobile / Max-Q]
+ 24ac GA104 [GeForce RTX 30x0 Engineering Sample]
+ 24ad GA104 [GeForce RTX 3060 Engineering Sample]
24af GA104 [GeForce RTX 3070 Engineering Sample]
24bf GA104 [GeForce RTX 3070 Engineering Sample]
+ 24dc GA104 [GeForce RTX 3070 16GB Engineering Sample]
252f GA106 [GeForce RTX 3060 Engineering Sample]
+ 25af GA107 [GeForce RTX 3050 Engineering Sample]
10df Emulex Corporation
0720 OneConnect NIC (Skyhawk)
103c 1934 FlexFabric 20Gb 2-port 650M Adapter
1137 00ce VIC 1225T PCIe Management Controller
1137 012e VIC 1227 PCIe Management Controller
1137 014d VIC 1385 PCIe Management Controller
+ 1137 0217 VIC 1455 PCIe Management Controller
+ 1137 0218 VIC 1457 PCIe Management Controller
0043 VIC Ethernet NIC
1137 0047 VIC P81E PCIe Ethernet NIC
1137 0048 VIC M81KR Mezzanine Ethernet NIC
125b Asix Electronics Corporation
1400 AX88141 Fast Ethernet Controller
1186 1100 AX8814X Based PCI Fast Ethernet Adapter
+ 9100 AX99100 PCIe to Multi I/O Controller
+ a000 1000 Serial Port
+ a000 2000 Parallel Port
+ a000 6000 SPI
+ a000 7000 Local Bus
125c Aurora Technologies, Inc.
0101 Saturn 4520P
0640 Aries 16000P
15b7 Sandisk Corp
2001 Skyhawk Series NVME SSD
5001 WD Black NVMe SSD
- 5002 WD Black 2018/PC SN720 NVMe SSD
- 5003 WD Black 2018/PC SN520 NVMe SSD
+ 5002 WD Black 2018 / PC SN720 NVMe SSD
+ 5003 WD Black 2018 / PC SN520 NVMe SSD
+ 5006 WD Black 2019/PC SN750 NVMe SSD
+ 5009 WD Blue SN550 NVMe SSD
+ 15b7 5009 WD Blue SN550 NVMe SSD
15b8 ADDI-DATA GmbH
1001 APCI1516 SP controller (16 digi outputs)
1003 APCI1032 SP controller (32 digi inputs w/ opto coupler)
1974 Star Electronics GmbH & Co. KG
0009 FlexCard PMC-II
0011 FlexCard PMC-II Ethernet
+ 0018 FlexCard PXIe3
+ 0019 FlexCard PCIe3
1976 TRENDnet
1977 Parsec
197b JMicron Technology Corp.
1285 PC300 NVMe Solid State Drive 1TB
1327 BC501 NVMe Solid State Drive 512GB
1504 SC300 512GB M.2 2280 SATA Solid State Drive
+ 243b PE6110 NVMe Solid State Drive
+ 1c5c 0100 PE6110 NVMe Solid State Drive
2839 PE8000 Series NVMe Solid State Drive
- 0100 1c5c PE8000 Series NVMe Solid State Drive
+ 1c5c 0100 PE8000 Series NVMe Solid State Drive
1c5f Beijing Memblaze Technology Co. Ltd.
000d PBlaze5 520/526 AIC
003d PBlaze5 920/926 AIC
1202 NVMe SSD Controller MAP1202
1601 NVMe SSD Controller MAP1601
1e4c GSI Technology
-# Associative Processing Unit chip
- 0010 Gemini [ Lida ]
+# Associative Processing Unit (APU)
+ 0010 APU [Leda-G]
1e4c 0120 SE120
1e57 Beijing Panyi Technology Co., Ltd
0100 The device has already been deleted.
0000 0100 PY8800 64GB Accelerator
1e6b Axiado Corp.
+1e7b Dataland
1e7c Brainchip Inc
bca1 AKD1000 Neural Network Coprocessor [Akida]
1e85 Heitec AG
# aka SED Systems
1e94 Calian SED
1e95 Solid State Storage Technology Corporation
+1eae XFX Limited
1eb1 VeriSilicon Inc
1001 Video Accelerator
# nee Tumsan Oy
8086 0001 Ethernet Network Adapter I225-T1
8086 0002 Ethernet Network Adapter I225-T1
15f3 Ethernet Controller I225-V
+ 8086 0003 Intel(R) Ethernet Controller (3) I225-V
15f4 Ethernet Connection (15) I219-LM
15f5 Ethernet Connection (15) I219-V
15f6 I210 Gigabit Ethernet Connection
163d Broadwell-U Integrated Graphics
163e Broadwell-U Integrated Graphics
1889 Ethernet Adaptive Virtual Function
+ 1890 Ethernet Connection E822-C for backplane
+ 1891 Ethernet Connection E822-C for QSFP
+ 1892 Ethernet Connection E822-C for SFP
+ 1893 Ethernet Connection E822-C/X557-AT 10GBASE-T
+ 1894 Ethernet Connection E822-C 1GbE
+ 1897 Ethernet Connection E822-L for backplane
+ 1898 Ethernet Connection E822-L for SFP
+ 1899 Ethernet Connection E822-L/X557-AT 10GBASE-T
+ 189a Ethernet Connection E822-L 1GbE
18a0 C4xxx Series QAT
18a1 C4XXX Series QAT Virtual Function
1900 Xeon E3-1200 v5/E3-1500 v5/6th Gen Core Processor Host Bridge/DRAM Registers
3e30 8th/9th Gen Core 8-core Desktop Processor Host Bridge/DRAM Registers [Coffee Lake S]
3e33 8th/9th Gen Core Processor Host Bridge/DRAM Registers [Coffee Lake]
3e34 Coffee Lake HOST and DRAM Controller
+ 3e35 Coffee Lake Host Bridge/DRAM Registers
3e81 8th Gen Core Processor PCIe Controller (x16)
3e85 8th Gen Core Processor PCIe Controller (x8)
3e89 8th Gen Core Processor PCIe Controller (x4)
152d 8a24 QS-8236-16i
152d 8a36 QS-8240-24i
152d 8a37 QS-8242-24i
+ 193d 1104 RAID P2404-Mf-4i-2GB
+ 193d 1105 RAID P4408-Mf-8i-2GB
+ 193d 1106 RAID P2404-Mf-4i-1GB
+ 193d 1107 RAID P4408-Mf-8i-4GB
193d 8460 HBA H460-M1
193d 8461 HBA H460-B1
193d c460 RAID P460-M2
9005 0805 SmartRAID 3102-8i
9005 0806 SmartRAID 3100
9005 0807 SmartRAID 3162-8i
+ 9005 0808 SmartRAID 3101E-4i
+ 9005 0809 SmartRAID 3102E-8i
9005 0900 SmartHBA 2100-8i
9005 0901 SmartHBA 2100-4i
9005 0902 HBA 1100-8i
9005 1202 SmartRAID 3154-8i8e
9005 1280 HBA 1100-16i
9005 1281 HBA 1100-16e
+ 9005 1282 SmartHBA 2100-16i
9005 1300 HBA 1100-8i8e
9005 1301 HBA 1100-24i
9005 1302 SmartHBA 2100-8i8e
1202 STAR1200I NVMe SSD
1203 STAR1200L NVMe SSD
1204 STAR1200E NVMe SSD
+a000 Asix Electronics Corporation (Wrong ID)
a0a0 AOPEN Inc.
a0f1 UNISYS Corporation
a200 NEC Corporation
<tr class="even"><td>Meta View, Inc.</td><td>CFR</td><td>07/15/2020</td> </tr>
<tr class="odd"><td>MILCOTS</td><td>MLC</td><td>07/15/2020</td> </tr>
<tr class="even"><td>NZXT (PNP same EDID)_</td><td>NXT</td><td>07/15/2020</td> </tr>
+ <tr class="odd"><td>Unicompute Technology Co., Ltd.</td><td>UTC</td><td>10/19/2020</td> </tr>
</tbody>
</table>
</body>
<!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="binfmt.d" conditional='ENABLE_BINFMT'
xmlns:xi="http://www.w3.org/2001/XInclude">
<?xml version='1.0'?> <!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="bootctl" conditional='ENABLE_EFI'
xmlns:xi="http://www.w3.org/2001/XInclude">
<?xml version='1.0'?> <!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="bootup">
<?xml version='1.0'?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="busctl"
xmlns:xi="http://www.w3.org/2001/XInclude">
<?xml version='1.0'?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="coredump.conf" conditional="ENABLE_COREDUMP"
xmlns:xi="http://www.w3.org/2001/XInclude">
<?xml version='1.0'?> <!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="coredumpctl" conditional='ENABLE_COREDUMP'
xmlns:xi="http://www.w3.org/2001/XInclude">
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
<!--
- SPDX-License-Identifier: LGPL-2.1+
+ SPDX-License-Identifier: LGPL-2.1-or-later
This is based on crypttab(5) from Fedora's initscripts package, which in
turn is based on Debian's version.
<!ENTITY KILL_USER_PROCESSES @KILL_USER_PROCESSES_YES_NO@>
<!ENTITY DEBUGTTY @DEBUGTTY@>
<!ENTITY RC_LOCAL_PATH @RC_LOCAL_PATH@>
+<!ENTITY fedora_latest_version "33">
+<!ENTITY fedora_cloud_release "1.2">
<?xml version='1.0'?> <!--*-nxml-*-->
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<?xml version='1.0'?> <!--*-nxml-*-->
<!--
- SPDX-License-Identifier: LGPL-2.1+
+ SPDX-License-Identifier: LGPL-2.1-or-later
-->
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
<?xml version='1.0'?> <!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="daemon">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="systemd.directives">
<refentryinfo>
<?xml version='1.0'?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="dnssec-trust-anchors.d" conditional='ENABLE_RESOLVE'
xmlns:xi="http://www.w3.org/2001/XInclude">
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
<!--
- SPDX-License-Identifier: LGPL-2.1+
+ SPDX-License-Identifier: LGPL-2.1-or-later
Copyright © 2016 Red Hat, Inc.
-->
<?xml version='1.0'?> <!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="file-hierarchy">
<?xml version='1.0'?> <!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="halt"
xmlns:xi="http://www.w3.org/2001/XInclude">
<?xml version='1.0'?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="homectl" conditional='ENABLE_HOMED'
xmlns:xi="http://www.w3.org/2001/XInclude">
<term><option>--realm=</option><replaceable>REALM</replaceable></term>
<listitem><para>The realm for the user. The realm associates a user with a specific organization or
- installation, and allows distuingishing users of the same name defined in different contexts. The
+ installation, and allows distinguishing users of the same name defined in different contexts. The
realm can be any string that also qualifies as valid DNS domain name, and it is recommended to use
the organization's or installation's domain name for this purpose, but this is not enforced nor
required. On each system only a single user of the same name may exist, and if a user with the same
<?xml version='1.0'?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="homed.conf" conditional='ENABLE_HOMED'
xmlns:xi="http://www.w3.org/2001/XInclude">
<?xml version='1.0'?> <!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="hostname">
<refentryinfo>
<?xml version='1.0'?> <!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="hostnamectl" conditional='ENABLE_HOSTNAMED'
xmlns:xi="http://www.w3.org/2001/XInclude">
<?xml version='1.0'?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="hwdb" conditional="ENABLE_HWDB">
<refentryinfo>
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
<!--
- SPDX-License-Identifier: LGPL-2.1+
+ SPDX-License-Identifier: LGPL-2.1-or-later
Copyright © 2015 Chris Morgan
-->
<?xml version='1.0'?> <!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="journal-upload.conf" conditional='HAVE_MICROHTTPD'
xmlns:xi="http://www.w3.org/2001/XInclude">
<?xml version='1.0'?> <!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="journalctl"
xmlns:xi="http://www.w3.org/2001/XInclude">
<?xml version='1.0'?> <!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="journald.conf"
xmlns:xi="http://www.w3.org/2001/XInclude">
<?xml version='1.0'?> <!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="kernel-command-line">
<?xml version='1.0'?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="kernel-install"
xmlns:xi="http://www.w3.org/2001/XInclude">
<?xml version="1.0"?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refsect1>
<title>Environment</title>
pager may be enabled automatically as describe above. Setting <varname>SYSTEMD_PAGERSECURE=0</varname>
or not removing it from the inherited environment allows the user to invoke arbitrary commands. Note
that if the <varname>$SYSTEMD_PAGER</varname> or <varname>$PAGER</varname> variables are to be
- honoured, <varname>$SYSTEMD_PAGERSECURE</varname> must be set too. It might be reasonable to completly
+ honoured, <varname>$SYSTEMD_PAGERSECURE</varname> must be set too. It might be reasonable to completely
disable the pager using <option>--no-pager</option> instead.</para></listitem>
</varlistentry>
<?xml version="1.0"?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refsect1>
<title>Notes</title>
<!ENTITY % entities SYSTEM "custom-entities.ent" >
%entities;
]>
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="libudev"
xmlns:xi="http://www.w3.org/2001/XInclude">
<?xml version='1.0'?> <!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="loader.conf" conditional='ENABLE_EFI'
xmlns:xi="http://www.w3.org/2001/XInclude">
<?xml version='1.0'?> <!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="locale.conf">
<refentryinfo>
<?xml version='1.0'?> <!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="localectl" conditional='ENABLE_LOCALED'
xmlns:xi="http://www.w3.org/2001/XInclude">
<?xml version='1.0'?> <!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="localtime">
<refentryinfo>
<?xml version='1.0'?> <!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="loginctl" conditional='ENABLE_LOGIND'
xmlns:xi="http://www.w3.org/2001/XInclude">
<!ENTITY % entities SYSTEM "custom-entities.ent" >
%entities;
]>
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="logind.conf" conditional='ENABLE_LOGIND'
xmlns:xi="http://www.w3.org/2001/XInclude">
<?xml version='1.0'?> <!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="machine-id">
<refentryinfo>
<orderedlist>
<listitem><para>If <filename>/etc/machine-id</filename> does not exist, this is a first boot. During
- early boot, <command>systemd</command> will write <literal>unitialized\n</literal> to this file and overmount
+ early boot, <command>systemd</command> will write <literal>uninitialized\n</literal> to this file and overmount
a temporary file which contains the actual machine ID. Later (after <filename>first-boot-complete.target</filename>
has been reached), the real machine ID will be written to disk.</para></listitem>
<?xml version='1.0'?> <!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="machine-info">
<refentryinfo>
<?xml version='1.0'?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
- "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+ "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd" [
+<!ENTITY % entities SYSTEM "custom-entities.ent" >
+%entities;
+]>
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="machinectl" conditional='ENABLE_MACHINED'
xmlns:xi="http://www.w3.org/2001/XInclude">
<example>
<title>Download a Fedora image, set a root password in it, start
- it as service</title>
+ it as a service</title>
- <programlisting># machinectl pull-raw --verify=no https://dl.fedoraproject.org/pub/fedora/linux/releases/27/CloudImages/x86_64/images/Fedora-Cloud-Base-27-1.6.x86_64.raw.xz
-# systemd-nspawn -M Fedora-Cloud-Base-27-1.6.x86_64
+ <programlisting># machinectl pull-raw --verify=no \
+ https://download.fedoraproject.org/pub/fedora/linux/releases/&fedora_latest_version;/Cloud/x86_64/images/Fedora-Cloud-Base-&fedora_latest_version;-&fedora_cloud_release;.x86_64.raw.xz \
+ Fedora-Cloud-Base-&fedora_latest_version;-&fedora_cloud_release;.x86-64
+# systemd-nspawn -M Fedora-Cloud-Base-&fedora_latest_version;-&fedora_cloud_release;.x86-64
# passwd
# exit
-# machinectl start Fedora-Cloud-Base-27-1.6.x86_64
-# machinectl login Fedora-Cloud-Base-27-1.6.x86_64</programlisting>
+# machinectl start Fedora-Cloud-Base-&fedora_latest_version;-&fedora_cloud_release;.x86-64
+# machinectl login Fedora-Cloud-Base-&fedora_latest_version;-&fedora_cloud_release;.x86-64</programlisting>
<para>This downloads the specified <filename>.raw</filename>
image with verification disabled. Then, a shell is opened in it
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
# This is lame, I know, but meson has no other include mechanism
subdir('rules')
<!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="modules-load.d" conditional='HAVE_KMOD'
xmlns:xi="http://www.w3.org/2001/XInclude">
<?xml version='1.0'?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="networkctl" conditional='ENABLE_NETWORKD'
xmlns:xi="http://www.w3.org/2001/XInclude">
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
<!--
- SPDX-License-Identifier: LGPL-2.1+
+ SPDX-License-Identifier: LGPL-2.1-or-later
Copyright © 2014 Vinay Kulkarni
-->
<?xml version='1.0'?> <!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="nss-myhostname" conditional='ENABLE_NSS_MYHOSTNAME'>
<?xml version='1.0'?> <!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="nss-mymachines" conditional='ENABLE_NSS_MYMACHINES'>
<?xml version='1.0'?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="nss-resolve" conditional='ENABLE_NSS_RESOLVE'>
<?xml version='1.0'?> <!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="nss-systemd" conditional='ENABLE_NSS_SYSTEMD'>
<?xml version='1.0'?> <!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="oomctl" conditional='ENABLE_OOMD'
xmlns:xi="http://www.w3.org/2001/XInclude">
<?xml version='1.0'?> <!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="oomd.conf" conditional='ENABLE_OOMD'
xmlns:xi="http://www.w3.org/2001/XInclude">
<?xml version='1.0'?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd" >
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="org.freedesktop.LogControl1"
xmlns:xi="http://www.w3.org/2001/XInclude">
<?xml version='1.0'?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd" >
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="org.freedesktop.home1" conditional='ENABLE_HOMED'
xmlns:xi="http://www.w3.org/2001/XInclude">
<!ENTITY % entities SYSTEM "custom-entities.ent" >
%entities;
]>
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="org.freedesktop.hostname1" conditional='ENABLE_HOSTNAMED'
xmlns:xi="http://www.w3.org/2001/XInclude">
<interfacename>org.freedesktop.hostname1.set-hostname</interfacename>. For
<function>SetStaticHostname()</function> and <function>SetPrettyHostname()</function> it is
<interfacename>org.freedesktop.hostname1.set-static-hostname</interfacename>. For
- <function>SetIconName()</function> and <function>SetChassis()</function> it is
+ <function>SetIconName()</function>, <function>SetChassis()</function>, <function>SetDeployment()</function>
+ and <function>SetLocation()</function> it is
<interfacename>org.freedesktop.hostname1.set-machine-info</interfacename>.</para>
</refsect2>
</refsect1>
<?xml version='1.0'?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd" >
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="org.freedesktop.import1" conditional='ENABLE_IMPORTD'
xmlns:xi="http://www.w3.org/2001/XInclude">
<?xml version='1.0'?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd" >
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="org.freedesktop.locale1" conditional='ENABLE_LOCALED'
xmlns:xi="http://www.w3.org/2001/XInclude">
<?xml version='1.0'?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd" >
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="org.freedesktop.login1" conditional='ENABLE_LOGIND'
xmlns:xi="http://www.w3.org/2001/XInclude">
<?xml version='1.0'?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd" >
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="org.freedesktop.machine1" conditional='ENABLE_MACHINED'
xmlns:xi="http://www.w3.org/2001/XInclude">
<?xml version='1.0'?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd" >
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="org.freedesktop.oom1" conditional='ENABLE_OOMD'
xmlns:xi="http://www.w3.org/2001/XInclude">
<!ENTITY % entities SYSTEM "custom-entities.ent" >
%entities;
]>
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="org.freedesktop.resolve1" conditional='ENABLE_RESOLVE'
xmlns:xi="http://www.w3.org/2001/XInclude">
<?xml version='1.0'?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd" >
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="org.freedesktop.systemd1" xmlns:xi="http://www.w3.org/2001/XInclude">
<refentryinfo>
@org.freedesktop.DBus.Property.EmitsChangedSignal("const")
readonly b PassPacketInfo = ...;
@org.freedesktop.DBus.Property.EmitsChangedSignal("const")
+ readonly s Timestamping = '...';
+ @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
readonly b RemoveOnStop = ...;
@org.freedesktop.DBus.Property.EmitsChangedSignal("const")
readonly a(ss) Listen = [...];
<!--property PassPacketInfo is not documented!-->
+ <!--property Timestamping is not documented!-->
+
<!--property RemoveOnStop is not documented!-->
<!--property Listen is not documented!-->
<variablelist class="dbus-property" generated="True" extra-ref="PassPacketInfo"/>
+ <variablelist class="dbus-property" generated="True" extra-ref="Timestamping"/>
+
<variablelist class="dbus-property" generated="True" extra-ref="RemoveOnStop"/>
<variablelist class="dbus-property" generated="True" extra-ref="Listen"/>
@org.freedesktop.DBus.Property.EmitsChangedSignal("const")
readonly t RandomizedDelayUSec = ...;
@org.freedesktop.DBus.Property.EmitsChangedSignal("const")
+ readonly b FixedRandomDelay = ...;
+ @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
readonly b Persistent = ...;
@org.freedesktop.DBus.Property.EmitsChangedSignal("const")
readonly b WakeSystem = ...;
<!--property RandomizedDelayUSec is not documented!-->
+ <!--property FixedRandomDelay is not documented!-->
+
<!--property Persistent is not documented!-->
<!--property WakeSystem is not documented!-->
<variablelist class="dbus-property" generated="True" extra-ref="RandomizedDelayUSec"/>
+ <variablelist class="dbus-property" generated="True" extra-ref="FixedRandomDelay"/>
+
<variablelist class="dbus-property" generated="True" extra-ref="Persistent"/>
<variablelist class="dbus-property" generated="True" extra-ref="WakeSystem"/>
<?xml version='1.0'?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd" >
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="org.freedesktop.timedate1" conditional='ENABLE_TIMEDATED'
xmlns:xi="http://www.w3.org/2001/XInclude">
<?xml version='1.0'?> <!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="os-release">
<refentryinfo>
<?xml version='1.0'?> <!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="pam_systemd" conditional='HAVE_PAM'>
<?xml version='1.0'?> <!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="pam_systemd_home" conditional='ENABLE_PAM_HOME'>
<?xml version='1.0'?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="portablectl" conditional='ENABLE_PORTABLED'
xmlns:xi="http://www.w3.org/2001/XInclude">
<?xml version='1.0'?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="pstore.conf" conditional="ENABLE_PSTORE"
xmlns:xi="http://www.w3.org/2001/XInclude">
<?xml version='1.0'?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="resolvectl" conditional='ENABLE_RESOLVE'
xmlns:xi="http://www.w3.org/2001/XInclude">
<?xml version='1.0'?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="resolved.conf" conditional='ENABLE_RESOLVE'
xmlns:xi="http://www.w3.org/2001/XInclude">
''],
['sd_event_add_time',
'3',
- ['sd_event_source_get_time',
+ ['sd_event_add_time_relative',
+ 'sd_event_source_get_time',
'sd_event_source_get_time_accuracy',
'sd_event_source_get_time_clock',
'sd_event_source_set_time',
'sd_event_source_set_time_accuracy',
+ 'sd_event_source_set_time_relative',
'sd_event_time_handler_t'],
''],
['sd_event_exit', '3', ['sd_event_get_exit_code'], ''],
<?xml version='1.0'?> <!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="runlevel" conditional='HAVE_SYSV_COMPAT'
xmlns:xi="http://www.w3.org/2001/XInclude">
<?xml version='1.0'?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="sd-bus-errors"
xmlns:xi="http://www.w3.org/2001/XInclude">
<?xml version='1.0'?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="sd-bus" xmlns:xi="http://www.w3.org/2001/XInclude">
<?xml version='1.0'?> <!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="sd-daemon"
xmlns:xi="http://www.w3.org/2001/XInclude">
<?xml version='1.0'?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="sd-event" xmlns:xi="http://www.w3.org/2001/XInclude">
<?xml version='1.0'?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="sd-hwdb" xmlns:xi="http://www.w3.org/2001/XInclude">
<?xml version='1.0'?> <!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="sd-id128"
xmlns:xi="http://www.w3.org/2001/XInclude">
<?xml version='1.0'?> <!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="sd-journal"
xmlns:xi="http://www.w3.org/2001/XInclude">
<?xml version='1.0'?> <!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="sd-login" conditional='HAVE_PAM'
xmlns:xi="http://www.w3.org/2001/XInclude">
<?xml version='1.0'?> <!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="sd_booted"
xmlns:xi="http://www.w3.org/2001/XInclude">
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
<!--
- SPDX-License-Identifier: LGPL-2.1+
+ SPDX-License-Identifier: LGPL-2.1-or-later
Copyright © 2016 Julian Orth
-->
<?xml version='1.0'?> <!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="sd_bus_add_node_enumerator"
xmlns:xi="http://www.w3.org/2001/XInclude">
<?xml version='1.0'?> <!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="sd_bus_add_object"
xmlns:xi="http://www.w3.org/2001/XInclude">
<?xml version='1.0'?> <!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="sd_bus_add_object_manager"
xmlns:xi="http://www.w3.org/2001/XInclude">
<?xml version='1.0'?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="sd_bus_attach_event"
xmlns:xi="http://www.w3.org/2001/XInclude">
<?xml version='1.0'?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="sd_bus_call"
xmlns:xi="http://www.w3.org/2001/XInclude">
<?xml version='1.0'?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="sd_bus_call_method"
xmlns:xi="http://www.w3.org/2001/XInclude">
<?xml version='1.0'?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="sd_bus_can_send"
xmlns:xi="http://www.w3.org/2001/XInclude">
<?xml version='1.0'?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="sd_bus_close"
xmlns:xi="http://www.w3.org/2001/XInclude">
<?xml version='1.0'?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="sd_bus_creds_get_pid" xmlns:xi="http://www.w3.org/2001/XInclude">
<?xml version='1.0'?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="sd_bus_creds_new_from_pid" xmlns:xi="http://www.w3.org/2001/XInclude">
<?xml version='1.0'?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="sd_bus_default" xmlns:xi="http://www.w3.org/2001/XInclude">
<?xml version='1.0'?> <!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="sd_bus_emit_signal"
xmlns:xi="http://www.w3.org/2001/XInclude">
<?xml version='1.0'?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="sd_bus_enqueue_for_read"
xmlns:xi="http://www.w3.org/2001/XInclude">
<?xml version='1.0'?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="sd_bus_error" xmlns:xi="http://www.w3.org/2001/XInclude">
<?xml version='1.0'?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="sd_bus_error_add_map"
xmlns:xi="http://www.w3.org/2001/XInclude">
<?xml version='1.0'?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="sd_bus_get_current_handler" xmlns:xi="http://www.w3.org/2001/XInclude">
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
<!--
- SPDX-License-Identifier: LGPL-2.1+
+ SPDX-License-Identifier: LGPL-2.1-or-later
Copyright © 2016 Julian Orth
-->
<?xml version='1.0'?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="sd_bus_get_n_queued_read">
<?xml version='1.0'?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="sd_bus_get_name_creds" xmlns:xi="http://www.w3.org/2001/XInclude">
<?xml version='1.0'?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="sd_bus_get_name_machine_id" xmlns:xi="http://www.w3.org/2001/XInclude">
<?xml version='1.0'?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="sd_bus_interface_name_is_valid" xmlns:xi="http://www.w3.org/2001/XInclude">
<refentryinfo>
<?xml version='1.0'?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="sd_bus_is_open"
xmlns:xi="http://www.w3.org/2001/XInclude">
<?xml version='1.0'?> <!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="sd_bus_list_names"
xmlns:xi="http://www.w3.org/2001/XInclude">
<?xml version='1.0'?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="sd_bus_message_append"
xmlns:xi="http://www.w3.org/2001/XInclude">
<?xml version='1.0'?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="sd_bus_message_append_array"
xmlns:xi="http://www.w3.org/2001/XInclude">
<?xml version='1.0'?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="sd_bus_message_append_basic" xmlns:xi="http://www.w3.org/2001/XInclude">
<?xml version='1.0'?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="sd_bus_message_append_string_memfd"
xmlns:xi="http://www.w3.org/2001/XInclude">
<?xml version='1.0'?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="sd_bus_message_append_strv"
xmlns:xi="http://www.w3.org/2001/XInclude">
<?xml version='1.0'?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="sd_bus_message_at_end" xmlns:xi="http://www.w3.org/2001/XInclude">
<refentryinfo>
<?xml version='1.0'?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="sd_bus_message_copy" xmlns:xi="http://www.w3.org/2001/XInclude">
<?xml version='1.0'?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="sd_bus_message_dump"
xmlns:xi="http://www.w3.org/2001/XInclude">
<?xml version='1.0'?> <!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="sd_bus_message_get_cookie"
xmlns:xi="http://www.w3.org/2001/XInclude">
<?xml version='1.0'?> <!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="sd_bus_message_get_monotonic_usec"
xmlns:xi="http://www.w3.org/2001/XInclude">
<?xml version='1.0'?> <!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="sd_bus_message_get_signature" xmlns:xi="http://www.w3.org/2001/XInclude">
<refentryinfo>
<?xml version='1.0'?> <!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="sd_bus_message_get_type" xmlns:xi="http://www.w3.org/2001/XInclude">
<?xml version='1.0'?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="sd_bus_message_new" xmlns:xi="http://www.w3.org/2001/XInclude">
<refentryinfo>
<?xml version='1.0'?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="sd_bus_message_new_method_call"
xmlns:xi="http://www.w3.org/2001/XInclude">
<?xml version='1.0'?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="sd_bus_message_new_method_error"
xmlns:xi="http://www.w3.org/2001/XInclude">
<?xml version='1.0'?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="sd_bus_message_new_signal"
xmlns:xi="http://www.w3.org/2001/XInclude">
<?xml version='1.0'?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="sd_bus_message_open_container"
xmlns:xi="http://www.w3.org/2001/XInclude">
<?xml version='1.0'?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="sd_bus_message_read"
xmlns:xi="http://www.w3.org/2001/XInclude">
<?xml version='1.0'?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="sd_bus_message_read_array">
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
<!--
- SPDX-License-Identifier: LGPL-2.1+
+ SPDX-License-Identifier: LGPL-2.1-or-later
Copyright © 2016 Julian Orth
-->
<?xml version='1.0'?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="sd_bus_message_read_strv">
<?xml version='1.0'?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="sd_bus_message_rewind"
xmlns:xi="http://www.w3.org/2001/XInclude">
<?xml version='1.0'?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="sd_bus_message_seal"
xmlns:xi="http://www.w3.org/2001/XInclude">
<?xml version='1.0'?> <!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="sd_bus_message_sensitive" xmlns:xi="http://www.w3.org/2001/XInclude">
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="sd_bus_message_set_destination" xmlns:xi="http://www.w3.org/2001/XInclude">
<refentryinfo>
<?xml version='1.0'?> <!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="sd_bus_message_set_expect_reply" xmlns:xi="http://www.w3.org/2001/XInclude">
<?xml version='1.0'?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="sd_bus_message_skip" xmlns:xi="http://www.w3.org/2001/XInclude">
<refentryinfo>
<?xml version='1.0'?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="sd_bus_message_verify_type" xmlns:xi="http://www.w3.org/2001/XInclude">
<refentryinfo>
<?xml version='1.0'?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="sd_bus_negotiate_fds" xmlns:xi="http://www.w3.org/2001/XInclude">
<?xml version='1.0'?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="sd_bus_new" xmlns:xi="http://www.w3.org/2001/XInclude">
<?xml version='1.0'?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="sd_bus_path_encode" xmlns:xi="http://www.w3.org/2001/XInclude">
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
<!--
- SPDX-License-Identifier: LGPL-2.1+
+ SPDX-License-Identifier: LGPL-2.1-or-later
Copyright © 2016 Julian Orth
-->
<?xml version='1.0'?> <!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="sd_bus_query_sender_creds" xmlns:xi="http://www.w3.org/2001/XInclude">
<?xml version='1.0'?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="sd_bus_reply_method_error"
xmlns:xi="http://www.w3.org/2001/XInclude">
<?xml version='1.0'?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="sd_bus_reply_method_return"
xmlns:xi="http://www.w3.org/2001/XInclude">
<?xml version='1.0'?> <!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="sd_bus_request_name"
xmlns:xi="http://www.w3.org/2001/XInclude">
<?xml version='1.0'?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="sd_bus_send"
xmlns:xi="http://www.w3.org/2001/XInclude">
<?xml version='1.0'?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="sd_bus_set_address"
xmlns:xi="http://www.w3.org/2001/XInclude">
<?xml version='1.0'?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="sd_bus_set_close_on_exit"
xmlns:xi="http://www.w3.org/2001/XInclude">
<?xml version='1.0'?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="sd_bus_set_connected_signal"
xmlns:xi="http://www.w3.org/2001/XInclude">
<?xml version='1.0'?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="sd_bus_set_description" xmlns:xi="http://www.w3.org/2001/XInclude">
<?xml version='1.0'?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="sd_bus_set_exit_on_disconnect"
xmlns:xi="http://www.w3.org/2001/XInclude">
<?xml version='1.0'?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="sd_bus_set_method_call_timeout" xmlns:xi="http://www.w3.org/2001/XInclude">
<?xml version='1.0'?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="sd_bus_set_property"
xmlns:xi="http://www.w3.org/2001/XInclude">
<?xml version='1.0'?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="sd_bus_set_sender"
xmlns:xi="http://www.w3.org/2001/XInclude">
<?xml version='1.0'?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="sd_bus_set_server"
xmlns:xi="http://www.w3.org/2001/XInclude">
<?xml version='1.0'?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="sd_bus_set_watch_bind"
xmlns:xi="http://www.w3.org/2001/XInclude">
<?xml version='1.0'?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="sd_bus_slot_get_bus" xmlns:xi="http://www.w3.org/2001/XInclude">
<refentryinfo>
<?xml version='1.0'?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="sd_bus_slot_ref" xmlns:xi="http://www.w3.org/2001/XInclude">
<refentryinfo>
<?xml version='1.0'?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="sd_bus_slot_set_description" xmlns:xi="http://www.w3.org/2001/XInclude">
<refentryinfo>
<?xml version='1.0'?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="sd_bus_slot_set_destroy_callback"
xmlns:xi="http://www.w3.org/2001/XInclude">
<?xml version='1.0'?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="sd_bus_slot_set_floating" xmlns:xi="http://www.w3.org/2001/XInclude">
<?xml version='1.0'?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="sd_bus_slot_set_userdata" xmlns:xi="http://www.w3.org/2001/XInclude">
<?xml version='1.0'?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="sd_bus_start"
xmlns:xi="http://www.w3.org/2001/XInclude">
<?xml version='1.0'?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="sd_bus_track_add_name" xmlns:xi="http://www.w3.org/2001/XInclude">
<?xml version='1.0'?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="sd_bus_track_new" xmlns:xi="http://www.w3.org/2001/XInclude">
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
<!--
- SPDX-License-Identifier: LGPL-2.1+
+ SPDX-License-Identifier: LGPL-2.1-or-later
Copyright © 2016 Julian Orth
-->
<?xml version='1.0'?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="sd_event_add_child" xmlns:xi="http://www.w3.org/2001/XInclude">
<?xml version='1.0'?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="sd_event_add_defer" xmlns:xi="http://www.w3.org/2001/XInclude">
<?xml version='1.0'?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="sd_event_add_inotify" xmlns:xi="http://www.w3.org/2001/XInclude">
<?xml version='1.0'?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="sd_event_add_io" xmlns:xi="http://www.w3.org/2001/XInclude">
<?xml version='1.0'?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="sd_event_add_signal" xmlns:xi="http://www.w3.org/2001/XInclude">
<?xml version='1.0'?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="sd_event_add_time" xmlns:xi="http://www.w3.org/2001/XInclude">
<refnamediv>
<refname>sd_event_add_time</refname>
+ <refname>sd_event_add_time_relative</refname>
<refname>sd_event_source_get_time</refname>
<refname>sd_event_source_set_time</refname>
+ <refname>sd_event_source_set_time_relative</refname>
<refname>sd_event_source_get_time_accuracy</refname>
<refname>sd_event_source_set_time_accuracy</refname>
<refname>sd_event_source_get_time_clock</refname>
<?xml version='1.0'?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="sd_event_exit" xmlns:xi="http://www.w3.org/2001/XInclude">
<?xml version='1.0'?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="sd_event_get_fd" xmlns:xi="http://www.w3.org/2001/XInclude">
<?xml version='1.0'?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="sd_event_new" xmlns:xi="http://www.w3.org/2001/XInclude">
<?xml version='1.0'?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="sd_event_now" xmlns:xi="http://www.w3.org/2001/XInclude">
<?xml version='1.0'?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="sd_event_run" xmlns:xi="http://www.w3.org/2001/XInclude">
<?xml version='1.0'?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="sd_event_set_watchdog" xmlns:xi="http://www.w3.org/2001/XInclude">
<?xml version='1.0'?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="sd_event_source_get_event" xmlns:xi="http://www.w3.org/2001/XInclude">
<?xml version='1.0'?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="sd_event_source_get_pending" xmlns:xi="http://www.w3.org/2001/XInclude">
<?xml version='1.0'?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="sd_event_source_set_description" xmlns:xi="http://www.w3.org/2001/XInclude">
<?xml version='1.0'?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="sd_event_source_set_destroy_callback"
xmlns:xi="http://www.w3.org/2001/XInclude">
<?xml version='1.0'?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="sd_event_source_set_enabled" xmlns:xi="http://www.w3.org/2001/XInclude">
<?xml version='1.0'?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="sd_event_source_set_exit_on_failure" xmlns:xi="http://www.w3.org/2001/XInclude">
<?xml version='1.0'?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="sd_event_source_set_floating" xmlns:xi="http://www.w3.org/2001/XInclude">
<?xml version='1.0'?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="sd_event_source_set_prepare" xmlns:xi="http://www.w3.org/2001/XInclude">
<?xml version='1.0'?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="sd_event_source_set_priority" xmlns:xi="http://www.w3.org/2001/XInclude">
<?xml version='1.0'?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="sd_event_source_set_userdata" xmlns:xi="http://www.w3.org/2001/XInclude">
<?xml version='1.0'?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="sd_event_source_unref" xmlns:xi="http://www.w3.org/2001/XInclude">
<?xml version='1.0'?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="sd_event_wait" xmlns:xi="http://www.w3.org/2001/XInclude">
<?xml version='1.0'?> <!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="sd_get_seats" conditional='HAVE_PAM'
xmlns:xi="http://www.w3.org/2001/XInclude">
<?xml version='1.0'?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="sd_hwdb_get" xmlns:xi="http://www.w3.org/2001/XInclude">
<refentryinfo>
<?xml version='1.0'?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="sd_hwdb_new" xmlns:xi="http://www.w3.org/2001/XInclude">
<refentryinfo>
<?xml version='1.0'?> <!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="sd_id128_get_machine" xmlns:xi="http://www.w3.org/2001/XInclude">
<?xml version='1.0'?> <!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="sd_id128_randomize" xmlns:xi="http://www.w3.org/2001/XInclude">
<?xml version='1.0'?> <!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="sd_id128_to_string" xmlns:xi="http://www.w3.org/2001/XInclude">
<?xml version='1.0'?> <!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="sd_is_fifo"
xmlns:xi="http://www.w3.org/2001/XInclude">
<?xml version='1.0'?> <!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="sd_journal_add_match" xmlns:xi="http://www.w3.org/2001/XInclude">
<?xml version='1.0'?> <!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="sd_journal_enumerate_fields" xmlns:xi="http://www.w3.org/2001/XInclude">
<?xml version='1.0'?> <!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="sd_journal_get_catalog" xmlns:xi="http://www.w3.org/2001/XInclude">
<?xml version='1.0'?> <!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="sd_journal_get_cursor" xmlns:xi="http://www.w3.org/2001/XInclude">
<?xml version='1.0'?> <!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="sd_journal_get_cutoff_realtime_usec" xmlns:xi="http://www.w3.org/2001/XInclude">
<?xml version='1.0'?> <!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="sd_journal_get_data" xmlns:xi="http://www.w3.org/2001/XInclude">
<?xml version='1.0'?> <!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="sd_journal_get_fd" xmlns:xi="http://www.w3.org/2001/XInclude">
<?xml version='1.0'?> <!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="sd_journal_get_realtime_usec"
xmlns:xi="http://www.w3.org/2001/XInclude">
<?xml version='1.0'?> <!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="sd_journal_get_usage" xmlns:xi="http://www.w3.org/2001/XInclude">
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
<!--
- SPDX-License-Identifier: LGPL-2.1+
+ SPDX-License-Identifier: LGPL-2.1-or-later
-->
<refentry id="sd_journal_has_runtime_files" xmlns:xi="http://www.w3.org/2001/XInclude">
<?xml version='1.0'?> <!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="sd_journal_next" xmlns:xi="http://www.w3.org/2001/XInclude">
the read pointer back one entry.</para>
<para><function>sd_journal_next_skip()</function> and
- <function>sd_journal_previous_skip()</function> advance/set back
- the read pointer by multiple entries at once, as specified in the
- <varname>skip</varname> parameter.</para>
+ <function>sd_journal_previous_skip()</function> advance/set back the read pointer by multiple
+ entries at once, as specified in the <varname>skip</varname> parameter. The <varname>skip</varname>
+ parameter must be less than or equal to 2147483647 (2^31-1).</para>
<para>The journal is strictly ordered by reception time, and hence
advancing to the next entry guarantees that the entry then
<?xml version='1.0'?> <!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="sd_journal_open"
xmlns:xi="http://www.w3.org/2001/XInclude">
<?xml version='1.0'?> <!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="sd_journal_print" xmlns:xi="http://www.w3.org/2001/XInclude">
<?xml version='1.0'?> <!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="sd_journal_query_unique" xmlns:xi="http://www.w3.org/2001/XInclude">
<?xml version='1.0'?> <!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="sd_journal_seek_head" xmlns:xi="http://www.w3.org/2001/XInclude">
<?xml version='1.0'?> <!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="sd_journal_stream_fd" xmlns:xi="http://www.w3.org/2001/XInclude">
<?xml version='1.0'?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="sd_listen_fds"
xmlns:xi="http://www.w3.org/2001/XInclude">
<?xml version='1.0'?> <!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="sd_login_monitor_new" conditional='HAVE_PAM'
xmlns:xi="http://www.w3.org/2001/XInclude">
<?xml version='1.0'?> <!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="sd_machine_get_class" xmlns:xi="http://www.w3.org/2001/XInclude">
<?xml version='1.0'?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="sd_notify"
xmlns:xi="http://www.w3.org/2001/XInclude">
<?xml version='1.0'?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="sd_path_lookup" xmlns:xi="http://www.w3.org/2001/XInclude">
<?xml version='1.0'?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="sd_pid_get_owner_uid" conditional='HAVE_PAM'
xmlns:xi="http://www.w3.org/2001/XInclude">
<?xml version='1.0'?> <!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="sd_seat_get_active" conditional='HAVE_PAM'
xmlns:xi="http://www.w3.org/2001/XInclude">
<?xml version='1.0'?> <!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="sd_session_is_active" conditional='HAVE_PAM'
xmlns:xi="http://www.w3.org/2001/XInclude">
<?xml version='1.0'?> <!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="sd_uid_get_state" conditional='HAVE_PAM'
xmlns:xi="http://www.w3.org/2001/XInclude">
<?xml version='1.0'?> <!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="sd_watchdog_enabled"
xmlns:xi="http://www.w3.org/2001/XInclude">
<?xml version='1.0'?> <!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="shutdown"
xmlns:xi="http://www.w3.org/2001/XInclude">
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
<!--
- SPDX-License-Identifier: LGPL-2.1+
+ SPDX-License-Identifier: LGPL-2.1-or-later
Copyright © 2014 Josh Triplett
-->
<?xml version="1.0"?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<variablelist>
<varlistentry id='help'>
<?xml version="1.0"?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<tbody>
<row id='b'>
<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
<!--
- SPDX-License-Identifier: LGPL-2.1+
+ SPDX-License-Identifier: LGPL-2.1-or-later
-->
<refsect1>
<?xml version="1.0"?> <!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="sysctl.d"
xmlns:xi="http://www.w3.org/2001/XInclude">
<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
<!--
- SPDX-License-Identifier: LGPL-2.1+
+ SPDX-License-Identifier: LGPL-2.1-or-later
-->
<refsect1>
<!ENTITY % entities SYSTEM "custom-entities.ent" >
%entities;
]>
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="systemctl"
xmlns:xi="http://www.w3.org/2001/XInclude">
<refsect2>
<title>Environment Commands</title>
+ <para><command>systemd</command> supports an environment block that is passed to processes the manager
+ spawns. The names of the variables can contain ASCII letters, digits, and the underscore
+ character. Variable names cannot be empty or start with a digit. In variable values, most characters
+ are allowed, but non-printable characters are currently rejected. The total length of the environment
+ block is limited to <constant>_SC_ARG_MAX</constant> value defined by
+ <citerefentry project='man-pages'><refentrytitle>sysconf</refentrytitle><manvolnum>3</manvolnum></citerefentry>.
+ </para>
+
<variablelist>
<varlistentry>
<term><command>show-environment</command></term>
<term><command>set-environment <replaceable>VARIABLE=VALUE</replaceable>…</command></term>
<listitem>
- <para>Set one or more systemd manager environment variables,
- as specified on the command line.</para>
+ <para>Set one or more systemd manager environment variables, as specified on the command
+ line. This command will fail if variable names and values do not conform to the rules listed
+ above.</para>
</listitem>
</varlistentry>
<varlistentry>
</term>
<listitem>
- <para>Import all, one or more environment variables set on
- the client into the systemd manager environment block. If
- no arguments are passed, the entire environment block is
- imported. Otherwise, a list of one or more environment
- variable names should be passed, whose client-side values
- are then imported into the manager's environment
- block.</para>
+ <para>Import all, one or more environment variables set on the client into the systemd manager
+ environment block. If no arguments are passed, the entire environment block is imported.
+ Otherwise, a list of one or more environment variable names should be passed, whose client-side
+ values are then imported into the manager's environment block. This command will silently ignore
+ any assignments which do not conform to the rules listed above.</para>
</listitem>
</varlistentry>
</variablelist>
<?xml version='1.0'?> <!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="systemd-analyze" conditional='ENABLE_ANALYZE'
xmlns:xi="http://www.w3.org/2001/XInclude">
<!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="systemd-ask-password-console.service">
<refentryinfo>
<?xml version='1.0'?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="systemd-ask-password"
xmlns:xi="http://www.w3.org/2001/XInclude">
<!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="systemd-backlight@.service" conditional='ENABLE_BACKLIGHT'>
<refentryinfo>
<!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="systemd-binfmt.service" conditional='ENABLE_BINFMT'
xmlns:xi="http://www.w3.org/2001/XInclude">
<!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="systemd-bless-boot-generator" conditional='ENABLE_EFI'>
<refentryinfo>
<?xml version='1.0'?> <!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="systemd-bless-boot.service" conditional='ENABLE_EFI'
xmlns:xi="http://www.w3.org/2001/XInclude">
<?xml version='1.0'?> <!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="systemd-boot-check-no-failures.service"
xmlns:xi="http://www.w3.org/2001/XInclude">
<?xml version='1.0'?> <!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="systemd-boot-system-token.service" conditional='ENABLE_EFI'
xmlns:xi="http://www.w3.org/2001/XInclude">
<?xml version='1.0'?> <!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="systemd-boot" conditional='ENABLE_EFI'
xmlns:xi="http://www.w3.org/2001/XInclude">
<?xml version='1.0'?> <!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="systemd-cat"
xmlns:xi="http://www.w3.org/2001/XInclude">
<?xml version='1.0'?> <!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="systemd-cgls"
xmlns:xi="http://www.w3.org/2001/XInclude">
<?xml version='1.0'?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="systemd-cgtop"
xmlns:xi="http://www.w3.org/2001/XInclude">
<?xml version='1.0'?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="systemd-coredump" conditional='ENABLE_COREDUMP'
xmlns:xi="http://www.w3.org/2001/XInclude">
<!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="systemd-cryptsetup-generator" conditional='HAVE_LIBCRYPTSETUP'>
<refentryinfo>
<varname>luks.uuid=</varname>, the data device will be set to the one specified by
<varname>rd.luks.data=</varname> or <varname>luks.data=</varname> of the corresponding UUID.</para>
- <para>LUKS data device parameter is usefull for specifying encrypted data devices with detached headers specified in
+ <para>LUKS data device parameter is useful for specifying encrypted data devices with detached headers specified in
<varname>luks.options</varname> entry containing <literal>header=</literal> argument. For example,
<varname>rd.luks.uuid=</varname>b40f1abf-2a53-400a-889a-2eccc27eaa40
<varname>rd.luks.options=</varname>b40f1abf-2a53-400a-889a-2eccc27eaa40=header=/path/to/luks.hdr
<!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="systemd-cryptsetup@.service" conditional='HAVE_LIBCRYPTSETUP'>
<refentryinfo>
<!ENTITY % entities SYSTEM "custom-entities.ent" >
%entities;
]>
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="systemd-debug-generator">
<refentryinfo>
<?xml version='1.0'?> <!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="systemd-delta"
xmlns:xi="http://www.w3.org/2001/XInclude">
<?xml version='1.0'?> <!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="systemd-detect-virt"
xmlns:xi="http://www.w3.org/2001/XInclude">
<?xml version='1.0'?> <!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="systemd-dissect" conditional='HAVE_BLKID'
xmlns:xi="http://www.w3.org/2001/XInclude">
<!ENTITY % entities SYSTEM "custom-entities.ent" >
%entities;
]>
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="systemd-environment-d-generator" conditional='ENABLE_ENVIRONMENT_D'>
<refentryinfo>
<?xml version='1.0'?> <!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="systemd-escape"
xmlns:xi="http://www.w3.org/2001/XInclude">
<?xml version='1.0'?> <!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="systemd-firstboot" conditional='ENABLE_FIRSTBOOT'
xmlns:xi="http://www.w3.org/2001/XInclude">
<!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="systemd-fsck@.service">
<refentryinfo>
<!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="systemd-fstab-generator">
<refentryinfo>
<!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="systemd-getty-generator">
<refentryinfo>
<?xml version="1.0"?> <!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="systemd-gpt-auto-generator" conditional='HAVE_BLKID'>
<?xml version='1.0'?> <!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="systemd-halt.service">
<!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="systemd-hibernate-resume-generator" conditional='ENABLE_HIBERNATE'>
<refentryinfo>
<!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="systemd-hibernate-resume@.service" conditional='ENABLE_HIBERNATE'>
<refentryinfo>
<?xml version='1.0'?> <!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="systemd-homed.service" conditional='ENABLE_HOMED'>
<?xml version='1.0'?> <!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="systemd-hostnamed.service" conditional='ENABLE_HOSTNAMED'>
<?xml version='1.0'?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="systemd-hwdb" conditional="ENABLE_HWDB"
xmlns:xi="http://www.w3.org/2001/XInclude">
<?xml version='1.0'?> <!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="systemd-id128" xmlns:xi="http://www.w3.org/2001/XInclude">
<?xml version='1.0'?> <!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="systemd-importd.service" conditional='ENABLE_IMPORTD'>
<?xml version='1.0'?> <!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="systemd-inhibit"
xmlns:xi="http://www.w3.org/2001/XInclude">
<?xml version='1.0'?> <!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="systemd-initctl.service" conditional='HAVE_SYSV_COMPAT'>
<?xml version='1.0'?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="systemd-journal-gatewayd.service" conditional='HAVE_MICROHTTPD'
xmlns:xi="http://www.w3.org/2001/XInclude">
<!ENTITY % entities SYSTEM "custom-entities.ent" >
%entities;
]>
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="systemd-journal-remote" conditional='HAVE_MICROHTTPD'
xmlns:xi="http://www.w3.org/2001/XInclude">
<!ENTITY % entities SYSTEM "custom-entities.ent" >
%entities;
]>
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="systemd-journal-upload" conditional='HAVE_MICROHTTPD'
xmlns:xi="http://www.w3.org/2001/XInclude">
<?xml version='1.0'?> <!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="systemd-journald.service">
<?xml version='1.0'?> <!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="systemd-localed.service" conditional='ENABLE_LOCALED'>
<?xml version='1.0'?> <!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="systemd-logind.service" conditional='ENABLE_LOGIND'>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
<!--
- SPDX-License-Identifier: LGPL-2.1+
+ SPDX-License-Identifier: LGPL-2.1-or-later
Copyright © 2014 Didier Roche
-->
<?xml version='1.0'?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="systemd-machine-id-setup"
xmlns:xi="http://www.w3.org/2001/XInclude">
<?xml version='1.0'?> <!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="systemd-machined.service" conditional='ENABLE_MACHINED'>
<!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="systemd-makefs@.service">
<refentryinfo>
<!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="systemd-modules-load.service" conditional='HAVE_KMOD'>
<refentryinfo>
<?xml version='1.0'?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="systemd-mount"
xmlns:xi="http://www.w3.org/2001/XInclude">
<?xml version='1.0'?> <!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="systemd-network-generator.service" conditional='ENABLE_NETWORKD'>
<?xml version='1.0'?> <!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="systemd-networkd-wait-online.service" conditional='ENABLE_NETWORKD'
xmlns:xi="http://www.w3.org/2001/XInclude">
<?xml version='1.0'?> <!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="systemd-networkd.service" conditional='ENABLE_NETWORKD'>
<?xml version='1.0'?> <!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="systemd-notify"
xmlns:xi="http://www.w3.org/2001/XInclude">
<?xml version='1.0'?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd" [
-<!ENTITY fedora_latest_version "32">
-<!ENTITY fedora_cloud_release "1.6">
+<!ENTITY % entities SYSTEM "custom-entities.ent" >
+%entities;
]>
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="systemd-nspawn"
xmlns:xi="http://www.w3.org/2001/XInclude">
<?xml version='1.0'?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="systemd-oomd.service" conditional='ENABLE_OOMD'>
<?xml version='1.0'?> <!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="systemd-path"
xmlns:xi="http://www.w3.org/2001/XInclude">
<?xml version='1.0'?> <!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="systemd-portabled.service" conditional='ENABLE_PORTABLED'>
<?xml version='1.0'?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="systemd-pstore" conditional='ENABLE_PSTORE'
xmlns:xi="http://www.w3.org/2001/XInclude">
<!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="systemd-quotacheck.service" conditional='ENABLE_QUOTACHECK'>
<refentryinfo>
<!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="systemd-random-seed.service" conditional='ENABLE_RANDOMSEED'>
<refentryinfo>
<!ENTITY % entities SYSTEM "custom-entities.ent" >
%entities;
]>
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="systemd-rc-local-generator" conditional='HAVE_SYSV_COMPAT'>
<refentryinfo>
<!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="systemd-remount-fs.service">
<refentryinfo>
<?xml version='1.0'?> <!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="systemd-repart" conditional='ENABLE_REPART'
xmlns:xi="http://www.w3.org/2001/XInclude">
<?xml version='1.0'?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="systemd-resolved.service" conditional='ENABLE_RESOLVE'>
<para>In case of single-label names, when search domains are defined, the same logic applies, except
that the name is first suffixed by each of the search domains in turn. Note that this search logic
- doesn't apply to any names with at least one dot. Also see the discussion about compatiblity with
+ doesn't apply to any names with at least one dot. Also see the discussion about compatibility with
the traditional glibc resolver below.</para></listitem>
<listitem><para>If a query does not match any configured routing domain (either per-link or global), it
<filename>/etc/hosts</filename>.</para></listitem>
<listitem><para>Single-label names are not resolved for A and AAAA records using unicast DNS (unless
- overriden with <varname>ResolveUnicastSingleLabel=</varname>, see
+ overridden with <varname>ResolveUnicastSingleLabel=</varname>, see
<citerefentry><refentrytitle>resolved.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry>).
This is similar to the <option>no-tld-query</option> option being set in
<citerefentry><refentrytitle>resolv.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry>.
<!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="systemd-rfkill.service" conditional='ENABLE_RFKILL'>
<refentryinfo>
<!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="systemd-run-generator">
<refentryinfo>
<?xml version='1.0'?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="systemd-run"
xmlns:xi="http://www.w3.org/2001/XInclude">
<?xml version='1.0'?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="systemd-sleep.conf"
xmlns:xi="http://www.w3.org/2001/XInclude">
<?xml version='1.0'?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="systemd-socket-activate"
xmlns:xi="http://www.w3.org/2001/XInclude">
<!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="systemd-socket-proxyd"
xmlns:xi="http://www.w3.org/2001/XInclude">
<?xml version='1.0'?> <!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="systemd-suspend.service"
xmlns:xi="http://www.w3.org/2001/XInclude">
<!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="systemd-sysctl.service"
xmlns:xi="http://www.w3.org/2001/XInclude">
<!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="systemd-system-update-generator">
<refentryinfo>
<!ENTITY % entities SYSTEM "custom-entities.ent" >
%entities;
]>
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="systemd-system.conf"
xmlns:xi="http://www.w3.org/2001/XInclude">
<?xml version='1.0'?> <!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="systemd-sysusers"
xmlns:xi="http://www.w3.org/2001/XInclude">
<!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="systemd-sysv-generator" conditional="HAVE_SYSV_COMPAT">
<refentryinfo>
<?xml version='1.0'?> <!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="systemd-time-wait-sync.service" conditional='ENABLE_TIMESYNCD'>
<?xml version='1.0'?> <!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="systemd-timedated.service" conditional='ENABLE_TIMEDATED'>
<?xml version='1.0'?> <!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="systemd-timesyncd.service" conditional='ENABLE_TIMESYNCD'>
<?xml version='1.0'?> <!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="systemd-tmpfiles"
xmlns:xi="http://www.w3.org/2001/XInclude">
<?xml version='1.0'?> <!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="systemd-tty-ask-password-agent"
xmlns:xi="http://www.w3.org/2001/XInclude">
<?xml version='1.0'?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="systemd-udev-settle.service"
xmlns:xi="http://www.w3.org/2001/XInclude">
<?xml version='1.0'?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="systemd-udevd.service"
xmlns:xi="http://www.w3.org/2001/XInclude">
<!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="systemd-update-done.service">
<refentryinfo>
<!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="systemd-update-utmp.service" conditional="ENABLE_UTMP">
<refentryinfo>
<!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="systemd-user-sessions.service" conditional='HAVE_PAM'>
<refentryinfo>
<?xml version='1.0'?> <!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="systemd-userdbd.service" conditional='ENABLE_USERDB'>
<!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="systemd-vconsole-setup.service" conditional='ENABLE_VCONSOLE'>
<refentryinfo>
<!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="systemd-veritysetup-generator" conditional='HAVE_LIBCRYPTSETUP'>
<refentryinfo>
<!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="systemd-veritysetup@.service" conditional='HAVE_LIBCRYPTSETUP'>
<refentryinfo>
<!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="systemd-volatile-root.service">
<refentryinfo>
<!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="systemd-xdg-autostart-generator" conditional="ENABLE_XDG_AUTOSTART">
<refentryinfo>
</refnamediv>
<refsynopsisdiv>
- <para><filename>/usr/lib/systemd/system-generators/systemd-xdg-autostart-generator</filename></para>
+ <para><filename>/usr/lib/systemd/user-generators/systemd-xdg-autostart-generator</filename></para>
</refsynopsisdiv>
<refsect1>
<?xml version='1.0'?> <!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="systemd.automount">
<refentryinfo>
<?xml version='1.0'?> <!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="systemd.device">
<refentryinfo>
<?xml version='1.0'?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="systemd.dnssd"
xmlns:xi="http://www.w3.org/2001/XInclude"
<!ENTITY % entities SYSTEM "custom-entities.ent" >
%entities;
]>
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="systemd.environment-generator" conditional='ENABLE_ENVIRONMENT_D'
xmlns:xi="http://www.w3.org/2001/XInclude">
<?xml version='1.0'?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="systemd.exec" xmlns:xi="http://www.w3.org/2001/XInclude">
<refentryinfo>
<citerefentry><refentrytitle>umask</refentrytitle><manvolnum>2</manvolnum></citerefentry> for
details. Defaults to 0022 for system units. For user units the default value is inherited from the
per-user service manager (whose default is in turn inherited from the system service manager, and
- thus typically also is 0022 — unless overriden by a PAM module). In order to change the per-user mask
+ thus typically also is 0022 — unless overridden by a PAM module). In order to change the per-user mask
for all user services, consider setting the <varname>UMask=</varname> setting of the user's
<filename>user@.service</filename> system service instance. The per-user umask may also be set via
the <varname>umask</varname> field of a user's <ulink url="https://systemd.io/USER_RECORD">JSON User
<varlistentry>
<term><varname>Environment=</varname></term>
- <listitem><para>Sets environment variables for executed processes. Takes a space-separated list of variable
- assignments. This option may be specified more than once, in which case all listed variables will be set. If
- the same variable is set twice, the later setting will override the earlier setting. If the empty string is
- assigned to this option, the list of environment variables is reset, all prior assignments have no
- effect. Variable expansion is not performed inside the strings, however, specifier expansion is possible. The $
- character has no special meaning. If you need to assign a value containing spaces or the equals sign to a
- variable, use double quotes (") for the assignment.</para>
+ <listitem><para>Sets environment variables for executed processes. Takes a space-separated list of
+ variable assignments. This option may be specified more than once, in which case all listed variables
+ will be set. If the same variable is set twice, the later setting will override the earlier
+ setting. If the empty string is assigned to this option, the list of environment variables is reset,
+ all prior assignments have no effect. Variable expansion is not performed inside the strings,
+ however, specifier expansion is possible. The <literal>$</literal> character has no special
+ meaning. If you need to assign a value containing spaces or the equals sign to a variable, use double
+ quotes (") for the assignment.</para>
+
+ <para>The names of the variables can contain ASCII letters, digits, and the underscore
+ character. Variable names cannot be empty or start with a digit. In variable values, most characters
+ are allowed, but non-printable characters are currently rejected.</para>
<para>Example:
<programlisting>Environment="VAR1=word1 word2" VAR2=word3 "VAR3=$word 5 6"</programlisting>
credential plus a file system path. The ID must be a short ASCII string suitable as filename in the
filesystem, and may be chosen freely by the user. If the specified path is absolute it is opened as
regular file and the credential data is read from it. If the absolute path refers to an
- <constant>AF_UNIX</constant> stream socket in the file system a connection is made to it and the
- credential data read from the connection, providing an easy IPC integration point for dynamically
- providing credentials from other services. If the specified path is not absolute and itself qualifies
- as valid credential identifier it is understood to refer to a credential that the service manager
- itself received via the <varname>$CREDENTIALS_DIRECTORY</varname> environment variable, which may be
- used to propagate credentials from an invoking environment (e.g. a container manager that invoked the
- service manager) into a service. The contents of the file/socket may be arbitrary binary or textual
- data, including newline characters and NUL bytes. This option may be used multiple times, each time
- defining an additional credential to pass to the unit.</para>
+ <constant>AF_UNIX</constant> stream socket in the file system a connection is made to it (only once
+ at unit start-up) and the credential data read from the connection, providing an easy IPC integration
+ point for dynamically providing credentials from other services. If the specified path is not
+ absolute and itself qualifies as valid credential identifier it is understood to refer to a
+ credential that the service manager itself received via the <varname>$CREDENTIALS_DIRECTORY</varname>
+ environment variable, which may be used to propagate credentials from an invoking environment (e.g. a
+ container manager that invoked the service manager) into a service. The contents of the file/socket
+ may be arbitrary binary or textual data, including newline characters and <constant>NUL</constant>
+ bytes. This option may be used multiple times, each time defining an additional credential to pass to
+ the unit.</para>
<para>The credential files/IPC sockets must be accessible to the service manager, but don't have to
be directly accessible to the unit's processes: the credential data is read and copied into separate,
e.g. <literal>ExecStart=cat ${CREDENTIALS_DIRECTORY}/mycred</literal>.</para>
<para>Currently, an accumulated credential size limit of 1M bytes per unit is
- enforced.</para></listitem>
+ enforced.</para>
+
+ <para>If referencing an <constant>AF_UNIX</constant> stream socket to connect to, the connection will
+ originate from an abstract namespace socket, that includes information about the unit and the
+ credential ID in its socket name. Use <citerefentry
+ project='man-pages'><refentrytitle>getpeername</refentrytitle><manvolnum>2</manvolnum></citerefentry>
+ to query this information. The returned socket name is formatted as <constant>NUL</constant>
+ <replaceable>RANDOM</replaceable> <literal>/unit/</literal> <replaceable>UNIT</replaceable>
+ <literal>/</literal> <replaceable>ID</replaceable>, i.e. a <constant>NUL</constant> byte (as required
+ for abstract namespace socket names), followed by a random string (consisting of alphadecimal
+ characters), followed by the literal string <literal>/unit/</literal>, followed by the requesting
+ unit name, followed by the literal character <literal>/</literal>, followed by the textual credential
+ ID requested. Example: <literal>\0adf9d86b6eda275e/unit/foobar.service/credx</literal> in case the
+ credential <literal>credx</literal> is requested for a unit <literal>foobar.service</literal>. This
+ functionality is useful for using a single listening socket to serve credentials to multiple
+ consumers.</para></listitem>
</varlistentry>
<varlistentry>
<!ENTITY % entities SYSTEM "custom-entities.ent" >
%entities;
]>
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="systemd.generator">
<refentryinfo>
<?xml version='1.0'?> <!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="systemd.journal-fields">
<?xml version='1.0'?> <!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="systemd.kill">
<refentryinfo>
<?xml version='1.0'?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="systemd.link">
<refentryinfo>
<?xml version='1.0'?> <!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="systemd.mount">
<refentryinfo>
<?xml version='1.0'?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="systemd.net-naming-scheme">
<refentryinfo>
<varlistentry>
<term><constant>v247</constant></term>
- <listitem><para>If the PCI slot is assocated with PCI bridge and that has multiple child network
+ <listitem><para>If the PCI slot is associated with PCI bridge and that has multiple child network
controllers then all of them might derive the same value of <varname>ID_NET_NAME_SLOT</varname>
property. That could cause naming conflict if the property is selected as a device name. Now, we detect the
situation, slot - bridge relation, and we don't produce the <varname>ID_NET_NAME_SLOT</varname> property to
<?xml version='1.0'?> <!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="systemd.netdev" conditional='ENABLE_NETWORKD'>
<?xml version='1.0'?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="systemd.network" conditional='ENABLE_NETWORKD'
xmlns:xi="http://www.w3.org/2001/XInclude">
<varlistentry>
<term><varname>RouterLifetimeSec=</varname></term>
- <listitem><para>Takes a timespan. Configures the IPv6 router lifetime in seconds. If set,
- this host also announces itself in Router Advertisements as an IPv6
- router for the network link. When unset, the host is not acting as a router.</para>
+ <listitem><para>Takes a timespan. Configures the IPv6 router lifetime in seconds. When set to
+ 0, the host is not acting as a router. Defaults to 30 minutes.</para>
</listitem>
</varlistentry>
<!ENTITY % entities SYSTEM "custom-entities.ent" >
%entities;
]>
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="systemd.nspawn">
<?xml version='1.0'?> <!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="systemd.offline-updates">
<refentryinfo>
<?xml version='1.0'?> <!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="systemd.path">
<refentryinfo>
<!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="systemd.preset">
<refentryinfo>
<?xml version='1.0'?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="systemd.resource-control" xmlns:xi="http://www.w3.org/2001/XInclude">
<refentryinfo>
<?xml version='1.0'?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="systemd.scope">
<refentryinfo>
<?xml version='1.0'?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="systemd.service">
<refentryinfo>
<?xml version='1.0'?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="systemd.slice">
<refentryinfo>
<?xml version='1.0'?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="systemd.socket">
<refentryinfo>
<varlistentry>
<term><varname>ListenFIFO=</varname></term>
- <listitem><para>Specifies a file system FIFO to listen on.
- This expects an absolute file system path as argument.
- Behavior otherwise is very similar to the
- <varname>ListenDatagram=</varname> directive
- above.</para></listitem>
+ <listitem><para>Specifies a file system FIFO (see <citerefentry
+ project='man-pages'><refentrytitle>fifo</refentrytitle><manvolnum>7</manvolnum></citerefentry> for
+ details) to listen on. This expects an absolute file system path as argument. Behavior otherwise is
+ very similar to the <varname>ListenDatagram=</varname> directive above.</para></listitem>
</varlistentry>
<varlistentry>
<varlistentry>
<term><varname>ListenMessageQueue=</varname></term>
- <listitem><para>Specifies a POSIX message queue name to listen
- on. This expects a valid message queue name (i.e. beginning
- with /). Behavior otherwise is very similar to the
- <varname>ListenFIFO=</varname> directive above. On Linux
- message queue descriptors are actually file descriptors and
- can be inherited between processes.</para></listitem>
+ <listitem><para>Specifies a POSIX message queue name to listen on (see <citerefentry
+ project='man-pages'><refentrytitle>mq_overview</refentrytitle><manvolnum>7</manvolnum></citerefentry>
+ for details). This expects a valid message queue name (i.e. beginning with
+ <literal>/</literal>). Behavior otherwise is very similar to the <varname>ListenFIFO=</varname>
+ directive above. On Linux message queue descriptors are actually file descriptors and can be
+ inherited between processes.</para></listitem>
</varlistentry>
<varlistentry>
<varlistentry>
<term><varname>PassPacketInfo=</varname></term>
<listitem><para>Takes a boolean value. This controls the <constant>IP_PKTINFO</constant>,
- <constant>IPV6_RECVPKTINFO</constant> and <constant>NETLINK_PKTINFO</constant> socket options, which
- enable reception of additional per-packet metadata as ancillary message, on
- <constant>AF_INET</constant>, <constant>AF_INET6</constant> and <constant>AF_UNIX</constant> sockets.
- Defaults to <option>false</option>.</para></listitem>
+ <constant>IPV6_RECVPKTINFO</constant>, <constant>NETLINK_PKTINFO</constant> or
+ <constant>PACKET_AUXDATA</constant> socket options, which enable reception of additional per-packet
+ metadata as ancillary message, on <constant>AF_INET</constant>, <constant>AF_INET6</constant>,
+ <constant>AF_UNIX</constant> and <constant>AF_PACKET</constant> sockets. Defaults to
+ <option>false</option>.</para></listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><varname>Timestamping=</varname></term>
+ <listitem><para>Takes one of <literal>off</literal>, <literal>us</literal> (alias:
+ <literal>usec</literal>, <literal>µs</literal>) or <literal>ns</literal> (alias:
+ <literal>nsec</literal>). This controls the <constant>SO_TIMESTAMP</constant> or
+ <constant>SO_TIMESTAMPNS</constant> socket options, and enables whether ingress network traffic shall
+ carry timestamping metadata. Defaults to <option>off</option>.</para></listitem>
</varlistentry>
<varlistentry>
<?xml version='1.0'?> <!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="systemd.special">
<filename>hybrid-sleep.target</filename>,
<filename>suspend-then-hibernate.target</filename>,
<filename>initrd.target</filename>,
- <filename>initrd-cryptsetup.target</filename>,
<filename>initrd-fs.target</filename>,
<filename>initrd-root-device.target</filename>,
<filename>initrd-root-fs.target</filename>,
<varlistentry>
<term><filename>cryptsetup.target</filename></term>
<listitem>
- <para>A target that pulls in setup services for local encrypted block devices.
- See <filename>remote-cryptsetup.target</filename> below for the equivalent target for remote
- volumes, and <filename>initrd-cryptsetup.target</filename> below for the equivalent target in the
- initrd.</para>
+ <para>A target that pulls in setup services for all
+ encrypted block devices.</para>
</listitem>
</varlistentry>
<varlistentry>
<varlistentry>
<term><filename>initrd.target</filename></term>
<listitem>
- <para>This is the default target in the initrd, similar to <filename>default.target</filename>
+ <para>This is the default target in the initramfs, similar to <filename>default.target</filename>
in the main system. It is used to mount the real root and transition to it. See
<citerefentry><refentrytitle>bootup</refentrytitle><manvolnum>7</manvolnum></citerefentry> for
more discussion.</para>
</listitem>
</varlistentry>
- <varlistentry>
- <term><filename>initrd-cryptsetup.target</filename></term>
- <listitem>
- <para>A target that pulls in setup services for all encrypted block devices. See
- <filename>cryptsetup.target</filename> and <filename>remote-cryptsetup.target</filename> for the
- equivalent targets in the real root.</para>
- </listitem>
- </varlistentry>
<varlistentry>
<term><filename>initrd-fs.target</filename></term>
<listitem>
<para>Similar to <filename>cryptsetup.target</filename>, but for encrypted
devices which are accessed over the network. It is used for
<citerefentry><refentrytitle>crypttab</refentrytitle><manvolnum>8</manvolnum></citerefentry>
- entries marked with <option>_netdev</option>.
- See <filename>cryptsetup.target</filename> for the equivalent target for local volumes, and
- <filename>initrd-cryptsetup.target</filename> for the equivalent target in the initrd.</para>
+ entries marked with <option>_netdev</option>.</para>
</listitem>
</varlistentry>
<varlistentry>
<?xml version='1.0'?> <!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="systemd.swap"
xmlns:xi="http://www.w3.org/2001/XInclude">
<!ENTITY % entities SYSTEM "custom-entities.ent" >
%entities;
]>
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="systemd.syntax">
<?xml version='1.0'?> <!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="systemd.target">
<refentryinfo>
<?xml version='1.0'?> <!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="systemd.time">
<?xml version='1.0'?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="systemd.timer">
<refentryinfo>
<varlistentry>
<term><varname>RandomizedDelaySec=</varname></term>
- <listitem><para>Delay the timer by a randomly selected, evenly
- distributed amount of time between 0 and the specified time
- value. Defaults to 0, indicating that no randomized delay
- shall be applied. Each timer unit will determine this delay
- randomly before each iteration, and the delay will simply be
- added on top of the next determined elapsing time. This is
- useful to stretch dispatching of similarly configured timer
- events over a certain amount time, to avoid that they all fire
- at the same time, possibly resulting in resource
- congestion. Note the relation to
- <varname>AccuracySec=</varname> above: the latter allows the
- service manager to coalesce timer events within a specified
- time range in order to minimize wakeups, the former does the
- opposite: it stretches timer events over a time range, to make
- it unlikely that they fire simultaneously. If
- <varname>RandomizedDelaySec=</varname> and
- <varname>AccuracySec=</varname> are used in conjunction, first
- the randomized delay is added, and then the result is
- possibly further shifted to coalesce it with other timer
- events happening on the system. As mentioned above
- <varname>AccuracySec=</varname> defaults to 1min and
- <varname>RandomizedDelaySec=</varname> to 0, thus encouraging
- coalescing of timer events. In order to optimally stretch
- timer events over a certain range of time, make sure to set
- <varname>RandomizedDelaySec=</varname> to a higher value, and
- <varname>AccuracySec=1us</varname>.</para></listitem>
+ <listitem><para>Delay the timer by a randomly selected, evenly distributed amount of time between 0
+ and the specified time value. Defaults to 0, indicating that no randomized delay shall be applied.
+ Each timer unit will determine this delay randomly before each iteration, and the delay will simply
+ be added on top of the next determined elapsing time, unless modified with
+ <varname>FixedRandomDelay=</varname>, see below.</para>
+
+ <para>This setting is useful to stretch dispatching of similarly configured timer events over a
+ certain time interval, to prevent them from firing all at the same time, possibly resulting in
+ resource congestion.</para>
+
+ <para>Note the relation to <varname>AccuracySec=</varname> above: the latter allows the service
+ manager to coalesce timer events within a specified time range in order to minimize wakeups, while
+ this setting does the opposite: it stretches timer events over an interval, to make it unlikely that
+ they fire simultaneously. If <varname>RandomizedDelaySec=</varname> and
+ <varname>AccuracySec=</varname> are used in conjunction, first the randomized delay is added, and
+ then the result is possibly further shifted to coalesce it with other timer events happening on the
+ system. As mentioned above <varname>AccuracySec=</varname> defaults to 1 minute and
+ <varname>RandomizedDelaySec=</varname> to 0, thus encouraging coalescing of timer events. In order to
+ optimally stretch timer events over a certain range of time, set
+ <varname>AccuracySec=1us</varname> and <varname>RandomizedDelaySec=</varname> to some higher value.
+ </para></listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><varname>FixedRandomDelay=</varname></term>
+
+ <listitem><para>Takes a boolean argument. When enabled, the randomized offset specified by
+ <varname>RandomizedDelaySec=</varname> is reused for all firings of the same timer. For a given timer
+ unit, the offset depends on the machine ID, user identifier and timer name, which means that it is
+ stable between restarts of the manager. This effectively creates a fixed offset for an individual
+ timer, reducing the jitter in firings of this timer, while still avoiding firing at the same time as
+ other similarly configured timers.</para>
+
+ <para>This setting has no effect if <varname>RandomizedDelaySec=</varname> is set to 0. Defaults to
+ <option>false</option>.</para></listitem>
</varlistentry>
<varlistentry>
when the system clock (<constant>CLOCK_REALTIME</constant>) jumps relative to the monotonic clock
(<constant>CLOCK_MONOTONIC</constant>), or when the local system timezone is modified. These options
can be used alone or in combination with other timer expressions (see above) within the same timer
- unit. These options default to false.</para></listitem>
+ unit. These options default to <option>false</option>.</para></listitem>
</varlistentry>
<varlistentry>
is nonetheless subject to the delay imposed by <varname>RandomizedDelaySec=</varname>.
This is useful to catch up on missed runs of the service when the system was powered down. Note that
this setting only has an effect on timers configured with <varname>OnCalendar=</varname>. Defaults to
- <varname>false</varname>.</para>
+ <option>false</option>.</para>
<para>Use <command>systemctl clean --what=state …</command> on the timer unit to remove the timestamp
file maintained by this option from disk. In particular, use this command before uninstalling a timer
from suspend, should it be suspended and if the system supports this. Note that this option will only
make sure the system resumes on the appropriate times, it will not take care of suspending it again
after any work that is to be done is finished. Defaults to
- <varname>false</varname>.</para>
+ <option>false</option>.</para>
<para>Note that this functionality requires privileges and is thus generally only available in the
system service manager.</para>
<varname>RemainAfterElapse=</varname> is on, starting the timer a second time has no effect. However,
if <varname>RemainAfterElapse=</varname> is off and the timer unit was already unloaded, it can be
started again, and thus the service can be triggered multiple times. Defaults to
- <varname>yes</varname>.</para></listitem>
+ <option>true</option>.</para></listitem>
</varlistentry>
</variablelist>
</refsect1>
<!ENTITY % entities SYSTEM "custom-entities.ent" >
%entities;
]>
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="systemd.unit"
xmlns:xi="http://www.w3.org/2001/XInclude">
<?xml version='1.0'?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="systemd"
xmlns:xi="http://www.w3.org/2001/XInclude">
<!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="sysusers.d" conditional='ENABLE_SYSUSERS'
xmlns:xi="http://www.w3.org/2001/XInclude">
<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
<!--
- SPDX-License-Identifier: LGPL-2.1+
+ SPDX-License-Identifier: LGPL-2.1-or-later
-->
<refsect1>
<?xml version='1.0'?> <!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="telinit" conditional='HAVE_SYSV_COMPAT'
xmlns:xi="http://www.w3.org/2001/XInclude">
<?xml version="1.0"?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refsect1>
<?xml version='1.0'?> <!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="timedatectl" conditional='ENABLE_TIMEDATECTL'
xmlns:xi="http://www.w3.org/2001/XInclude">
<?xml version='1.0'?> <!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="timesyncd.conf" conditional='ENABLE_TIMESYNCD'
xmlns:xi="http://www.w3.org/2001/XInclude">
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
<!--
- SPDX-License-Identifier: LGPL-2.1+
+ SPDX-License-Identifier: LGPL-2.1-or-later
Copyright © 2010 Brandon Philips
-->
<?xml version='1.0'?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="udev.conf"
xmlns:xi="http://www.w3.org/2001/XInclude">
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
<!--
- SPDX-License-Identifier: LGPL-2.1+
+ SPDX-License-Identifier: LGPL-2.1-or-later
Copyright © 2014 Jason St. John
-->
<refpurpose>Dynamic device management</refpurpose>
</refnamediv>
- <refsect1><title>Description</title>
+ <refsect1>
+ <title>Description</title>
<para>udev supplies the system software with device events, manages permissions
of device nodes and may create additional symlinks in the <filename>/dev/</filename>
directory, or renames network interfaces. The kernel usually just assigns unpredictable
sources is provided by the library libudev.</para>
</refsect1>
- <refsect1><title>Rules Files</title>
+ <refsect1>
+ <title>Rules Files</title>
<para>The udev rules are read from the files located in the system rules directories
<filename>/usr/lib/udev/rules.d</filename> and <filename>/usr/local/lib/udev/rules.d</filename>, the
volatile runtime directory <filename>/run/udev/rules.d</filename> and the local administration
pointing to the device node, or run a specified program as part of
the event handling.</para>
- <para>A rule consists of a comma-separated list of one or more key-value pairs.
- Each key has a distinct operation, depending on the used operator. Valid
- operators are:</para>
- <variablelist>
- <varlistentry>
- <term><literal>==</literal></term>
- <listitem>
- <para>Compare for equality.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><literal>!=</literal></term>
- <listitem>
- <para>Compare for inequality.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><literal>=</literal></term>
- <listitem>
- <para>Assign a value to a key. Keys that represent a list are reset
- and only this single value is assigned.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><literal>+=</literal></term>
- <listitem>
- <para>Add the value to a key that holds a list of entries.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><literal>-=</literal></term>
- <listitem>
- <para>Remove the value from a key that holds a list of entries.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><literal>:=</literal></term>
- <listitem>
- <para>Assign a value to a key finally; disallow any later changes.</para>
- </listitem>
- </varlistentry>
- </variablelist>
-
- <para>The following key names can be used to match against device properties.
- Some of the keys also match against properties of the parent devices in sysfs,
- not only the device that has generated the event. If multiple keys that match
- a parent device are specified in a single rule, all these keys must match at
- one and the same parent device.</para>
- <variablelist class='udev-directives'>
- <varlistentry>
- <term><varname>ACTION</varname></term>
- <listitem>
- <para>Match the name of the event action.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><varname>DEVPATH</varname></term>
- <listitem>
- <para>Match the devpath of the event device.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><varname>KERNEL</varname></term>
- <listitem>
- <para>Match the name of the event device.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><varname>NAME</varname></term>
- <listitem>
- <para>Match the name of a network interface. It can be used once the
- NAME key has been set in one of the preceding rules.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><varname>SYMLINK</varname></term>
- <listitem>
- <para>Match the name of a symlink targeting the node. It can
- be used once a SYMLINK key has been set in one of the preceding
- rules. There may be multiple symlinks; only one needs to match.
- </para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><varname>SUBSYSTEM</varname></term>
- <listitem>
- <para>Match the subsystem of the event device.</para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term><varname>DRIVER</varname></term>
- <listitem>
- <para>Match the driver name of the event device. Only set this key for devices
- which are bound to a driver at the time the event is generated.</para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term><varname>ATTR{<replaceable>filename</replaceable>}</varname></term>
- <listitem>
- <para>Match sysfs attribute values of the event device. Trailing
- whitespace in the attribute values is ignored unless the specified match
- value itself contains trailing whitespace.
- </para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term><varname>SYSCTL{<replaceable>kernel parameter</replaceable>}</varname></term>
- <listitem>
- <para>Match a kernel parameter value.
- </para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><varname>KERNELS</varname></term>
- <listitem>
- <para>Search the devpath upwards for a matching device name.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><varname>SUBSYSTEMS</varname></term>
- <listitem>
- <para>Search the devpath upwards for a matching device subsystem name.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><varname>DRIVERS</varname></term>
- <listitem>
- <para>Search the devpath upwards for a matching device driver name.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><varname>ATTRS{<replaceable>filename</replaceable>}</varname></term>
- <listitem>
- <para>Search the devpath upwards for a device with matching sysfs attribute values.
- If multiple <varname>ATTRS</varname> matches are specified, all of them
- must match on the same device. Trailing whitespace in the attribute values is ignored
- unless the specified match value itself contains trailing whitespace.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><varname>TAGS</varname></term>
- <listitem>
- <para>Search the devpath upwards for a device with matching tag.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><varname>ENV{<replaceable>key</replaceable>}</varname></term>
- <listitem>
- <para>Match against a device property value.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><varname>CONST{<replaceable>key</replaceable>}</varname></term>
- <listitem>
- <para>Match against a system-wide constant. Supported keys are:</para>
- <variablelist>
- <varlistentry>
- <term><literal>arch</literal></term>
- <listitem>
- <para>System's architecture. See <option>ConditionArchitecture=</option> in
- <citerefentry><refentrytitle>systemd.unit</refentrytitle><manvolnum>5</manvolnum></citerefentry>
- for possible values.</para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term><literal>virt</literal></term>
- <listitem>
- <para>System's virtualization environment. See
- <citerefentry><refentrytitle>systemd-detect-virt</refentrytitle><manvolnum>1</manvolnum></citerefentry>
- for possible values.</para>
- </listitem>
- </varlistentry>
- </variablelist>
- <para>Unknown keys will never match.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><varname>TAG</varname></term>
- <listitem>
- <para>Match against a device tag.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><varname>TEST{<replaceable>octal mode mask</replaceable>}</varname></term>
- <listitem>
- <para>Test the existence of a file. An octal mode mask can be specified
- if needed.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><varname>PROGRAM</varname></term>
- <listitem>
- <para>Execute a program to determine whether there is a match; the key is true if the program
- returns successfully. The device properties are made available to the executed program in the
- environment. The program's standard output is available in the <varname>RESULT</varname>
- key.</para>
-
- <para>This can only be used for very short-running foreground tasks. For details, see
- <varname>RUN</varname>.</para>
-
- <para>Note that multiple <varname>PROGRAM</varname> keys may be specified in one rule, and
- <literal>=</literal>, <literal>:=</literal>, and <literal>+=</literal> have the same effect as
- <literal>==</literal>.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><varname>RESULT</varname></term>
- <listitem>
- <para>Match the returned string of the last <varname>PROGRAM</varname> call.
- This key can be used in the same or in any later rule after a
- <varname>PROGRAM</varname> call.</para>
- </listitem>
- </varlistentry>
- </variablelist>
-
- <para>Most of the fields support shell glob pattern matching and
- alternate patterns. The following special characters are supported:</para>
- <variablelist>
- <varlistentry>
- <term><literal>*</literal></term>
- <listitem>
- <para>Matches zero or more characters.</para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term><literal>?</literal></term>
- <listitem>
- <para>Matches any single character.</para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term><literal>[]</literal></term>
- <listitem>
- <para>Matches any single character specified within the brackets. For
- example, the pattern string <literal>tty[SR]</literal>
- would match either <literal>ttyS</literal> or <literal>ttyR</literal>.
- Ranges are also supported via the <literal>-</literal> character.
- For example, to match on the range of all digits, the pattern
- <literal>[0-9]</literal> could be used. If the first character
- following the <literal>[</literal> is a <literal>!</literal>,
- any characters not enclosed are matched.</para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term><literal>|</literal></term>
- <listitem>
- <para>Separates alternative patterns. For example, the pattern string
- <literal>abc|x*</literal> would match either <literal>abc</literal>
- or <literal>x*</literal>.</para>
- </listitem>
- </varlistentry>
- </variablelist>
-
- <para>The following keys can get values assigned:</para>
- <variablelist class='udev-directives'>
- <varlistentry>
- <term><varname>NAME</varname></term>
- <listitem>
- <para>The name to use for a network interface. See
- <citerefentry><refentrytitle>systemd.link</refentrytitle><manvolnum>5</manvolnum></citerefentry>
- for a higher-level mechanism for setting the interface name.
- The name of a device node cannot be changed by udev, only additional
- symlinks can be created.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><varname>SYMLINK</varname></term>
- <listitem>
- <para>The name of a symlink targeting the node. Every matching rule adds
- this value to the list of symlinks to be created.</para>
- <para>The set of characters to name a symlink is limited. Allowed
- characters are <literal>0-9A-Za-z#+-.:=@_/</literal>, valid UTF-8 character
- sequences, and <literal>\x00</literal> hex encoding. All other
- characters are replaced by a <literal>_</literal> character.</para>
- <para>Multiple symlinks may be specified by separating the names by the
- space character. In case multiple devices claim the same name, the link
- always points to the device with the highest link_priority. If the current
- device goes away, the links are re-evaluated and the device with the
- next highest link_priority becomes the owner of the link. If no
- link_priority is specified, the order of the devices (and which one of
- them owns the link) is undefined.</para>
- <para>Symlink names must never conflict with the kernel's default device
- node names, as that would result in unpredictable behavior.
- </para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><varname>OWNER</varname>, <varname>GROUP</varname>, <varname>MODE</varname></term>
- <listitem>
- <para>The permissions for the device node. Every specified value overrides
- the compiled-in default value.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><varname>SECLABEL{<replaceable>module</replaceable>}</varname></term>
- <listitem>
- <para>Applies the specified Linux Security Module label to the device node.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><varname>ATTR{<replaceable>key</replaceable>}</varname></term>
- <listitem>
- <para>The value that should be written to a sysfs attribute of the
- event device.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><varname>SYSCTL{<replaceable>kernel parameter</replaceable>}</varname></term>
- <listitem>
- <para>The value that should be written to kernel parameter.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><varname>ENV{<replaceable>key</replaceable>}</varname></term>
- <listitem>
- <para>Set a device property value. Property names with a leading <literal>.</literal>
- are neither stored in the database nor exported to events or
- external tools (run by, for example, the <varname>PROGRAM</varname>
- match key).</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><varname>TAG</varname></term>
- <listitem>
- <para>Attach a tag to a device. This is used to filter events for users
- of libudev's monitor functionality, or to enumerate a group of tagged
- devices. The implementation can only work efficiently if only a few
- tags are attached to a device. It is only meant to be used in
- contexts with specific device filter requirements, and not as a
- general-purpose flag. Excessive use might result in inefficient event
- handling.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><varname>RUN{<replaceable>type</replaceable>}</varname></term>
- <listitem>
- <para>Specify a program to be executed after processing of all the rules for the event. With
- <literal>+=</literal>, this invocation is added to the list, and with <literal>=</literal> or
- <literal>:=</literal>, it replaces any previous contents of the list. Please note that both
- <literal>program</literal> and <literal>builtin</literal> types described below use a single
- list, so clearing the list with <literal>:=</literal> and <literal>=</literal> affects both
- types.</para>
-
- <para><replaceable>type</replaceable> may be:</para>
- <variablelist>
- <varlistentry>
- <term><literal>program</literal></term>
- <listitem>
- <para>Execute an external program specified as the assigned
- value. If no absolute path is given, the program is expected
- to live in <filename>/usr/lib/udev</filename>; otherwise, the
- absolute path must be specified.</para>
- <para>This is the default if no <replaceable>type</replaceable>
- is specified.</para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term><literal>builtin</literal></term>
- <listitem>
- <para>As <varname>program</varname>, but use one of the
- built-in programs rather than an external one.</para>
- </listitem>
- </varlistentry>
- </variablelist>
-
- <para>The program name and following arguments are separated by spaces. Single quotes can be
- used to specify arguments with spaces.</para>
-
- <para>This can only be used for very short-running foreground tasks. Running an event process for
- a long period of time may block all further events for this or a dependent device.</para>
-
- <para>Note that running programs that access the network or mount/unmount filesystems is not
- allowed inside of udev rules, due to the default sandbox that is enforced on
- <filename>systemd-udevd.service</filename>.</para>
-
- <para>Starting daemons or other long-running processes is not allowed; the forked processes,
- detached or not, will be unconditionally killed after the event handling has finished. In order
- to activate long-running processes from udev rules, provide a service unit and pull it in from a
- udev device using the <varname>SYSTEMD_WANTS</varname> device property. See
- <citerefentry><refentrytitle>systemd.device</refentrytitle><manvolnum>5</manvolnum></citerefentry>
- for details.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><varname>LABEL</varname></term>
- <listitem>
- <para>A named label to which a <varname>GOTO</varname> may jump.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><varname>GOTO</varname></term>
- <listitem>
- <para>Jumps to the next <varname>LABEL</varname> with a matching name.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><varname>IMPORT{<replaceable>type</replaceable>}</varname></term>
- <listitem>
- <para>Import a set of variables as device properties, depending on
- <replaceable>type</replaceable>:</para>
-
- <variablelist>
- <varlistentry>
- <term><literal>program</literal></term>
- <listitem>
- <para>Execute an external program specified as the assigned
- value and, if it returns successfully,
- import its output, which must be in environment key
- format. Path specification, command/argument separation,
- and quoting work like in <varname>RUN</varname>.</para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term><literal>builtin</literal></term>
- <listitem>
- <para>Similar to <literal>program</literal>, but use one of the
- built-in programs rather than an external one.</para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term><literal>file</literal></term>
- <listitem>
- <para>Import a text file specified as the assigned value, the content
- of which must be in environment key format.</para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term><literal>db</literal></term>
- <listitem>
- <para>Import a single property specified as the assigned value from the
- current device database. This works only if the database is already populated
- by an earlier event.</para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term><literal>cmdline</literal></term>
- <listitem>
- <para>Import a single property from the kernel command line. For simple flags
- the value of the property is set to <literal>1</literal>.</para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term><literal>parent</literal></term>
- <listitem>
- <para>Import the stored keys from the parent device by reading
- the database entry of the parent device. The value assigned to
- <option>IMPORT{parent}</option> is used as a filter of key names
- to import (with the same shell glob pattern matching used for
- comparisons).</para>
- </listitem>
- </varlistentry>
- </variablelist>
-
- <para>This can only be used for very short-running foreground tasks. For details see
- <option>RUN</option>.</para>
-
- <para>Note that multiple <varname>IMPORT{}</varname> keys may be specified in one rule, and
- <literal>=</literal>, <literal>:=</literal>, and <literal>+=</literal> have the same effect as
- <literal>==</literal>. The key is true if the import is successful, unless <literal>!=</literal>
- is used as the operator which causes the key to be true if the import failed.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><varname>OPTIONS</varname></term>
- <listitem>
- <para>Rule and device options:</para>
- <variablelist class='udev-directives'>
- <varlistentry>
- <term><option>link_priority=<replaceable>value</replaceable></option></term>
- <listitem>
- <para>Specify the priority of the created symlinks. Devices with higher
- priorities overwrite existing symlinks of other devices. The default is 0.</para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term><option>string_escape=<replaceable>none|replace</replaceable></option></term>
- <listitem>
- <para>Usually, control and other possibly unsafe characters are replaced
- in strings used for device naming. The mode of replacement can be specified
- with this option.</para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term><option>static_node=</option></term>
- <listitem>
- <para>Apply the permissions specified in this rule to the
- static device node with the specified name. Also, for every
- tag specified in this rule, create a symlink
- in the directory
- <filename>/run/udev/static_node-tags/<replaceable>tag</replaceable></filename>
- pointing at the static device node with the specified name.
- Static device node creation is performed by systemd-tmpfiles
- before systemd-udevd is started. The static nodes might not
- have a corresponding kernel device; they are used to trigger
- automatic kernel module loading when they are accessed.</para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term><option>watch</option></term>
- <listitem>
- <para>Watch the device node with inotify; when the node is
- closed after being opened for writing, a change uevent is
- synthesized.</para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term><option>nowatch</option></term>
- <listitem>
- <para>Disable the watching of a device node with inotify.</para>
- </listitem>
- </varlistentry>
+ <para>A rule consists of a comma-separated list of one or more key-operator-value expressions.
+ Each expression has a distinct effect, depending on the key and operator used.</para>
+
+ <refsect2>
+ <title>Operators</title>
+ <variablelist>
+ <varlistentry>
+ <term><literal>==</literal></term>
+ <listitem>
+ <para>Compare for equality.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><literal>!=</literal></term>
+ <listitem>
+ <para>Compare for inequality.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><literal>=</literal></term>
+ <listitem>
+ <para>Assign a value to a key. Keys that represent a list are reset
+ and only this single value is assigned.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><literal>+=</literal></term>
+ <listitem>
+ <para>Add the value to a key that holds a list of entries.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><literal>-=</literal></term>
+ <listitem>
+ <para>Remove the value from a key that holds a list of entries.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><literal>:=</literal></term>
+ <listitem>
+ <para>Assign a value to a key finally; disallow any later changes.</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsect2>
+
+ <refsect2>
+ <title>Values</title>
+ <para>Values are written as double quoted strings, such as ("string").
+ To include a quotation mark (") in the value, precede it by a backslash (\").
+ Any other occurrences of a character followed by a backslash are not further unescaped.
+ That is, "\t\n" is treated as four characters:
+ backslash, lowercase t, backslash, lowercase n.</para>
+
+ <para>The string can be prefixed with a lowercase e (e"string\n") to mark the string as
+ <ulink url="https://en.wikipedia.org/wiki/Escape_sequences_in_C#Table_of_escape_sequences">C-style escaped</ulink>.
+ For example, e"string\n" is parsed as 7 characters: 6 lowercase letters and a newline.
+ This can be useful for writting special characters when a kernel driver requires them.</para>
+
+ <para>Please note that <constant>NUL</constant> is not allowed in either string variant.</para>
+ </refsect2>
+
+ <refsect2>
+ <title>Keys</title>
+ <para>The following key names can be used to match against device properties.
+ Some of the keys also match against properties of the parent devices in sysfs,
+ not only the device that has generated the event. If multiple keys that match
+ a parent device are specified in a single rule, all these keys must match at
+ one and the same parent device.</para>
+ <variablelist class='udev-directives'>
+ <varlistentry>
+ <term><varname>ACTION</varname></term>
+ <listitem>
+ <para>Match the name of the event action.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><varname>DEVPATH</varname></term>
+ <listitem>
+ <para>Match the devpath of the event device.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><varname>KERNEL</varname></term>
+ <listitem>
+ <para>Match the name of the event device.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><varname>NAME</varname></term>
+ <listitem>
+ <para>Match the name of a network interface. It can be used once the
+ NAME key has been set in one of the preceding rules.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><varname>SYMLINK</varname></term>
+ <listitem>
+ <para>Match the name of a symlink targeting the node. It can
+ be used once a SYMLINK key has been set in one of the preceding
+ rules. There may be multiple symlinks; only one needs to match.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><varname>SUBSYSTEM</varname></term>
+ <listitem>
+ <para>Match the subsystem of the event device.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><varname>DRIVER</varname></term>
+ <listitem>
+ <para>Match the driver name of the event device. Only set this key for devices
+ which are bound to a driver at the time the event is generated.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><varname>ATTR{<replaceable>filename</replaceable>}</varname></term>
+ <listitem>
+ <para>Match sysfs attribute values of the event device. Trailing
+ whitespace in the attribute values is ignored unless the specified match
+ value itself contains trailing whitespace.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><varname>SYSCTL{<replaceable>kernel parameter</replaceable>}</varname></term>
+ <listitem>
+ <para>Match a kernel parameter value.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><varname>KERNELS</varname></term>
+ <listitem>
+ <para>Search the devpath upwards for a matching device name.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><varname>SUBSYSTEMS</varname></term>
+ <listitem>
+ <para>Search the devpath upwards for a matching device subsystem name.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><varname>DRIVERS</varname></term>
+ <listitem>
+ <para>Search the devpath upwards for a matching device driver name.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><varname>ATTRS{<replaceable>filename</replaceable>}</varname></term>
+ <listitem>
+ <para>Search the devpath upwards for a device with matching sysfs attribute values.
+ If multiple <varname>ATTRS</varname> matches are specified, all of them
+ must match on the same device. Trailing whitespace in the attribute values is ignored
+ unless the specified match value itself contains trailing whitespace.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><varname>TAGS</varname></term>
+ <listitem>
+ <para>Search the devpath upwards for a device with matching tag.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><varname>ENV{<replaceable>key</replaceable>}</varname></term>
+ <listitem>
+ <para>Match against a device property value.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><varname>CONST{<replaceable>key</replaceable>}</varname></term>
+ <listitem>
+ <para>Match against a system-wide constant. Supported keys are:</para>
+ <variablelist>
+ <varlistentry>
+ <term><literal>arch</literal></term>
+ <listitem>
+ <para>System's architecture. See <option>ConditionArchitecture=</option> in
+ <citerefentry><refentrytitle>systemd.unit</refentrytitle><manvolnum>5</manvolnum></citerefentry>
+ for possible values.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><literal>virt</literal></term>
+ <listitem>
+ <para>System's virtualization environment. See
+ <citerefentry><refentrytitle>systemd-detect-virt</refentrytitle><manvolnum>1</manvolnum></citerefentry>
+ for possible values.</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ <para>Unknown keys will never match.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><varname>TAG</varname></term>
+ <listitem>
+ <para>Match against a device tag.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><varname>TEST{<replaceable>octal mode mask</replaceable>}</varname></term>
+ <listitem>
+ <para>Test the existence of a file. An octal mode mask can be specified
+ if needed.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><varname>PROGRAM</varname></term>
+ <listitem>
+ <para>Execute a program to determine whether there is a match; the key is true if the program
+ returns successfully. The device properties are made available to the executed program in the
+ environment. The program's standard output is available in the <varname>RESULT</varname>
+ key.</para>
+
+ <para>This can only be used for very short-running foreground tasks. For details, see
+ <varname>RUN</varname>.</para>
+
+ <para>Note that multiple <varname>PROGRAM</varname> keys may be specified in one rule, and
+ <literal>=</literal>, <literal>:=</literal>, and <literal>+=</literal> have the same effect as
+ <literal>==</literal>.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><varname>RESULT</varname></term>
+ <listitem>
+ <para>Match the returned string of the last <varname>PROGRAM</varname> call.
+ This key can be used in the same or in any later rule after a
+ <varname>PROGRAM</varname> call.</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+
+ <para>Most of the fields support shell glob pattern matching and
+ alternate patterns. The following special characters are supported:</para>
+ <variablelist>
+ <varlistentry>
+ <term><literal>*</literal></term>
+ <listitem>
+ <para>Matches zero or more characters.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><literal>?</literal></term>
+ <listitem>
+ <para>Matches any single character.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><literal>[]</literal></term>
+ <listitem>
+ <para>Matches any single character specified within the brackets. For
+ example, the pattern string <literal>tty[SR]</literal>
+ would match either <literal>ttyS</literal> or <literal>ttyR</literal>.
+ Ranges are also supported via the <literal>-</literal> character.
+ For example, to match on the range of all digits, the pattern
+ <literal>[0-9]</literal> could be used. If the first character
+ following the <literal>[</literal> is a <literal>!</literal>,
+ any characters not enclosed are matched.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><literal>|</literal></term>
+ <listitem>
+ <para>Separates alternative patterns. For example, the pattern string
+ <literal>abc|x*</literal> would match either <literal>abc</literal>
+ or <literal>x*</literal>.</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+
+ <para>The following keys can get values assigned:</para>
+ <variablelist class='udev-directives'>
+ <varlistentry>
+ <term><varname>NAME</varname></term>
+ <listitem>
+ <para>The name to use for a network interface. See
+ <citerefentry><refentrytitle>systemd.link</refentrytitle><manvolnum>5</manvolnum></citerefentry>
+ for a higher-level mechanism for setting the interface name.
+ The name of a device node cannot be changed by udev, only additional
+ symlinks can be created.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><varname>SYMLINK</varname></term>
+ <listitem>
+ <para>The name of a symlink targeting the node. Every matching rule adds
+ this value to the list of symlinks to be created.</para>
+ <para>The set of characters to name a symlink is limited. Allowed
+ characters are <literal>0-9A-Za-z#+-.:=@_/</literal>, valid UTF-8 character
+ sequences, and <literal>\x00</literal> hex encoding. All other
+ characters are replaced by a <literal>_</literal> character.</para>
+ <para>Multiple symlinks may be specified by separating the names by the
+ space character. In case multiple devices claim the same name, the link
+ always points to the device with the highest link_priority. If the current
+ device goes away, the links are re-evaluated and the device with the
+ next highest link_priority becomes the owner of the link. If no
+ link_priority is specified, the order of the devices (and which one of
+ them owns the link) is undefined.</para>
+ <para>Symlink names must never conflict with the kernel's default device
+ node names, as that would result in unpredictable behavior.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><varname>OWNER</varname>, <varname>GROUP</varname>, <varname>MODE</varname></term>
+ <listitem>
+ <para>The permissions for the device node. Every specified value overrides
+ the compiled-in default value.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><varname>SECLABEL{<replaceable>module</replaceable>}</varname></term>
+ <listitem>
+ <para>Applies the specified Linux Security Module label to the device node.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><varname>ATTR{<replaceable>key</replaceable>}</varname></term>
+ <listitem>
+ <para>The value that should be written to a sysfs attribute of the
+ event device.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><varname>SYSCTL{<replaceable>kernel parameter</replaceable>}</varname></term>
+ <listitem>
+ <para>The value that should be written to kernel parameter.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><varname>ENV{<replaceable>key</replaceable>}</varname></term>
+ <listitem>
+ <para>Set a device property value. Property names with a leading <literal>.</literal>
+ are neither stored in the database nor exported to events or
+ external tools (run by, for example, the <varname>PROGRAM</varname>
+ match key).</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><varname>TAG</varname></term>
+ <listitem>
+ <para>Attach a tag to a device. This is used to filter events for users
+ of libudev's monitor functionality, or to enumerate a group of tagged
+ devices. The implementation can only work efficiently if only a few
+ tags are attached to a device. It is only meant to be used in
+ contexts with specific device filter requirements, and not as a
+ general-purpose flag. Excessive use might result in inefficient event
+ handling.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><varname>RUN{<replaceable>type</replaceable>}</varname></term>
+ <listitem>
+ <para>Specify a program to be executed after processing of all the rules for the event. With
+ <literal>+=</literal>, this invocation is added to the list, and with <literal>=</literal> or
+ <literal>:=</literal>, it replaces any previous contents of the list. Please note that both
+ <literal>program</literal> and <literal>builtin</literal> types described below use a single
+ list, so clearing the list with <literal>:=</literal> and <literal>=</literal> affects both
+ types.</para>
+
+ <para><replaceable>type</replaceable> may be:</para>
+ <variablelist>
+ <varlistentry>
+ <term><literal>program</literal></term>
+ <listitem>
+ <para>Execute an external program specified as the assigned
+ value. If no absolute path is given, the program is expected
+ to live in <filename>/usr/lib/udev</filename>; otherwise, the
+ absolute path must be specified.</para>
+ <para>This is the default if no <replaceable>type</replaceable>
+ is specified.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><literal>builtin</literal></term>
+ <listitem>
+ <para>As <varname>program</varname>, but use one of the
+ built-in programs rather than an external one.</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+
+ <para>The program name and following arguments are separated by spaces. Single quotes can be
+ used to specify arguments with spaces.</para>
+
+ <para>This can only be used for very short-running foreground tasks. Running an event process for
+ a long period of time may block all further events for this or a dependent device.</para>
+
+ <para>Note that running programs that access the network or mount/unmount filesystems is not
+ allowed inside of udev rules, due to the default sandbox that is enforced on
+ <filename>systemd-udevd.service</filename>.</para>
+
+ <para>Starting daemons or other long-running processes is not allowed; the forked processes,
+ detached or not, will be unconditionally killed after the event handling has finished. In order
+ to activate long-running processes from udev rules, provide a service unit and pull it in from a
+ udev device using the <varname>SYSTEMD_WANTS</varname> device property. See
+ <citerefentry><refentrytitle>systemd.device</refentrytitle><manvolnum>5</manvolnum></citerefentry>
+ for details.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><varname>LABEL</varname></term>
+ <listitem>
+ <para>A named label to which a <varname>GOTO</varname> may jump.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><varname>GOTO</varname></term>
+ <listitem>
+ <para>Jumps to the next <varname>LABEL</varname> with a matching name.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><varname>IMPORT{<replaceable>type</replaceable>}</varname></term>
+ <listitem>
+ <para>Import a set of variables as device properties, depending on
+ <replaceable>type</replaceable>:</para>
+
+ <variablelist>
+ <varlistentry>
+ <term><literal>program</literal></term>
+ <listitem>
+ <para>Execute an external program specified as the assigned
+ value and, if it returns successfully,
+ import its output, which must be in environment key
+ format. Path specification, command/argument separation,
+ and quoting work like in <varname>RUN</varname>.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><literal>builtin</literal></term>
+ <listitem>
+ <para>Similar to <literal>program</literal>, but use one of the
+ built-in programs rather than an external one.</para>
+ </listitem>
+ </varlistentry>
<varlistentry>
- <term><option>db_persist</option></term>
- <listitem>
- <para>Set the flag (sticky bit) on the udev database entry
- of the event device. Device properties are then kept in the
- database even when
- <command>udevadm info --cleanup-db</command> is called.
- This option can be useful in certain cases
- (e.g. Device Mapper devices) for persisting device state
- on the transition from initramfs.</para>
- </listitem>
- </varlistentry>
- </variablelist>
- </listitem>
- </varlistentry>
- </variablelist>
-
- <para>The <varname>NAME</varname>, <varname>SYMLINK</varname>,
- <varname>PROGRAM</varname>, <varname>OWNER</varname>,
- <varname>GROUP</varname>, <varname>MODE</varname>, <varname>SECLABEL</varname>,
- and <varname>RUN</varname> fields support simple string substitutions.
- The <varname>RUN</varname> substitutions are performed after all rules
- have been processed, right before the program is executed, allowing for
- the use of device properties set by earlier matching rules. For all other
- fields, substitutions are performed while the individual rule is being
- processed. The available substitutions are:</para>
- <variablelist class='udev-directives'>
- <varlistentry>
- <term><option>$kernel</option>, <option>%k</option></term>
- <listitem>
- <para>The kernel name for this device.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><option>$number</option>, <option>%n</option></term>
- <listitem>
- <para>The kernel number for this device. For example, <literal>sda3</literal> has kernel number
- 3.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><option>$devpath</option>, <option>%p</option></term>
- <listitem>
- <para>The devpath of the device.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><option>$id</option>, <option>%b</option></term>
- <listitem>
- <para>The name of the device matched while searching the devpath
- upwards for <option>SUBSYSTEMS</option>, <option>KERNELS</option>,
- <option>DRIVERS</option>, and <option>ATTRS</option>.
- </para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><option>$driver</option></term>
- <listitem>
- <para>The driver name of the device matched while searching the
- devpath upwards for <option>SUBSYSTEMS</option>,
- <option>KERNELS</option>, <option>DRIVERS</option>, and
- <option>ATTRS</option>.
- </para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><option>$attr{<replaceable>file</replaceable>}</option>, <option>%s{<replaceable>file</replaceable>}</option></term>
- <listitem>
- <para>The value of a sysfs attribute found at the device where
- all keys of the rule have matched. If the matching device does not
- have such an attribute, and a previous <option>KERNELS</option>,
- <option>SUBSYSTEMS</option>, <option>DRIVERS</option>, or
- <option>ATTRS</option> test selected a parent device, then the
- attribute from that parent device is used.
- </para>
- <para>If the attribute is a symlink, the last element of the
- symlink target is returned as the value.
- </para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><option>$env{<replaceable>key</replaceable>}</option>, <option>%E{<replaceable>key</replaceable>}</option></term>
- <listitem>
- <para>A device property value.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><option>$major</option>, <option>%M</option></term>
- <listitem>
- <para>The kernel major number for the device.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><option>$minor</option>, <option>%m</option></term>
- <listitem>
- <para>The kernel minor number for the device.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><option>$result</option>, <option>%c</option></term>
- <listitem>
- <para>The string returned by the external program requested with
- <varname>PROGRAM</varname>.
- A single part of the string, separated by a space character, may be selected
- by specifying the part number as an attribute: <literal>%c{N}</literal>.
- If the number is followed by the <literal>+</literal> character, this part plus all remaining parts
- of the result string are substituted: <literal>%c{N+}</literal>.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><option>$parent</option>, <option>%P</option></term>
- <listitem>
- <para>The node name of the parent device.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><option>$name</option></term>
- <listitem>
- <para>The current name of the device. If not changed by a rule, it is the
- name of the kernel device.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><option>$links</option></term>
- <listitem>
- <para>A space-separated list of the current symlinks. The value is
- only set during a remove event or if an earlier rule assigned a value.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><option>$root</option>, <option>%r</option></term>
- <listitem>
- <para>The udev_root value.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><option>$sys</option>, <option>%S</option></term>
- <listitem>
- <para>The sysfs mount point.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><option>$devnode</option>, <option>%N</option></term>
- <listitem>
- <para>The name of the device node.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><option>%%</option></term>
- <listitem>
- <para>The <literal>%</literal> character itself.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><option>$$</option></term>
- <listitem>
- <para>The <literal>$</literal> character itself.</para>
- </listitem>
- </varlistentry>
- </variablelist>
+ <term><literal>file</literal></term>
+ <listitem>
+ <para>Import a text file specified as the assigned value, the content
+ of which must be in environment key format.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><literal>db</literal></term>
+ <listitem>
+ <para>Import a single property specified as the assigned value from the
+ current device database. This works only if the database is already populated
+ by an earlier event.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><literal>cmdline</literal></term>
+ <listitem>
+ <para>Import a single property from the kernel command line. For simple flags
+ the value of the property is set to <literal>1</literal>.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><literal>parent</literal></term>
+ <listitem>
+ <para>Import the stored keys from the parent device by reading
+ the database entry of the parent device. The value assigned to
+ <option>IMPORT{parent}</option> is used as a filter of key names
+ to import (with the same shell glob pattern matching used for
+ comparisons).</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+
+ <para>This can only be used for very short-running foreground tasks. For details see
+ <option>RUN</option>.</para>
+
+ <para>Note that multiple <varname>IMPORT{}</varname> keys may be specified in one rule, and
+ <literal>=</literal>, <literal>:=</literal>, and <literal>+=</literal> have the same effect as
+ <literal>==</literal>. The key is true if the import is successful, unless <literal>!=</literal>
+ is used as the operator which causes the key to be true if the import failed.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><varname>OPTIONS</varname></term>
+ <listitem>
+ <para>Rule and device options:</para>
+ <variablelist class='udev-directives'>
+ <varlistentry>
+ <term><option>link_priority=<replaceable>value</replaceable></option></term>
+ <listitem>
+ <para>Specify the priority of the created symlinks. Devices with higher
+ priorities overwrite existing symlinks of other devices. The default is 0.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><option>string_escape=<replaceable>none|replace</replaceable></option></term>
+ <listitem>
+ <para>Usually, control and other possibly unsafe characters are replaced
+ in strings used for device naming. The mode of replacement can be specified
+ with this option.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><option>static_node=</option></term>
+ <listitem>
+ <para>Apply the permissions specified in this rule to the
+ static device node with the specified name. Also, for every
+ tag specified in this rule, create a symlink
+ in the directory
+ <filename>/run/udev/static_node-tags/<replaceable>tag</replaceable></filename>
+ pointing at the static device node with the specified name.
+ Static device node creation is performed by systemd-tmpfiles
+ before systemd-udevd is started. The static nodes might not
+ have a corresponding kernel device; they are used to trigger
+ automatic kernel module loading when they are accessed.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><option>watch</option></term>
+ <listitem>
+ <para>Watch the device node with inotify; when the node is
+ closed after being opened for writing, a change uevent is
+ synthesized.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><option>nowatch</option></term>
+ <listitem>
+ <para>Disable the watching of a device node with inotify.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><option>db_persist</option></term>
+ <listitem>
+ <para>Set the flag (sticky bit) on the udev database entry
+ of the event device. Device properties are then kept in the
+ database even when
+ <command>udevadm info --cleanup-db</command> is called.
+ This option can be useful in certain cases
+ (e.g. Device Mapper devices) for persisting device state
+ on the transition from initramfs.</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+
+ <para>The <varname>NAME</varname>, <varname>SYMLINK</varname>,
+ <varname>PROGRAM</varname>, <varname>OWNER</varname>,
+ <varname>GROUP</varname>, <varname>MODE</varname>, <varname>SECLABEL</varname>,
+ and <varname>RUN</varname> fields support simple string substitutions.
+ The <varname>RUN</varname> substitutions are performed after all rules
+ have been processed, right before the program is executed, allowing for
+ the use of device properties set by earlier matching rules. For all other
+ fields, substitutions are performed while the individual rule is being
+ processed. The available substitutions are:</para>
+ <variablelist class='udev-directives'>
+ <varlistentry>
+ <term><option>$kernel</option>, <option>%k</option></term>
+ <listitem>
+ <para>The kernel name for this device.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><option>$number</option>, <option>%n</option></term>
+ <listitem>
+ <para>The kernel number for this device. For example, <literal>sda3</literal> has kernel number
+ 3.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><option>$devpath</option>, <option>%p</option></term>
+ <listitem>
+ <para>The devpath of the device.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><option>$id</option>, <option>%b</option></term>
+ <listitem>
+ <para>The name of the device matched while searching the devpath
+ upwards for <option>SUBSYSTEMS</option>, <option>KERNELS</option>,
+ <option>DRIVERS</option>, and <option>ATTRS</option>.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><option>$driver</option></term>
+ <listitem>
+ <para>The driver name of the device matched while searching the
+ devpath upwards for <option>SUBSYSTEMS</option>,
+ <option>KERNELS</option>, <option>DRIVERS</option>, and
+ <option>ATTRS</option>.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><option>$attr{<replaceable>file</replaceable>}</option>, <option>%s{<replaceable>file</replaceable>}</option></term>
+ <listitem>
+ <para>The value of a sysfs attribute found at the device where
+ all keys of the rule have matched. If the matching device does not
+ have such an attribute, and a previous <option>KERNELS</option>,
+ <option>SUBSYSTEMS</option>, <option>DRIVERS</option>, or
+ <option>ATTRS</option> test selected a parent device, then the
+ attribute from that parent device is used.
+ </para>
+ <para>If the attribute is a symlink, the last element of the
+ symlink target is returned as the value.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><option>$env{<replaceable>key</replaceable>}</option>, <option>%E{<replaceable>key</replaceable>}</option></term>
+ <listitem>
+ <para>A device property value.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><option>$major</option>, <option>%M</option></term>
+ <listitem>
+ <para>The kernel major number for the device.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><option>$minor</option>, <option>%m</option></term>
+ <listitem>
+ <para>The kernel minor number for the device.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><option>$result</option>, <option>%c</option></term>
+ <listitem>
+ <para>The string returned by the external program requested with
+ <varname>PROGRAM</varname>.
+ A single part of the string, separated by a space character, may be selected
+ by specifying the part number as an attribute: <literal>%c{N}</literal>.
+ If the number is followed by the <literal>+</literal> character, this part plus all remaining parts
+ of the result string are substituted: <literal>%c{N+}</literal>.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><option>$parent</option>, <option>%P</option></term>
+ <listitem>
+ <para>The node name of the parent device.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><option>$name</option></term>
+ <listitem>
+ <para>The current name of the device. If not changed by a rule, it is the
+ name of the kernel device.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><option>$links</option></term>
+ <listitem>
+ <para>A space-separated list of the current symlinks. The value is
+ only set during a remove event or if an earlier rule assigned a value.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><option>$root</option>, <option>%r</option></term>
+ <listitem>
+ <para>The udev_root value.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><option>$sys</option>, <option>%S</option></term>
+ <listitem>
+ <para>The sysfs mount point.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><option>$devnode</option>, <option>%N</option></term>
+ <listitem>
+ <para>The name of the device node.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><option>%%</option></term>
+ <listitem>
+ <para>The <literal>%</literal> character itself.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><option>$$</option></term>
+ <listitem>
+ <para>The <literal>$</literal> character itself.</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsect2>
</refsect1>
<refsect1>
<!ENTITY % entities SYSTEM "custom-entities.ent" >
%entities;
]>
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="udev_device_get_syspath"
xmlns:xi="http://www.w3.org/2001/XInclude">
<citerefentry><refentrytitle>udev_enumerate_new</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>udev_monitor_new_from_netlink</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>udev_list_entry</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
- <citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
+ <citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>
</para>
</refsect1>
<!ENTITY % entities SYSTEM "custom-entities.ent" >
%entities;
]>
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="udev_device_has_tag"
xmlns:xi="http://www.w3.org/2001/XInclude">
<!ENTITY % entities SYSTEM "custom-entities.ent" >
%entities;
]>
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="udev_device_new_from_syspath"
xmlns:xi="http://www.w3.org/2001/XInclude">
<!ENTITY % entities SYSTEM "custom-entities.ent" >
%entities;
]>
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="udev_enumerate_add_match_subsystem"
xmlns:xi="http://www.w3.org/2001/XInclude">
<!ENTITY % entities SYSTEM "custom-entities.ent" >
%entities;
]>
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="udev_enumerate_new"
xmlns:xi="http://www.w3.org/2001/XInclude">
<!ENTITY % entities SYSTEM "custom-entities.ent" >
%entities;
]>
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="udev_enumerate_scan_devices"
xmlns:xi="http://www.w3.org/2001/XInclude">
<!ENTITY % entities SYSTEM "custom-entities.ent" >
%entities;
]>
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="udev_list_entry"
xmlns:xi="http://www.w3.org/2001/XInclude">
<!ENTITY % entities SYSTEM "custom-entities.ent" >
%entities;
]>
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="udev_monitor_filter_update"
xmlns:xi="http://www.w3.org/2001/XInclude">
<!ENTITY % entities SYSTEM "custom-entities.ent" >
%entities;
]>
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="udev_monitor_new_from_netlink"
xmlns:xi="http://www.w3.org/2001/XInclude">
<!ENTITY % entities SYSTEM "custom-entities.ent" >
%entities;
]>
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="udev_monitor_receive_device"
xmlns:xi="http://www.w3.org/2001/XInclude">
<!ENTITY % entities SYSTEM "custom-entities.ent" >
%entities;
]>
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="udev_new"
xmlns:xi="http://www.w3.org/2001/XInclude">
<?xml version='1.0'?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="udevadm"
xmlns:xi="http://www.w3.org/2001/XInclude">
<?xml version="1.0"?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<variablelist>
<varlistentry id='user'>
<?xml version="1.0"?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="user@.service">
<refentryinfo>
<?xml version='1.0'?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="userdbctl" conditional='ENABLE_USERDB'
xmlns:xi="http://www.w3.org/2001/XInclude">
<?xml version='1.0'?> <!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="vconsole.conf" conditional='ENABLE_VCONSOLE'>
<refentryinfo>
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
project('systemd', 'c',
- version : '246',
+ version : '247',
license : 'LGPLv2+',
default_options: [
'c_std=gnu99',
meson_version : '>= 0.46',
)
-libsystemd_version = '0.29.0'
+libsystemd_version = '0.30.0'
libudev_version = '1.7.0'
# We need the same data in two different formats, ugh!
endif
endif
conf.set10('ENABLE_OOMD', have)
+substs.set10('ENABLE_OOMD', have)
want_remote = get_option('remote')
if want_remote != 'false'
'networkd',
'nss-myhostname',
'nss-systemd',
- 'oomd',
'portabled',
'pstore',
'quotacheck',
includes = include_directories('src/basic',
'src/boot',
+ 'src/core',
'src/home',
- 'src/shared',
- 'src/systemd',
'src/journal',
'src/journal-remote',
- 'src/nspawn',
- 'src/resolve',
- 'src/timesync',
- 'src/time-wait-sync',
- 'src/login',
- 'src/udev',
- 'src/libudev',
- 'src/core',
- 'src/shutdown',
- 'src/xdg-autostart-generator',
+ 'src/libsystemd-network',
'src/libsystemd/sd-bus',
'src/libsystemd/sd-device',
'src/libsystemd/sd-event',
'src/libsystemd/sd-netlink',
'src/libsystemd/sd-network',
'src/libsystemd/sd-resolve',
- 'src/libsystemd-network',
+ 'src/libudev',
+ 'src/login',
+ 'src/nspawn',
+ 'src/resolve',
+ 'src/shared',
+ 'src/shutdown',
+ 'src/systemd',
+ 'src/time-wait-sync',
+ 'src/timesync',
+ 'src/udev',
+ 'src/xdg-autostart-generator',
'.')
add_project_arguments('-include', 'config.h', language : 'c')
type = tuple.length() >= 5 ? tuple[4] : ''
defs = tuple.length() >= 6 ? tuple[5] : []
incs = tuple.length() >= 7 ? tuple[6] : includes
+ parallel = tuple.length() >= 8 ? tuple[7] : true
timeout = 30
name = sources[0].split('/')[-1].split('.')[0]
# -*- mode: meson -*-
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
option('version-tag', type : 'string',
description : 'override the git version string')
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
if conf.get('ENABLE_NETWORKD') == 1
install_data('80-container-host0.network',
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# Belarusian translation for systemd.
#
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# Belarusian translation for systemd.
#
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# Bulgarian translation of systemd po-file.
# Copyright © 2016 Alexander Shopov <ash@kambanaria.org>
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# Catalan translation for systemd.
# Walter Garcia-Fontes <walter.garcia@upf.edu>, 2016.
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# Czech translation for systemd.
# Daniel Maixner <xskipy@gmail.com>, 2016.
msgid ""
msgstr ""
"Project-Id-Version: systemd master\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2020-08-19 18:02+0200\n"
-"PO-Revision-Date: 2020-07-01 16:40+0200\n"
+"Report-Msgid-Bugs-To: https://github.com/systemd/systemd/issues\n"
+"POT-Creation-Date: 2020-09-10 03:33+0000\n"
+"PO-Revision-Date: 2020-10-26 22:48+0100\n"
"Last-Translator: Daniel Rusek <mail@asciiwolf.com>\n"
"Language-Team: Czech\n"
"Language: cs\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 "
"|| n%100>=20) ? 1 : 2);\n"
-"X-Generator: Poedit 2.3.1\n"
+"X-Generator: Poedit 2.4.1\n"
#: src/core/org.freedesktop.systemd1.policy.in:22
msgid "Send passphrase back to system"
"ověření."
#: src/login/org.freedesktop.login1.policy:117
+msgid "Allow applications to inhibit system handling of the reboot key"
+msgstr ""
+"Povolit aplikacím zakázat chovaní systému na stisknutí restartovacího "
+"tlačítka"
+
+#: src/login/org.freedesktop.login1.policy:118
+msgid ""
+"Authentication is required for an application to inhibit system handling of "
+"the reboot key."
+msgstr ""
+"Pro povolení aplikacím zakázat chovaní systému na stisknutí restartovacího "
+"tlačítka je vyžadováno ověření."
+
+#: src/login/org.freedesktop.login1.policy:128
msgid "Allow non-logged-in user to run programs"
msgstr "Povolit nepřihlášenému uživateli spouštět programy"
-#: src/login/org.freedesktop.login1.policy:118
+#: src/login/org.freedesktop.login1.policy:129
msgid "Explicit request is required to run programs as a non-logged-in user."
msgstr ""
"Ke spuštění programů jako nepřihlášený uživatel je třeba speciální požadavek."
-#: src/login/org.freedesktop.login1.policy:127
+#: src/login/org.freedesktop.login1.policy:138
msgid "Allow non-logged-in users to run programs"
msgstr "Povolit nepřihlášeným uživatelům spouštět programy"
-#: src/login/org.freedesktop.login1.policy:128
+#: src/login/org.freedesktop.login1.policy:139
msgid "Authentication is required to run programs as a non-logged-in user."
msgstr "Ke spuštění programů jako nepřihlášený uživatel je vyžadováno ověření."
-#: src/login/org.freedesktop.login1.policy:137
+#: src/login/org.freedesktop.login1.policy:148
msgid "Allow attaching devices to seats"
msgstr "Povolit připojování zařízení ke stanovištím"
-#: src/login/org.freedesktop.login1.policy:138
+#: src/login/org.freedesktop.login1.policy:149
msgid "Authentication is required to attach a device to a seat."
msgstr "Pro připojování zařízení ke stanovišti je vyžadováno ověření."
-#: src/login/org.freedesktop.login1.policy:148
+#: src/login/org.freedesktop.login1.policy:159
msgid "Flush device to seat attachments"
msgstr "Odstranit přiřazení zařízení ke stanovištím"
-#: src/login/org.freedesktop.login1.policy:149
+#: src/login/org.freedesktop.login1.policy:160
msgid "Authentication is required to reset how devices are attached to seats."
msgstr ""
"Pro resetování způsobu jak jsou zařízení přiřazována ke stanovištím je "
"vyžadováno ověření."
-#: src/login/org.freedesktop.login1.policy:158
+#: src/login/org.freedesktop.login1.policy:169
msgid "Power off the system"
msgstr "Vypnout systém"
-#: src/login/org.freedesktop.login1.policy:159
+#: src/login/org.freedesktop.login1.policy:170
msgid "Authentication is required to power off the system."
msgstr "Pro vypnutí systému je vyžadováno ověření."
-#: src/login/org.freedesktop.login1.policy:169
+#: src/login/org.freedesktop.login1.policy:180
msgid "Power off the system while other users are logged in"
msgstr "Vypnout systém, i když jsou přihlášeni další uživatelé"
-#: src/login/org.freedesktop.login1.policy:170
+#: src/login/org.freedesktop.login1.policy:181
msgid ""
"Authentication is required to power off the system while other users are "
"logged in."
"Pro vypnutí systému, když jsou přihlášeni další uživatelé je vyžadováno "
"ověření."
-#: src/login/org.freedesktop.login1.policy:180
+#: src/login/org.freedesktop.login1.policy:191
msgid "Power off the system while an application is inhibiting this"
msgstr "Vypnout systém, i když aplikace požádala o zákaz vypnutí"
-#: src/login/org.freedesktop.login1.policy:181
+#: src/login/org.freedesktop.login1.policy:192
msgid ""
"Authentication is required to power off the system while an application is "
"inhibiting this."
"Pro vypnutí systému, když aplikace požádala o zákaz vypnutí je vyžadováno "
"ověření."
-#: src/login/org.freedesktop.login1.policy:191
+#: src/login/org.freedesktop.login1.policy:202
msgid "Reboot the system"
msgstr "Restartovat systém"
-#: src/login/org.freedesktop.login1.policy:192
+#: src/login/org.freedesktop.login1.policy:203
msgid "Authentication is required to reboot the system."
msgstr "Pro restartování systému je vyžadováno ověření."
-#: src/login/org.freedesktop.login1.policy:202
+#: src/login/org.freedesktop.login1.policy:213
msgid "Reboot the system while other users are logged in"
msgstr "Restartovat systém, i když jsou přihlášeni další uživatelé"
-#: src/login/org.freedesktop.login1.policy:203
+#: src/login/org.freedesktop.login1.policy:214
msgid ""
"Authentication is required to reboot the system while other users are logged "
"in."
"Pro restartování systému, když jsou přihlášeni další uživatelé je vyžadováno "
"ověření."
-#: src/login/org.freedesktop.login1.policy:213
+#: src/login/org.freedesktop.login1.policy:224
msgid "Reboot the system while an application is inhibiting this"
msgstr "Restartovat systém, i když aplikace požádala o zákaz restartu"
-#: src/login/org.freedesktop.login1.policy:214
+#: src/login/org.freedesktop.login1.policy:225
msgid ""
"Authentication is required to reboot the system while an application is "
"inhibiting this."
"Pro restartování systému, když aplikace požádala o zákaz restartu je "
"vyžadováno ověření."
-#: src/login/org.freedesktop.login1.policy:224
+#: src/login/org.freedesktop.login1.policy:235
msgid "Halt the system"
msgstr "Zastavit systém"
-#: src/login/org.freedesktop.login1.policy:225
+#: src/login/org.freedesktop.login1.policy:236
msgid "Authentication is required to halt the system."
msgstr "Pro zastavení systému je vyžadováno ověření."
-#: src/login/org.freedesktop.login1.policy:235
+#: src/login/org.freedesktop.login1.policy:246
msgid "Halt the system while other users are logged in"
msgstr "Zastavit systém, i když jsou přihlášeni další uživatelé"
-#: src/login/org.freedesktop.login1.policy:236
+#: src/login/org.freedesktop.login1.policy:247
msgid ""
"Authentication is required to halt the system while other users are logged "
"in."
"Pro zastavení systému, když jsou přihlášeni další uživatelé je vyžadováno "
"ověření."
-#: src/login/org.freedesktop.login1.policy:246
+#: src/login/org.freedesktop.login1.policy:257
msgid "Halt the system while an application is inhibiting this"
msgstr "Zastavit systém, i když aplikace požádala o zákaz zastavení"
-#: src/login/org.freedesktop.login1.policy:247
+#: src/login/org.freedesktop.login1.policy:258
msgid ""
"Authentication is required to halt the system while an application is "
"inhibiting this."
"Pro zastavení systému, když aplikace požádala o zákaz zastavení je "
"vyžadováno ověření."
-#: src/login/org.freedesktop.login1.policy:257
+#: src/login/org.freedesktop.login1.policy:268
msgid "Suspend the system"
msgstr "Uspat systém"
-#: src/login/org.freedesktop.login1.policy:258
+#: src/login/org.freedesktop.login1.policy:269
msgid "Authentication is required to suspend the system."
msgstr "Pro uspání systému je vyžadováno ověření."
-#: src/login/org.freedesktop.login1.policy:267
+#: src/login/org.freedesktop.login1.policy:278
msgid "Suspend the system while other users are logged in"
msgstr "Uspat systém, i když jsou přihlášeni další uživatelé"
-#: src/login/org.freedesktop.login1.policy:268
+#: src/login/org.freedesktop.login1.policy:279
msgid ""
"Authentication is required to suspend the system while other users are "
"logged in."
"Pro uspání systému, když jsou přihlášeni další uživatelé je vyžadováno "
"ověření."
-#: src/login/org.freedesktop.login1.policy:278
+#: src/login/org.freedesktop.login1.policy:289
msgid "Suspend the system while an application is inhibiting this"
msgstr "Uspat systém, i když aplikace požádala o zákaz uspání"
-#: src/login/org.freedesktop.login1.policy:279
+#: src/login/org.freedesktop.login1.policy:290
msgid ""
"Authentication is required to suspend the system while an application is "
"inhibiting this."
"Pro uspání systému, když aplikace požádala o zákaz uspání je vyžadováno "
"ověření."
-#: src/login/org.freedesktop.login1.policy:289
+#: src/login/org.freedesktop.login1.policy:300
msgid "Hibernate the system"
msgstr "Hibernovat systém"
-#: src/login/org.freedesktop.login1.policy:290
+#: src/login/org.freedesktop.login1.policy:301
msgid "Authentication is required to hibernate the system."
msgstr "Pro hibernaci systému je vyžadováno ověření."
-#: src/login/org.freedesktop.login1.policy:299
+#: src/login/org.freedesktop.login1.policy:310
msgid "Hibernate the system while other users are logged in"
msgstr "Hibernovat systém, i když jsou přihlášeni další uživatelé"
-#: src/login/org.freedesktop.login1.policy:300
+#: src/login/org.freedesktop.login1.policy:311
msgid ""
"Authentication is required to hibernate the system while other users are "
"logged in."
"Pro hibernaci systému, když jsou přihlášeni další uživatelé je vyžadováno "
"ověření."
-#: src/login/org.freedesktop.login1.policy:310
+#: src/login/org.freedesktop.login1.policy:321
msgid "Hibernate the system while an application is inhibiting this"
msgstr "Hibernovat systém, i když aplikace požádala o zákaz hibernace"
-#: src/login/org.freedesktop.login1.policy:311
+#: src/login/org.freedesktop.login1.policy:322
msgid ""
"Authentication is required to hibernate the system while an application is "
"inhibiting this."
"Pro hibernaci systému, když aplikace požádala o zákaz hibernace je "
"vyžadováno ověření."
-#: src/login/org.freedesktop.login1.policy:321
+#: src/login/org.freedesktop.login1.policy:332
msgid "Manage active sessions, users and seats"
msgstr "Spravovat aktivní sezení, uživatele a stanoviště"
-#: src/login/org.freedesktop.login1.policy:322
+#: src/login/org.freedesktop.login1.policy:333
msgid "Authentication is required to manage active sessions, users and seats."
msgstr ""
"Pro správu aktivních sezení, uživatelů a stanovišť je vyžadováno ověření."
-#: src/login/org.freedesktop.login1.policy:331
+#: src/login/org.freedesktop.login1.policy:342
msgid "Lock or unlock active sessions"
msgstr "Zamknout nebo odemknout aktivní sezení"
-#: src/login/org.freedesktop.login1.policy:332
+#: src/login/org.freedesktop.login1.policy:343
msgid "Authentication is required to lock or unlock active sessions."
msgstr "Pro zamčení nebo odemčení aktivních sezení je vyžadováno ověření."
-#: src/login/org.freedesktop.login1.policy:341
+#: src/login/org.freedesktop.login1.policy:352
msgid "Set the reboot \"reason\" in the kernel"
msgstr "Nastavit \"důvod\" rebootu v jádře"
-#: src/login/org.freedesktop.login1.policy:342
+#: src/login/org.freedesktop.login1.policy:353
msgid "Authentication is required to set the reboot \"reason\" in the kernel."
msgstr "Pro nastavení \"důvodu\" rebootu v jádře je vyžadováno ověření."
-#: src/login/org.freedesktop.login1.policy:352
+#: src/login/org.freedesktop.login1.policy:363
msgid "Indicate to the firmware to boot to setup interface"
msgstr "Indikovat firmwaru, aby bootoval do instalačního prostředí"
-#: src/login/org.freedesktop.login1.policy:353
+#: src/login/org.freedesktop.login1.policy:364
msgid ""
"Authentication is required to indicate to the firmware to boot to setup "
"interface."
"K indikaci firmwaru, aby bootoval do instalačního prostředí je vyžadováno "
"ověření."
-#: src/login/org.freedesktop.login1.policy:363
+#: src/login/org.freedesktop.login1.policy:374
msgid "Indicate to the boot loader to boot to the boot loader menu"
msgstr "Indikovat zavaděči, aby bootoval do menu zavaděče"
-#: src/login/org.freedesktop.login1.policy:364
+#: src/login/org.freedesktop.login1.policy:375
msgid ""
"Authentication is required to indicate to the boot loader to boot to the "
"boot loader menu."
msgstr ""
"K indikaci zavaděči, aby bootoval do menu zavaděče je vyžadováno ověření."
-#: src/login/org.freedesktop.login1.policy:374
+#: src/login/org.freedesktop.login1.policy:385
msgid "Indicate to the boot loader to boot a specific entry"
msgstr "Indikovat zavaděči, aby bootoval specifickou položku"
-#: src/login/org.freedesktop.login1.policy:375
+#: src/login/org.freedesktop.login1.policy:386
msgid ""
"Authentication is required to indicate to the boot loader to boot into a "
"specific boot loader entry."
msgstr ""
"K indikaci zavaděči, aby bootoval specifickou položku je vyžadováno ověření."
-#: src/login/org.freedesktop.login1.policy:385
+#: src/login/org.freedesktop.login1.policy:396
msgid "Set a wall message"
msgstr "Nastavit zprávu všem uživatelům"
-#: src/login/org.freedesktop.login1.policy:386
+#: src/login/org.freedesktop.login1.policy:397
msgid "Authentication is required to set a wall message"
msgstr "K nastavení zprávy všem uživatelům je vyžadováno ověření"
-#: src/login/org.freedesktop.login1.policy:395
+#: src/login/org.freedesktop.login1.policy:406
msgid "Change Session"
msgstr "Změnit sezení"
-#: src/login/org.freedesktop.login1.policy:396
+#: src/login/org.freedesktop.login1.policy:407
msgid "Authentication is required to change the virtual terminal."
msgstr "Pro změnu virtuálního terminálu je vyžadováno ověření."
"shall be enabled."
msgstr "Pro kontrolu synchronizace času ze sítě je vyžadováno ověření."
-#: src/core/dbus-unit.c:362
+#: src/core/dbus-unit.c:359
msgid "Authentication is required to start '$(unit)'."
msgstr "Pro spuštění „$(unit)” je vyžadováno ověření."
-#: src/core/dbus-unit.c:363
+#: src/core/dbus-unit.c:360
msgid "Authentication is required to stop '$(unit)'."
msgstr "Pro vypnutí „$(unit)” je vyžadováno ověření."
-#: src/core/dbus-unit.c:364
+#: src/core/dbus-unit.c:361
msgid "Authentication is required to reload '$(unit)'."
msgstr "Pro opětovné načtení „$(unit)” je vyžadováno ověření."
-#: src/core/dbus-unit.c:365 src/core/dbus-unit.c:366
+#: src/core/dbus-unit.c:362 src/core/dbus-unit.c:363
msgid "Authentication is required to restart '$(unit)'."
msgstr "Pro restart „$(unit)” je vyžadováno ověření."
-#: src/core/dbus-unit.c:538
+#: src/core/dbus-unit.c:535
msgid ""
"Authentication is required to send a UNIX signal to the processes of "
"'$(unit)'."
msgstr "Pro odeslání UNIX signálu procesům „$(unit)” je vyžadováno ověření."
-#: src/core/dbus-unit.c:569
+#: src/core/dbus-unit.c:566
msgid "Authentication is required to reset the \"failed\" state of '$(unit)'."
msgstr "Pro resetování chybného stavu „$(unit)” je vyžadováno ověření."
-#: src/core/dbus-unit.c:602
+#: src/core/dbus-unit.c:599
msgid "Authentication is required to set properties on '$(unit)'."
msgstr "Pro nastavení vlastností na „$(unit)” je vyžadováno ověření."
-#: src/core/dbus-unit.c:711
+#: src/core/dbus-unit.c:708
msgid ""
"Authentication is required to delete files and directories associated with "
"'$(unit)'."
"Pro odstranění souborů nebo adresářů souvisejících s „$(unit)” je vyžadováno "
"ověření."
-#: src/core/dbus-unit.c:760
+#: src/core/dbus-unit.c:757
msgid ""
"Authentication is required to freeze or thaw the processes of '$(unit)' unit."
msgstr ""
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# Danish translation for systemd.
# Daniel Machon <dmachon.dev@gmail.com>, 2015.
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# German translation for systemd.
# Christian Kirbach <Christian.Kirbach@gmail.com>, 2014, 2015.
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# Greek translation for systemd.
# Dimitris Spingos <dmtrs32@gmail.com>, 2014.
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# Spanish translation for systemd.
# Alex Puchades <alex94puchades@gmail.com>, 2015.
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# French translations for systemd package
# Traductions françaises du paquet systemd.
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# Fran Dieguez <frandieguez@gnome.org>, 2015.
msgid ""
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# SOME DESCRIPTIVE TITLE.
# This file is distributed under the same license as the PACKAGE package.
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# Hungarian translation of systemd
# Copyright © 2015, 2016. Free Software Foundation, Inc.
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# Indonesian translation for systemd.
# Andika Triwidada <andika@gmail.com>, 2014.
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# Italian translation for systemd package
# Traduzione in italiano per il pacchetto systemd
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# Japanese translation for systemd.
#
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# Korean translation for the systemd.
# Seong-ho Cho <shcho@gnome.org>, 2015.
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
i18n = import('i18n')
i18n.gettext(meson.project_name(),
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# Polish translation for systemd.
#
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# Brazilian Portuguese translation for systemd.
# Enrico Nicoletto <liverig@gmail.com>, 2014.
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# Romanian translation for systemd.
# va511e <va511e@yahoo.com>, 2015.
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# translation of ru.po to Rissian
#
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# Slovak translation for systemd.
# Dušan Kazik <prescott66@gmail.com>, 2017.
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# SOME DESCRIPTIVE TITLE.
# This file is distributed under the same license as the PACKAGE package.
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# Swedish translation for systemd.
# Sebastian Rasmussen <sebras@gmail.com>, 2015.
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# Turkish translation for systemd.
# Necdet Yücel <necdetyucel@gmail.com>, 2014.
# Gökhan Gurbetoğlu <ggurbet@gmail.com>, 2015.
-# Muhammet Kara <muhammetk@gnome.org>, 2015, 2016, 2017, 2018.
# Oğuz Ersen <oguzersen@protonmail.com>, 2020.
+# Muhammet Kara <muhammetk@gmail.com>, 2015-2020.
+#
msgid ""
msgstr ""
"Project-Id-Version: systemd master\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2020-08-19 18:02+0200\n"
-"PO-Revision-Date: 2020-09-26 06:29+0000\n"
-"Last-Translator: Oğuz Ersen <oguzersen@protonmail.com>\n"
-"Language-Team: Turkish <https://translate.fedoraproject.org/projects/systemd/"
-"master/tr/>\n"
+"Report-Msgid-Bugs-To: https://github.com/systemd/systemd/issues\n"
+"POT-Creation-Date: 2020-09-27 03:31+0000\n"
+"PO-Revision-Date: 2020-11-01 15:10+0300\n"
+"Last-Translator: Muhammet Kara <muhammetk@gmail.com>\n"
+"Language-Team: Turkish <gnometurk@gnome.org>\n"
"Language: tr\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=1; plural=0;\n"
-"X-Generator: Weblate 4.2.2\n"
+"Plural-Forms: nplurals=1; plural=0\n"
+"X-Generator: Gtranslator 3.38.0\n"
#: src/core/org.freedesktop.systemd1.policy.in:22
msgid "Send passphrase back to system"
#: src/home/org.freedesktop.home1.policy:13
msgid "Create a home area"
-msgstr ""
+msgstr "Ev alanı oluştur"
#: src/home/org.freedesktop.home1.policy:14
-#, fuzzy
#| msgid "Authentication is required to reload the systemd state."
msgid "Authentication is required to create a user's home area."
-msgstr "systemd durumunu yeniden yüklemek kimlik doğrulaması gerektiriyor."
+msgstr "Bir kullanıcının ev alanını oluşturmak kimlik doğrulaması gerektirir."
#: src/home/org.freedesktop.home1.policy:23
msgid "Remove a home area"
-msgstr ""
+msgstr "Ev alanını kaldır"
#: src/home/org.freedesktop.home1.policy:24
-#, fuzzy
#| msgid "Authentication is required to reload the systemd state."
msgid "Authentication is required to remove a user's home area."
-msgstr "systemd durumunu yeniden yüklemek kimlik doğrulaması gerektiriyor."
+msgstr "Bir kullanıcının ev alanını kaldırmak kimlik doğrulaması gerektirir."
#: src/home/org.freedesktop.home1.policy:33
msgid "Check credentials of a home area"
-msgstr ""
+msgstr "Bir ev alanının kimlik bilgilerini denetle"
#: src/home/org.freedesktop.home1.policy:34
-#, fuzzy
#| msgid ""
#| "Authentication is required to attach or detach a portable service image."
msgid ""
"Authentication is required to check credentials against a user's home area."
msgstr ""
-"Bir taşınabilir hizmet kalıbını tutturmak ya da ayırmak için kimlik "
-"doğrulaması gereklidir."
+"Bir kullanıcının ev alanının kimlik bilgilerini denetlemek için kimlik "
+"doğrulaması gerekir."
#: src/home/org.freedesktop.home1.policy:43
msgid "Update a home area"
-msgstr ""
+msgstr "Ev alanını güncelle"
#: src/home/org.freedesktop.home1.policy:44
-#, fuzzy
#| msgid "Authentication is required to attach a device to a seat."
msgid "Authentication is required to update a user's home area."
-msgstr ""
-"Bir aygıtın yuvaya takılmasına izin vermek kimlik doğrulaması gerektiriyor."
+msgstr "Bir kullanıcının ev alanını güncellemek kimlik doğrulaması gerektirir."
#: src/home/org.freedesktop.home1.policy:53
msgid "Resize a home area"
-msgstr ""
+msgstr "Ev alanını yeniden boyutlandır"
#: src/home/org.freedesktop.home1.policy:54
-#, fuzzy
#| msgid "Authentication is required to set a wall message"
msgid "Authentication is required to resize a user's home area."
-msgstr "Duvar mesajı ayarlamak için kimlik doğrulaması gereklidir"
+msgstr ""
+"Bir kullanıcının ev alanını yeniden boyutlandırmak kimlik doğrulaması "
+"gerektirir."
#: src/home/org.freedesktop.home1.policy:63
msgid "Change password of a home area"
-msgstr ""
+msgstr "Ev alanının parolasını değiştir"
#: src/home/org.freedesktop.home1.policy:64
-#, fuzzy
#| msgid ""
#| "Authentication is required to manage active sessions, users and seats."
msgid ""
"Authentication is required to change the password of a user's home area."
msgstr ""
-"Aktif oturumları, kullanıcıları ve yuvaları yönetmek için kimlik doğrulaması "
-"gereklidir."
+"Bir kullanıcının ev alanının parolasını değiştirmek kimlik doğrulaması "
+"gerektirir."
#: src/hostname/org.freedesktop.hostname1.policy:20
msgid "Set hostname"
"kimlik doğrulaması gereklidir."
#: src/login/org.freedesktop.login1.policy:117
+#, fuzzy
+#| msgid "Allow applications to inhibit system handling of the power key"
+msgid "Allow applications to inhibit system handling of the reboot key"
+msgstr "Uygulamaların sistemin güç tuşunun kullanımını engellemesine izin ver"
+
+#: src/login/org.freedesktop.login1.policy:118
+#, fuzzy
+#| msgid ""
+#| "Authentication is required for an application to inhibit system handling "
+#| "of the power key."
+msgid ""
+"Authentication is required for an application to inhibit system handling of "
+"the reboot key."
+msgstr ""
+"Bir uygulamanın sistemin güç tuşunu idare etmesine engel olması için kimlik "
+"doğrulaması gereklidir."
+
+#: src/login/org.freedesktop.login1.policy:128
msgid "Allow non-logged-in user to run programs"
msgstr "Oturum açmamış kullanıcının program çalıştırmasına izin ver"
-#: src/login/org.freedesktop.login1.policy:118
+#: src/login/org.freedesktop.login1.policy:129
msgid "Explicit request is required to run programs as a non-logged-in user."
msgstr ""
"Oturum açmamış bir kullanıcı olarak program çalıştırmak için açıkça istekte "
"bulunulması gerekir."
-#: src/login/org.freedesktop.login1.policy:127
+#: src/login/org.freedesktop.login1.policy:138
msgid "Allow non-logged-in users to run programs"
msgstr "Oturum açmamış kullanıcıların program çalıştırmasına izin ver"
-#: src/login/org.freedesktop.login1.policy:128
+#: src/login/org.freedesktop.login1.policy:139
msgid "Authentication is required to run programs as a non-logged-in user."
msgstr ""
"Oturum açmamış bir kullanıcı olarak program çalıştırmak için kimlik "
"doğrulaması gereklidir."
-#: src/login/org.freedesktop.login1.policy:137
+#: src/login/org.freedesktop.login1.policy:148
msgid "Allow attaching devices to seats"
msgstr "Aygıtların yuvaya takılmasına izin ver"
-#: src/login/org.freedesktop.login1.policy:138
+#: src/login/org.freedesktop.login1.policy:149
msgid "Authentication is required to attach a device to a seat."
msgstr ""
"Bir aygıtın yuvaya takılmasına izin vermek kimlik doğrulaması gerektiriyor."
-#: src/login/org.freedesktop.login1.policy:148
+#: src/login/org.freedesktop.login1.policy:159
msgid "Flush device to seat attachments"
msgstr "Aygıtın yuvaya eklenmesini sıfırla"
-#: src/login/org.freedesktop.login1.policy:149
+#: src/login/org.freedesktop.login1.policy:160
msgid "Authentication is required to reset how devices are attached to seats."
msgstr ""
"Aygıtların yuvalara nasıl takıldığını sıfırlamak kimlik doğrulama "
"gerektiriyor."
-#: src/login/org.freedesktop.login1.policy:158
+#: src/login/org.freedesktop.login1.policy:169
msgid "Power off the system"
msgstr "Sistemi kapat"
-#: src/login/org.freedesktop.login1.policy:159
+#: src/login/org.freedesktop.login1.policy:170
msgid "Authentication is required to power off the system."
msgstr "Sistemi kapatmak için kimlik doğrulaması gerekiyor."
-#: src/login/org.freedesktop.login1.policy:169
+#: src/login/org.freedesktop.login1.policy:180
msgid "Power off the system while other users are logged in"
msgstr "Diğer kullanıcılar oturum açmışken sistemi kapat"
-#: src/login/org.freedesktop.login1.policy:170
+#: src/login/org.freedesktop.login1.policy:181
msgid ""
"Authentication is required to power off the system while other users are "
"logged in."
"Diğer kullanıcılar oturum açmışken sistemi kapatmak kimlik doğrulaması "
"gerektiriyor."
-#: src/login/org.freedesktop.login1.policy:180
+#: src/login/org.freedesktop.login1.policy:191
msgid "Power off the system while an application is inhibiting this"
msgstr "Bir uygulama engellenmesini isterken sistemi kapat"
-#: src/login/org.freedesktop.login1.policy:181
+#: src/login/org.freedesktop.login1.policy:192
msgid ""
"Authentication is required to power off the system while an application is "
"inhibiting this."
"Bir uygulama engellenmesini isterken sistemi kapatmak kimlik doğrulaması "
"gerektiriyor."
-#: src/login/org.freedesktop.login1.policy:191
+#: src/login/org.freedesktop.login1.policy:202
msgid "Reboot the system"
msgstr "Sistemi yeniden başlat"
-#: src/login/org.freedesktop.login1.policy:192
+#: src/login/org.freedesktop.login1.policy:203
msgid "Authentication is required to reboot the system."
msgstr "Sistemi yeniden başlatmak kimlik doğrulaması gerektiriyor."
-#: src/login/org.freedesktop.login1.policy:202
+#: src/login/org.freedesktop.login1.policy:213
msgid "Reboot the system while other users are logged in"
msgstr "Diğer kullanıcılar oturum açmışken sistemi yeniden başlat"
-#: src/login/org.freedesktop.login1.policy:203
+#: src/login/org.freedesktop.login1.policy:214
msgid ""
"Authentication is required to reboot the system while other users are logged "
"in."
"Diğer kullanıcılar oturum açmışken sistemi yeniden başlatmak kimlik "
"doğrulaması gerektiriyor."
-#: src/login/org.freedesktop.login1.policy:213
+#: src/login/org.freedesktop.login1.policy:224
msgid "Reboot the system while an application is inhibiting this"
msgstr "Bir uygulama engellenmesini isterken sistemi yeniden başlat"
-#: src/login/org.freedesktop.login1.policy:214
+#: src/login/org.freedesktop.login1.policy:225
msgid ""
"Authentication is required to reboot the system while an application is "
"inhibiting this."
"Bir uygulama engellenmesini isterken sistemi yeniden başlatmak kimlik "
"doğrulaması gerektiriyor."
-#: src/login/org.freedesktop.login1.policy:224
+#: src/login/org.freedesktop.login1.policy:235
msgid "Halt the system"
msgstr "Sistemi durdur"
-#: src/login/org.freedesktop.login1.policy:225
+#: src/login/org.freedesktop.login1.policy:236
msgid "Authentication is required to halt the system."
msgstr "Sistemi durdurmak kimlik doğrulaması gerektiriyor."
-#: src/login/org.freedesktop.login1.policy:235
+#: src/login/org.freedesktop.login1.policy:246
msgid "Halt the system while other users are logged in"
msgstr "Diğer kullanıcılar oturum açmışken sistemi durdur"
-#: src/login/org.freedesktop.login1.policy:236
+#: src/login/org.freedesktop.login1.policy:247
msgid ""
"Authentication is required to halt the system while other users are logged "
"in."
"Diğer kullanıcılar oturum açmışken sistemi durdurmak kimlik doğrulaması "
"gerektiriyor."
-#: src/login/org.freedesktop.login1.policy:246
+#: src/login/org.freedesktop.login1.policy:257
msgid "Halt the system while an application is inhibiting this"
msgstr "Bir uygulama engellenmesini isterken sistemi durdur"
-#: src/login/org.freedesktop.login1.policy:247
+#: src/login/org.freedesktop.login1.policy:258
#, fuzzy
#| msgid ""
#| "Authentication is required to hibernate the system while an application "
"Bir uygulama engellenmesini isterken sistemi hazırda bekletmek kimlik "
"doğrulaması gerektiriyor."
-#: src/login/org.freedesktop.login1.policy:257
+#: src/login/org.freedesktop.login1.policy:268
msgid "Suspend the system"
msgstr "Sistemi askıya al"
-#: src/login/org.freedesktop.login1.policy:258
+#: src/login/org.freedesktop.login1.policy:269
msgid "Authentication is required to suspend the system."
msgstr "Sistemi askıya almak kimlik doğrulaması gerektiriyor."
-#: src/login/org.freedesktop.login1.policy:267
+#: src/login/org.freedesktop.login1.policy:278
msgid "Suspend the system while other users are logged in"
msgstr "Diğer kullanıcılar oturum açmışken sistemi askıya al"
-#: src/login/org.freedesktop.login1.policy:268
+#: src/login/org.freedesktop.login1.policy:279
msgid ""
"Authentication is required to suspend the system while other users are "
"logged in."
"Diğer kullanıcılar oturum açmışken sistemi askıya almak kimlik doğrulaması "
"gerektiriyor."
-#: src/login/org.freedesktop.login1.policy:278
+#: src/login/org.freedesktop.login1.policy:289
msgid "Suspend the system while an application is inhibiting this"
msgstr "Bir uygulama engellenmesini isterken sistemi askıya al"
-#: src/login/org.freedesktop.login1.policy:279
+#: src/login/org.freedesktop.login1.policy:290
msgid ""
"Authentication is required to suspend the system while an application is "
"inhibiting this."
"Bir uygulama engellenmesini isterken sistemi askıya almak kimlik doğrulaması "
"gerektiriyor."
-#: src/login/org.freedesktop.login1.policy:289
+#: src/login/org.freedesktop.login1.policy:300
msgid "Hibernate the system"
msgstr "Sistemi hazırda beklet"
-#: src/login/org.freedesktop.login1.policy:290
+#: src/login/org.freedesktop.login1.policy:301
msgid "Authentication is required to hibernate the system."
msgstr "Sistemi hazırda bekletmek kimlik doğrulaması gerektiriyor."
-#: src/login/org.freedesktop.login1.policy:299
+#: src/login/org.freedesktop.login1.policy:310
msgid "Hibernate the system while other users are logged in"
msgstr "Diğer kullanıcılar oturum açmışken sistemi hazırda beklet"
-#: src/login/org.freedesktop.login1.policy:300
+#: src/login/org.freedesktop.login1.policy:311
msgid ""
"Authentication is required to hibernate the system while other users are "
"logged in."
"Diğer kullanıcılar oturum açmışken sistemi hazırda bekletmek kimlik "
"doğrulaması gerektiriyor."
-#: src/login/org.freedesktop.login1.policy:310
+#: src/login/org.freedesktop.login1.policy:321
msgid "Hibernate the system while an application is inhibiting this"
msgstr "Bir uygulama engellenmesini isterken sistemi hazırda beklet"
-#: src/login/org.freedesktop.login1.policy:311
+#: src/login/org.freedesktop.login1.policy:322
msgid ""
"Authentication is required to hibernate the system while an application is "
"inhibiting this."
"Bir uygulama engellenmesini isterken sistemi hazırda bekletmek kimlik "
"doğrulaması gerektiriyor."
-#: src/login/org.freedesktop.login1.policy:321
+#: src/login/org.freedesktop.login1.policy:332
msgid "Manage active sessions, users and seats"
msgstr "Aktif oturumları, kullanıcıları ve yuvaları yönet"
-#: src/login/org.freedesktop.login1.policy:322
+#: src/login/org.freedesktop.login1.policy:333
msgid "Authentication is required to manage active sessions, users and seats."
msgstr ""
"Aktif oturumları, kullanıcıları ve yuvaları yönetmek için kimlik doğrulaması "
"gereklidir."
-#: src/login/org.freedesktop.login1.policy:331
+#: src/login/org.freedesktop.login1.policy:342
msgid "Lock or unlock active sessions"
msgstr "Aktif oturumları kilitle ya da kilidini aç"
-#: src/login/org.freedesktop.login1.policy:332
+#: src/login/org.freedesktop.login1.policy:343
msgid "Authentication is required to lock or unlock active sessions."
msgstr ""
"Aktif oturumları kilitlemek ve bunların kilidini açmak için kimlik "
"doğrulaması gereklidir."
-#: src/login/org.freedesktop.login1.policy:341
+#: src/login/org.freedesktop.login1.policy:352
msgid "Set the reboot \"reason\" in the kernel"
msgstr ""
-#: src/login/org.freedesktop.login1.policy:342
+#: src/login/org.freedesktop.login1.policy:353
#, fuzzy
#| msgid "Authentication is required to set the system timezone."
msgid "Authentication is required to set the reboot \"reason\" in the kernel."
msgstr "Sistem zaman dilimini ayarlamak kimlik doğrulaması gerektiriyor."
-#: src/login/org.freedesktop.login1.policy:352
+#: src/login/org.freedesktop.login1.policy:363
#, fuzzy
#| msgid "Allow indication to the firmware to boot to setup interface"
msgid "Indicate to the firmware to boot to setup interface"
msgstr ""
"Kurulum arayüzünü önyüklemek için ürün yazılımının belirtilmesine izin ver"
-#: src/login/org.freedesktop.login1.policy:353
+#: src/login/org.freedesktop.login1.policy:364
msgid ""
"Authentication is required to indicate to the firmware to boot to setup "
"interface."
"Kurulum arayüzünü önyüklemek için ürün yazılımının belirtilmesi için kimlik "
"doğrulaması gereklidir."
-#: src/login/org.freedesktop.login1.policy:363
+#: src/login/org.freedesktop.login1.policy:374
msgid "Indicate to the boot loader to boot to the boot loader menu"
msgstr ""
-#: src/login/org.freedesktop.login1.policy:364
+#: src/login/org.freedesktop.login1.policy:375
#, fuzzy
#| msgid ""
#| "Authentication is required to indicate to the firmware to boot to setup "
"Kurulum arayüzünü önyüklemek için ürün yazılımının belirtilmesi için kimlik "
"doğrulaması gereklidir."
-#: src/login/org.freedesktop.login1.policy:374
+#: src/login/org.freedesktop.login1.policy:385
msgid "Indicate to the boot loader to boot a specific entry"
msgstr ""
-#: src/login/org.freedesktop.login1.policy:375
+#: src/login/org.freedesktop.login1.policy:386
#, fuzzy
#| msgid ""
#| "Authentication is required to indicate to the firmware to boot to setup "
"Kurulum arayüzünü önyüklemek için ürün yazılımının belirtilmesi için kimlik "
"doğrulaması gereklidir."
-#: src/login/org.freedesktop.login1.policy:385
+#: src/login/org.freedesktop.login1.policy:396
msgid "Set a wall message"
msgstr "Bir duvar mesajı ayarla"
-#: src/login/org.freedesktop.login1.policy:386
+#: src/login/org.freedesktop.login1.policy:397
msgid "Authentication is required to set a wall message"
msgstr "Duvar mesajı ayarlamak için kimlik doğrulaması gereklidir"
-#: src/login/org.freedesktop.login1.policy:395
+#: src/login/org.freedesktop.login1.policy:406
msgid "Change Session"
-msgstr ""
+msgstr "Oturumu Değiştir"
-#: src/login/org.freedesktop.login1.policy:396
-#, fuzzy
+#: src/login/org.freedesktop.login1.policy:407
#| msgid "Authentication is required to halt the system."
msgid "Authentication is required to change the virtual terminal."
-msgstr "Sistemi durdurmak kimlik doğrulaması gerektiriyor."
+msgstr "Sanal uçbirimi değiştirmek kimlik doğrulaması gerektirir."
#: src/machine/org.freedesktop.machine1.policy:22
msgid "Log into a local container"
#: src/network/org.freedesktop.network1.policy:22
msgid "Set NTP servers"
-msgstr ""
+msgstr "NTP sunucularını ayarla"
#: src/network/org.freedesktop.network1.policy:23
#, fuzzy
#: src/network/org.freedesktop.network1.policy:33
#: src/resolve/org.freedesktop.resolve1.policy:44
-#, fuzzy
#| msgid "Register a DNS-SD service"
msgid "Set DNS servers"
-msgstr "Bir DNS-SD hizmeti kaydet"
+msgstr "DNS sunucularını ayarla"
#: src/network/org.freedesktop.network1.policy:34
#: src/resolve/org.freedesktop.resolve1.policy:45
#: src/network/org.freedesktop.network1.policy:44
#: src/resolve/org.freedesktop.resolve1.policy:55
msgid "Set domains"
-msgstr ""
+msgstr "Etki alanlarını ayarla"
#: src/network/org.freedesktop.network1.policy:45
#: src/resolve/org.freedesktop.resolve1.policy:56
#: src/network/org.freedesktop.network1.policy:55
#: src/resolve/org.freedesktop.resolve1.policy:66
msgid "Set default route"
-msgstr ""
+msgstr "Öntanımlı rota belirle"
#: src/network/org.freedesktop.network1.policy:56
#: src/resolve/org.freedesktop.resolve1.policy:67
#: src/network/org.freedesktop.network1.policy:66
#: src/resolve/org.freedesktop.resolve1.policy:77
msgid "Enable/disable LLMNR"
-msgstr ""
+msgstr "LLMNR etkinleştir/devre dışı bırak"
#: src/network/org.freedesktop.network1.policy:67
#: src/resolve/org.freedesktop.resolve1.policy:78
#: src/network/org.freedesktop.network1.policy:154
msgid "Renew dynamic addresses"
-msgstr ""
+msgstr "Dinamik adresleri yenile"
#: src/network/org.freedesktop.network1.policy:155
#, fuzzy
#: src/network/org.freedesktop.network1.policy:165
msgid "Reload network settings"
-msgstr ""
+msgstr "Ağ ayarlarını yeniden yükle"
#: src/network/org.freedesktop.network1.policy:166
#, fuzzy
#: src/network/org.freedesktop.network1.policy:176
msgid "Reconfigure network interface"
-msgstr ""
+msgstr "Ağ arabirimini yeniden yapılandır"
#: src/network/org.freedesktop.network1.policy:177
#, fuzzy
"shall be enabled."
msgstr "Ağ zaman eş zamanlamasını denetlemek kimlik doğrulaması gerektiriyor."
-#: src/core/dbus-unit.c:362
+#: src/core/dbus-unit.c:359
msgid "Authentication is required to start '$(unit)'."
msgstr "'$(unit)' başlatmak için kimlik doğrulaması gereklidir."
-#: src/core/dbus-unit.c:363
+#: src/core/dbus-unit.c:360
msgid "Authentication is required to stop '$(unit)'."
msgstr "'$(unit)' durdurmak için kimlik doğrulaması gereklidir."
-#: src/core/dbus-unit.c:364
+#: src/core/dbus-unit.c:361
msgid "Authentication is required to reload '$(unit)'."
msgstr "'$(unit)' yeniden yüklemek için kimlik doğrulaması gereklidir."
-#: src/core/dbus-unit.c:365 src/core/dbus-unit.c:366
+#: src/core/dbus-unit.c:362 src/core/dbus-unit.c:363
msgid "Authentication is required to restart '$(unit)'."
msgstr "'$(unit)' yeniden başlatmak için kimlik doğrulaması gereklidir."
-#: src/core/dbus-unit.c:538
+#: src/core/dbus-unit.c:535
msgid ""
"Authentication is required to send a UNIX signal to the processes of "
"'$(unit)'."
"'$(unit)' süreçlerine bir UNIX sinyali göndermek için kimlik doğrulaması "
"gereklidir."
-#: src/core/dbus-unit.c:569
+#: src/core/dbus-unit.c:566
msgid "Authentication is required to reset the \"failed\" state of '$(unit)'."
msgstr ""
"'$(unit)'in \"failed\" (başarısız) durumunu sıfırlamak için kimlik "
"doğrulaması gereklidir."
-#: src/core/dbus-unit.c:602
+#: src/core/dbus-unit.c:599
msgid "Authentication is required to set properties on '$(unit)'."
msgstr ""
"'$(unit)' üzerindeki özellikleri ayarlamak için kimlik doğrulaması "
"gereklidir."
-#: src/core/dbus-unit.c:711
+#: src/core/dbus-unit.c:708
#, fuzzy
#| msgid ""
#| "Authentication is required to reset the \"failed\" state of '$(unit)'."
"'$(unit)'in \"failed\" (başarısız) durumunu sıfırlamak için kimlik "
"doğrulaması gereklidir."
-#: src/core/dbus-unit.c:760
+#: src/core/dbus-unit.c:757
#, fuzzy
#| msgid ""
#| "Authentication is required to send a UNIX signal to the processes of "
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
# Ukrainian translation for systemd.
# Eugene Melnik <jeka7js@gmail.com>, 2014.
# Daniel Korostil <ted.korostiled@gmail.com>, 2014, 2016, 2018.
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# Simplified Chinese translation for systemd.
#
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# Traditional Chinese translation for systemd.
# Jeff Huang <s8321414@gmail.com>, 2015, 2016.
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
install_data('90-systemd.preset',
install_dir : systempresetdir)
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
rules = files('''
60-autosuspend.rules
# bootctl(1) completion -*- shell-script -*-
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
# busctl(1) completion -*- shell-script -*-
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
# coredumpctl(1) completion -*- shell-script -*-
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
# hostctl(1) completion -*- shell-script -*-
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
# hostnamectl(1) completion -*- shell-script -*-
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
# journalctl(1) completion -*- shell-script -*-
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
# kernel-install(8) completion -*- shell-script -*-
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
# localectl(1) completion -*- shell-script -*-
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
# loginctl(1) completion -*- shell-script -*-
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
# machinectl(1) completion -*- shell-script -*-
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
bashcompletiondir = get_option('bashcompletiondir')
if bashcompletiondir == ''
# networkctl(1) completion -*- shell-script -*-
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
# portablectl(1) completion -*- shell-script -*-
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
# resolvectl(1) completion -*- shell-script -*-
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
# systemctl(1) completion -*- shell-script -*-
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
# systemd-analyze(1) completion -*- shell-script -*-
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
# systemd-cat(1) completion -*- shell-script -*-
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
# systemd-cgls(1) completion -*- shell-script -*-
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
# systemd-cgtop(1) completion -*- shell-script -*-
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
# systemd-delta(1) completion -*- shell-script -*-
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
# systemd-detect-virt(1) completion -*- shell-script -*-
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
# networkctl(1) completion -*- shell-script -*-
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
# systemd-nspawn(1) completion -*- shell-script -*-
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
# systemd-path(1) completion -*- shell-script -*-
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
# systemd-resolve(1) completion -*- shell-script -*-
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
# systemd-run(1) completion -*- shell-script -*-
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
# timedatectl(1) completion -*- shell-script -*-
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
# udevadm(8) completion -*- shell-script -*-
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
#compdef bootctl -*- shell-script -*-
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
__bootctl() {
bootctl --no-pager $@ 2>/dev/null
#compdef busctl -*- shell-script -*-
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
# busctl(1) completion -*- shell-script -*-
#
#compdef coredumpctl -*- shell-script -*-
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
(( $+functions[_coredumpctl_commands] )) ||
_coredumpctl_commands(){
#compdef hostnamectl -*- shell-script -*-
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
(( $+functions[_hostnamectl_set-hostname] )) ||
_hostnamectl_set-hostname() {
#compdef journalctl -*- shell-script -*-
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
(( $+functions[_journalctl_fields] )) ||
_journalctl_fields() {
#compdef kernel-install -*- shell-script -*-
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
(( $+functions[_kernel-install_images] )) ||
_kernel-install_images(){
#compdef localectl -*- shell-script -*-
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
(( $+functions[_localectl_set-locale] )) ||
_localectl_set-locale() {
#compdef loginctl -*- shell-script -*-
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
(( $+functions[_loginctl_all_sessions] )) ||
_loginctl_all_sessions() {
#compdef machinectl -*- shell-script -*-
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
(( $+functions[__machinectl_get_machines] )) ||
__machinectl_get_machines () {
#compdef networkctl -*- shell-script -*-
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
(( $+functions[_networkctl_commands] )) ||
_networkctl_commands() {
#compdef resolvectl systemd-resolve -*- shell-script -*-
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
#autoload
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
_alternative \
'users-hosts:: _user_at_host' \
#autoload
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
(( $+functions[__sd_machines_get_machines] )) ||
__sd_machines_get_machines () {
#autoload
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
local -a _output_opts
_output_opts=(short short-full short-iso short-iso-precise short-precise short-monotonic short-unix verbose export json json-pretty json-sse json-seq cat with-unit)
#autoload
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
_sd_unit_files() {
local files expl
#compdef systemctl -*- shell-script -*-
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
(( $+functions[_systemctl_commands] )) || _systemctl_commands()
{
#compdef systemd-cat systemd-ask-password systemd-cgls systemd-cgtop systemd-detect-virt systemd-machine-id-setup systemd-notify systemd-tty-ask-password-agent -*- shell-script -*-
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
local curcontext="$curcontext" state lstate line
case "$service" in
#compdef systemd-analyze -*- shell-script -*-
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
(( $+functions[_systemd-analyze_log-level] )) ||
_systemd-analyze_log-level() {
#compdef systemd-delta -*- shell-script -*-
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
(( $+functions[_systemd-delta_types] )) ||
_systemd-delta_types() {
#compdef systemd-inhibit -*- shell-script -*-
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
(( $+functions[_systemd-inhibit_commands] )) ||
_systemd-inhibit_commands(){
#compdef systemd-nspawn -*- shell-script -*-
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
(( $+functions[_systemd-nspawn_caps] )) ||
_systemd-nspawn_caps(){
#compdef systemd-run -*- shell-script -*-
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
# @todo _systemctl has a helper with the same name, so we must redefine
__systemctl() {
#compdef systemd-tmpfiles -*- shell-script -*-
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
_arguments \
{-h,--help}'[Show help]' \
#compdef timedatectl -*- shell-script -*-
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
_timedatectl_set-timezone(){
local -a _timezones
#compdef udevadm -*- shell-script -*-
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
(( $+functions[_udevadm_info] )) ||
_udevadm_info(){
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
zshcompletiondir = get_option('zshcompletiondir')
if zshcompletiondir == ''
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <getopt.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <getopt.h>
#include <sys/epoll.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <stdlib.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include "install.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <sys/utsname.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include "sd-bus.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <stdlib.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <stdbool.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
/***
Copyright © 2013 Simon Peeters
***/
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
systemd_analyze_sources = files('''
analyze.c
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include "analyze-verify.h"
#include "tests.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <errno.h>
#include <getopt.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <sys/stat.h>
#include <sys/types.h>
+/* SPDX-License-Identifier: LicenseRef-murmurhash2-public-domain */
//-----------------------------------------------------------------------------
// MurmurHash2 was written by Austin Appleby, and is placed in the public
// domain. The author hereby disclaims copyright to this source code.
+/* SPDX-License-Identifier: LicenseRef-murmurhash2-public-domain */
//-----------------------------------------------------------------------------
// MurmurHash2 was written by Austin Appleby, and is placed in the public
// domain. The author hereby disclaims copyright to this source code.
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <errno.h>
#include <string.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <sys/socket.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <malloc.h>
#include <stdint.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <alloca.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <sys/utsname.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <endian.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <errno.h>
#include <linux/if_arp.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
const char *arphrd_to_name(int id);
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <errno.h>
#include <pthread.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
int asynchronous_job(void* (*func)(void *p), void *arg);
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <errno.h>
#include <linux/netlink.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <stdbool.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <sys/file.h>
#include <unistd.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <sys/types.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <errno.h>
#include <fcntl.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <stdbool.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include "version.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <stdlib.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <stddef.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <errno.h>
#include <string.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <inttypes.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <errno.h>
#include <stdio.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <stdbool.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <errno.h>
#include <ftw.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <dirent.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <errno.h>
#include <fcntl.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <linux/fs.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <errno.h>
#include <stdarg.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include "macro.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <errno.h>
#include <fcntl.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <fcntl.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#define DEFAULT_TIMEOUT_USEC (90*USEC_PER_SEC)
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <errno.h>
#include <stdio.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <stddef.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <fcntl.h>
#include <sys/stat.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <dirent.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include "dlfcn-util.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <dlfcn.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <errno.h>
#include <fcntl.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#if !ENABLE_EFI
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include "alloc-util.h"
#include "env-file.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <stdarg.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <errno.h>
#include <limits.h>
DIGITS LETTERS \
"_"
-static bool printable_portable_character(char c) {
- /* POSIX.1-2008 specifies almost all ASCII characters as "portable". (Only DEL is excluded, and
- * additionally NUL and = are not allowed in variable names). We are stricter, and additionally
- * reject BEL, BS, HT, CR, LF, VT, FF and SPACE, i.e. all whitespace. */
-
- return c >= '!' && c <= '~';
-}
-
static bool env_name_is_valid_n(const char *e, size_t n) {
+ const char *p;
+
if (!e)
return false;
if (n <= 0)
return false;
+ if (e[0] >= '0' && e[0] <= '9')
+ return false;
+
/* POSIX says the overall size of the environment block cannot
* be > ARG_MAX, an individual assignment hence cannot be
* either. Discounting the equal sign and trailing NUL this
if (n > (size_t) sysconf(_SC_ARG_MAX) - 2)
return false;
- for (const char *p = e; p < e + n; p++)
- if (!printable_portable_character(*p) || *p == '=')
+ for (p = e; p < e + n; p++)
+ if (!strchr(VALID_BASH_ENV_NAME_CHARS, *p))
return false;
return true;
}
bool env_name_is_valid(const char *e) {
- if (!e)
- return false;
-
- return env_name_is_valid_n(e, strlen(e));
+ return env_name_is_valid_n(e, strlen_ptr(e));
}
bool env_value_is_valid(const char *e) {
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <stdbool.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <errno.h>
#include <string.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <stdbool.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <stdlib.h>
/* Hint #1: ENETUNREACH happens if we try to connect to "non-existing" special IP addresses, such as ::5.
*
* Hint #2: The kernel sends e.g., EHOSTUNREACH or ENONET to userspace in some ICMP error cases. See the
- * icmp_err_convert[] in net/ipv4/icmp.c in the kernel sources */
+ * icmp_err_convert[] in net/ipv4/icmp.c in the kernel sources.
+ *
+ * Hint #3: When asynchronous connect() on TCP fails because the host never acknowledges a single packet,
+ * kernel tells us that with ETIMEDOUT, see tcp(7). */
static inline bool ERRNO_IS_DISCONNECT(int r) {
return IN_SET(abs(r),
ECONNABORTED,
ENOTCONN,
EPIPE,
EPROTO,
- ESHUTDOWN);
+ ESHUTDOWN,
+ ETIMEDOUT);
}
/* Transient errors we might get on accept() that we should ignore. As per error handling comment in
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <errno.h>
#include <stdlib.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <inttypes.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <errno.h>
+#include <inttypes.h>
#include <net/ethernet.h>
#include <stdio.h>
#include <sys/types.h>
#include "macro.h"
#include "string-util.h"
+char* hw_addr_to_string(const hw_addr_data *addr, char buffer[HW_ADDR_TO_STRING_MAX]) {
+ assert(addr);
+ assert(buffer);
+ assert(addr->length <= HW_ADDR_MAX_SIZE);
+
+ for (size_t i = 0; i < addr->length; i++) {
+ sprintf(&buffer[3*i], "%02"PRIx8, addr->addr.bytes[i]);
+ if (i < addr->length - 1)
+ buffer[3*i + 2] = ':';
+ }
+
+ return buffer;
+}
+
char* ether_addr_to_string(const struct ether_addr *addr, char buffer[ETHER_ADDR_TO_STRING_MAX]) {
assert(addr);
assert(buffer);
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
+#include <linux/if_infiniband.h>
#include <net/ethernet.h>
#include <stdbool.h>
#include "hash-funcs.h"
+/* This is MAX_ADDR_LEN as defined in linux/netdevice.h, but net/if_arp.h
+ * defines a macro of the same name with a much lower size. */
+#define HW_ADDR_MAX_SIZE 32
+
+union hw_addr_union {
+ struct ether_addr ether;
+ uint8_t infiniband[INFINIBAND_ALEN];
+ uint8_t bytes[HW_ADDR_MAX_SIZE];
+};
+
+typedef struct hw_addr_data {
+ union hw_addr_union addr;
+ size_t length;
+} hw_addr_data;
+
+#define HW_ADDR_TO_STRING_MAX (3*HW_ADDR_MAX_SIZE)
+char* hw_addr_to_string(const hw_addr_data *addr, char buffer[HW_ADDR_TO_STRING_MAX]);
+
+/* Use only as function argument, never stand-alone! */
+#define HW_ADDR_TO_STR(hw_addr) hw_addr_to_string((hw_addr), (char[HW_ADDR_TO_STRING_MAX]){})
+
+#define HW_ADDR_NULL ((const hw_addr_data){})
+
#define ETHER_ADDR_FORMAT_STR "%02X%02X%02X%02X%02X%02X"
#define ETHER_ADDR_FORMAT_VAL(x) (x).ether_addr_octet[0], (x).ether_addr_octet[1], (x).ether_addr_octet[2], (x).ether_addr_octet[3], (x).ether_addr_octet[4], (x).ether_addr_octet[5]
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <errno.h>
#include <stdarg.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include "macro.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <errno.h>
#include <fcntl.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <dirent.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <ctype.h>
#include <errno.h>
return r;
}
-int read_full_file_full(int dir_fd, const char *filename, ReadFullFileFlags flags, char **contents, size_t *size) {
+int read_full_file_full(
+ int dir_fd,
+ const char *filename,
+ ReadFullFileFlags flags,
+ const char *bind_name,
+ char **contents, size_t *size) {
+
_cleanup_fclose_ FILE *f = NULL;
int r;
if (sk < 0)
return -errno;
+ if (bind_name) {
+ /* If the caller specified a socket name to bind to, do so before connecting. This is
+ * useful to communicate some minor, short meta-information token from the client to
+ * the server. */
+ union sockaddr_union bsa;
+
+ r = sockaddr_un_set_path(&bsa.un, bind_name);
+ if (r < 0)
+ return r;
+
+ if (bind(sk, &bsa.sa, r) < 0)
+ return r;
+ }
+
if (connect(sk, &sa.sa, SOCKADDR_UN_LEN(sa.un)) < 0)
return errno == ENOTSOCK ? -ENXIO : -errno; /* propagate original error if this is
* not a socket after all */
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <dirent.h>
int write_string_filef(const char *fn, WriteStringFileFlags flags, const char *format, ...) _printf_(3, 4);
int read_one_line_file(const char *filename, char **line);
-int read_full_file_full(int dir_fd, const char *filename, ReadFullFileFlags flags, char **contents, size_t *size);
+int read_full_file_full(int dir_fd, const char *filename, ReadFullFileFlags flags, const char *bind_name, char **contents, size_t *size);
static inline int read_full_file(const char *filename, char **contents, size_t *size) {
- return read_full_file_full(AT_FDCWD, filename, 0, contents, size);
+ return read_full_file_full(AT_FDCWD, filename, 0, NULL, contents, size);
}
int read_full_virtual_file(const char *filename, char **ret_contents, size_t *ret_size);
int read_full_stream_full(FILE *f, const char *filename, ReadFullFileFlags flags, char **contents, size_t *size);
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include "format-util.h"
#include "memory-util.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <inttypes.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <errno.h>
#include <stddef.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <dirent.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#if HAVE_GCRYPT
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <errno.h>
#include <sys/types.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <glob.h>
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
/* gunicode.c - Unicode manipulation functions
*
* Copyright (C) 1999, 2000 Tom Tromey
-#pragma once
-
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
/* gunicode.h - Unicode manipulation functions
*
* Copyright (C) 1999, 2000 Tom Tromey
* Copyright © 2000, 2005 Red Hat, Inc.
*/
+#pragma once
#include <stdbool.h>
#include <stdint.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <string.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include "alloc-util.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <errno.h>
#include <pthread.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <limits.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <ctype.h>
#include <errno.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <stdbool.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <errno.h>
#include <limits.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <stdbool.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <arpa/inet.h>
#include <endian.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <netinet/in.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <errno.h>
#include <limits.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <stdbool.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <ftw.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <stdbool.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <linux/if_alg.h>
#include <stdbool.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <inttypes.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <errno.h>
#include <sys/stat.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <stdbool.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include "alloc-util.h"
#include "cgroup-util.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <inttypes.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include "macro.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <errno.h>
#include <fcntl.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <libintl.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <errno.h>
#include <fcntl.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <stdarg.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include "login-util.h"
#include "string-util.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <stdbool.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <assert.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <errno.h>
#include <sys/stat.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <inttypes.h>
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
+
#include <unistd.h>
#include "memory-util.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <inttypes.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <stdint.h>
#include <stdlib.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <stdbool.h>
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
basic_sources = files('''
MurmurHash2.c
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <linux/audit.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <linux/capability.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#ifndef DRM_IOCTL_SET_MASTER
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <fcntl.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
/* linux/fs.h */
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <linux/input.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <linux/keyctl.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <linux/loop.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <linux/magic.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <sys/mman.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
/* linux/in6.h or netinet/in.h */
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <linux/prctl.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#if USE_SYS_RANDOM_H
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <sys/resource.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <sched.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <sys/socket.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <linux/types.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <stdlib.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
/* Missing glibc definitions to access certain kernel APIs */
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <sys/timerfd.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <uchar.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
/* This is currently not exported in the public kernel headers, but the libxfs library code part of xfsprogs
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <stdio.h>
#include <sys/stat.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <errno.h>
#include <stdbool.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <sys/types.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <errno.h>
#include <fcntl.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <fcntl.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <fcntl.h>
#include <sys/ioctl.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <sys/types.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <grp.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include "nulstr-util.h"
#include "string-util.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <stdbool.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include "fileio.h"
#include "ordered-set.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <stdio.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <errno.h>
#include <inttypes.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <inttypes.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <errno.h>
#include <stdio.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <stdbool.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <errno.h>
#include <limits.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <alloca.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
/*
* Priority Queue
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <stdbool.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <stdbool.h>
#include <stddef.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <stdbool.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <ctype.h>
#include <errno.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <errno.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <errno.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <inttypes.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <pthread.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <sys/quota.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <inttypes.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#if defined(__i386__) || defined(__x86_64__)
#include <cpuid.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <stdbool.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <sys/time.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <stdbool.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
/***
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <linux/reboot.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <errno.h>
#include <stddef.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
char *replace_var(const char *text, char *(*lookup)(const char *variable, void *userdata), void *userdata);
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <errno.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <sys/resource.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <errno.h>
#include <fcntl.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <sys/stat.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <errno.h>
#include <fcntl.h>
int mac_selinux_init(void) {
#if HAVE_SELINUX
int r;
+ bool have_status_page = false;
if (initialized)
return 0;
if (!mac_selinux_use())
return 0;
- r = selinux_status_open(/* no netlink fallback */ 0);
- if (r < 0)
- return log_enforcing_errno(errno, "Failed to open SELinux status page: %m");
+ r = selinux_status_open(/* netlink fallback */ 1);
+ if (r < 0) {
+ if (!ERRNO_IS_PRIVILEGE(errno))
+ return log_enforcing_errno(errno, "Failed to open SELinux status page: %m");
+ log_warning_errno(errno, "selinux_status_open() with netlink fallback failed, not checking for policy reloads: %m");
+ } else if (r == 1)
+ log_warning("selinux_status_open() failed to open the status page, using the netlink fallback.");
+ else
+ have_status_page = true;
r = open_label_db();
if (r < 0) {
return r;
}
- /* save the current policyload sequence number, so `mac_selinux_maybe_reload()` does
- not trigger on first call without any actual change */
+ /* Save the current policyload sequence number, so mac_selinux_maybe_reload() does not trigger on
+ * first call without any actual change. */
last_policyload = selinux_status_policyload();
- /* now that the SELinux status page has been successfully opened,
- retrieve the enforcing status over it (to avoid system calls in `security_getenforce()`) */
- enforcing_status_func = selinux_status_getenforce;
+ if (have_status_page)
+ /* Now that the SELinux status page has been successfully opened, retrieve the enforcing
+ * status over it (to avoid system calls in security_getenforce()). */
+ enforcing_status_func = selinux_status_getenforce;
initialized = true;
#endif
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <stdbool.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include "extract-word.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <errno.h>
#include <signal.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
void sigbus_install(void);
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <errno.h>
#include <stdarg.h>
int r = 0;
/* negative signal ends the list. 0 signal is skipped. */
-
- if (sig < 0)
- return 0;
-
- if (sig > 0) {
- if (sigaction(sig, sa, NULL) < 0)
- r = -errno;
- }
-
- while ((sig = va_arg(ap, int)) >= 0) {
+ for (; sig >= 0; sig = va_arg(ap, int)) {
if (sig == 0)
continue;
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <signal.h>
+/* SPDX-License-Identifier: CC0-1.0 */
+
/*
SipHash reference C implementation
worldwide. This software is distributed without any warranty.
You should have received a copy of the CC0 Public Domain Dedication along with
- this software. If not, see <http://creativecommons.org/publicdomain/zero/1.0/>.
+ this software. If not, see <https://creativecommons.org/publicdomain/zero/1.0/>.
(Minimal changes made by Lennart Poettering, to make clean for inclusion in systemd)
(Refactored by Tom Gundersen to split up in several functions and follow systemd
+/* SPDX-License-Identifier: CC0-1.0 */
+
#pragma once
#include <inttypes.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
/***
Copyright © 2013 Intel Corporation
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
/***
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <errno.h>
#include <netinet/in.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <arpa/inet.h>
#include <errno.h>
case AF_NETLINK:
return setsockopt_int(fd, SOL_NETLINK, NETLINK_PKTINFO, b);
+ case AF_PACKET:
+ return setsockopt_int(fd, SOL_PACKET, PACKET_AUXDATA, b);
+
default:
return -EAFNOSUPPORT;
}
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <inttypes.h>
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
+
#include "sort-util.h"
#include "alloc-util.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <stdlib.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#define SPECIAL_DEFAULT_TARGET "default.target"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <errno.h>
#include <fcntl.h>
return a && b &&
(a->st_mode & S_IFMT) != 0 && /* We use the check for .st_mode if the structure was ever initialized */
((a->st_mode ^ b->st_mode) & S_IFMT) == 0 && /* same inode type */
- a->st_mtime == b->st_mtime &&
+ a->st_mtim.tv_sec == b->st_mtim.tv_sec &&
+ a->st_mtim.tv_nsec == b->st_mtim.tv_nsec &&
(!S_ISREG(a->st_mode) || a->st_size == b->st_size) && /* if regular file, compare file size */
a->st_dev == b->st_dev &&
a->st_ino == b->st_ino &&
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <fcntl.h>
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
+
#pragma once
#include "alloc-util.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <printf.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <errno.h>
#include <stdlib.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <stddef.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include "string-table.h"
#include "string-util.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <errno.h>
#include <stdarg.h>
char *strjoin_real(const char *x, ...) {
va_list ap;
- size_t l;
+ size_t l = 1;
char *r, *p;
va_start(ap, x);
+ for (const char *t = x; t; t = va_arg(ap, const char *)) {
+ size_t n;
- if (x) {
- l = strlen(x);
-
- for (;;) {
- const char *t;
- size_t n;
-
- t = va_arg(ap, const char *);
- if (!t)
- break;
-
- n = strlen(t);
- if (n > ((size_t) -1) - l) {
- va_end(ap);
- return NULL;
- }
-
- l += n;
+ n = strlen(t);
+ if (n > SIZE_MAX - l) {
+ va_end(ap);
+ return NULL;
}
- } else
- l = 0;
-
+ l += n;
+ }
va_end(ap);
- r = new(char, l+1);
+ p = r = new(char, l);
if (!r)
return NULL;
- if (x) {
- p = stpcpy(r, x);
-
- va_start(ap, x);
-
- for (;;) {
- const char *t;
-
- t = va_arg(ap, const char *);
- if (!t)
- break;
-
- p = stpcpy(p, t);
- }
+ va_start(ap, x);
+ for (const char *t = x; t; t = va_arg(ap, const char *))
+ p = stpcpy(p, t);
+ va_end(ap);
- va_end(ap);
- } else
- r[0] = 0;
+ *p = 0;
return r;
}
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <stdbool.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <errno.h>
#include <fnmatch.h>
}
char **strv_new_ap(const char *x, va_list ap) {
- const char *s;
_cleanup_strv_free_ char **a = NULL;
size_t n = 0, i = 0;
va_list aq;
* STRV_IFNOTNULL() macro to include possibly NULL strings in
* the string list. */
- if (x) {
- n = x == STRV_IGNORE ? 0 : 1;
-
- va_copy(aq, ap);
- while ((s = va_arg(aq, const char*))) {
- if (s == STRV_IGNORE)
- continue;
-
- n++;
- }
+ va_copy(aq, ap);
+ for (const char *s = x; s; s = va_arg(aq, const char*)) {
+ if (s == STRV_IGNORE)
+ continue;
- va_end(aq);
+ n++;
}
+ va_end(aq);
a = new(char*, n+1);
if (!a)
return NULL;
- if (x) {
- if (x != STRV_IGNORE) {
- a[i] = strdup(x);
- if (!a[i])
- return NULL;
- i++;
- }
-
- while ((s = va_arg(ap, const char*))) {
-
- if (s == STRV_IGNORE)
- continue;
+ for (const char *s = x; s; s = va_arg(ap, const char*)) {
+ if (s == STRV_IGNORE)
+ continue;
- a[i] = strdup(s);
- if (!a[i])
- return NULL;
+ a[i] = strdup(s);
+ if (!a[i])
+ return NULL;
- i++;
- }
+ i++;
}
a[i] = NULL;
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <fnmatch.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
/*
* Concatenates/copies strings. In any case, terminates in all cases
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <stddef.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <syslog.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <stdbool.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <errno.h>
#include <fcntl.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <stdarg.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <ctype.h>
#include <errno.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <inttypes.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <sys/mman.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <stdio.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <stdbool.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <endian.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include "alloc-util.h"
#include "bus-label.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <stdbool.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <errno.h>
#include <stddef.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <stdbool.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <errno.h>
#include <fcntl.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <grp.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
/* Parts of this file are based on the GLIB utf8 validation functions. The
* original license text follows. */
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <stdbool.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <errno.h>
#include <fcntl.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <stdint.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#if defined(__i386__) || defined(__x86_64__)
#include <cpuid.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <stdbool.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <errno.h>
#include <fcntl.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <stdbool.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <errno.h>
#include <getopt.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <errno.h>
#include <sys/stat.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <getopt.h>
#include <stdlib.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <errno.h>
#include <getopt.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <ctype.h>
#include <errno.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <efi.h>
#include <efigpt.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <efi.h>
#include <efilib.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#define EFI_SHIFT_STATE_VALID 0x80000000
+/* SPDX-License-Identifier: LicenseRef-crc32-no-restriction */
/* This is copied from util-linux, which in turn copied in the version from Gary S. Brown */
/*
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LicenseRef-crc32-no-restriction */
#pragma once
#include <efi.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <efi.h>
#include <efilib.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
EFI_STATUS disk_get_part_uuid(EFI_HANDLE *handle, CHAR16 uuid[static 37]);
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
/*
* Copyright © 2013 Intel Corporation
* Authored by Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
/*
* Copyright © 2013 Intel Corporation
* Authored by Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <efi.h>
#include <efilib.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#define SETUP_MAGIC 0x53726448 /* "HdrS" */
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#ifndef UINT64_C
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#if ENABLE_TPM
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
EFI_STATUS tpm_log_event(UINT32 pcrindex, const EFI_PHYSICAL_ADDRESS buffer, UINTN buffer_size, const CHAR16 *description);
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
efi_headers = files('''
console.h
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <efi.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <efi.h>
#include <efilib.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
EFI_STATUS pe_memory_locate_sections(CHAR8 *base,
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
+
#include <efi.h>
#include <efilib.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <efi.h>
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
+
/* Stolen from glibc and converted to UEFI style. In glibc it comes with the following copyright blurb: */
/* Functions to compute SHA256 message digest of files or memory blocks.
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <efi.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
/*
* Port to systemd-boot
* Copyright © 2017 Max Resch <resch.max@gmail.com>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
/*
* Port to systemd-boot
* Copyright © 2017 Max Resch <resch.max@gmail.com>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <efi.h>
#include <efilib.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
EFI_STATUS graphics_splash(UINT8 *content, UINTN len, const EFI_GRAPHICS_OUTPUT_BLT_PIXEL *background);
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <efi.h>
#include <efilib.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <efi.h>
#include <efilib.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <efi.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include "sd-bus.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <stdbool.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <getopt.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <errno.h>
#include <getopt.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <stdlib.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <errno.h>
#include <getopt.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include "unit.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <errno.h>
#if HAVE_APPARMOR
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
int mac_apparmor_setup(void);
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <errno.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
int get_audit_fd(void);
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <errno.h>
#include <fcntl.h>
assert(a);
assert(fd == a->pipe_fd);
+ if (events & (EPOLLHUP|EPOLLERR)) {
+ log_unit_error(UNIT(a), "Got hangup/error on autofs pipe from kernel. Likely our automount point has been unmounted by someone or something else?");
+ automount_enter_dead(a, AUTOMOUNT_FAILURE_UNMOUNTED);
+ return 0;
+ }
+
if (events != EPOLLIN) {
log_unit_error(UNIT(a), "Got invalid poll event %"PRIu32" on pipe (fd=%d)", events, fd);
goto fail;
if (packet.v5_packet.pid > 0) {
_cleanup_free_ char *p = NULL;
- get_process_comm(packet.v5_packet.pid, &p);
+ (void) get_process_comm(packet.v5_packet.pid, &p);
log_unit_info(UNIT(a), "Got automount request for %s, triggered by %"PRIu32" (%s)", a->where, packet.v5_packet.pid, strna(p));
} else
log_unit_debug(UNIT(a), "Got direct mount request on %s", a->where);
[AUTOMOUNT_FAILURE_RESOURCES] = "resources",
[AUTOMOUNT_FAILURE_START_LIMIT_HIT] = "start-limit-hit",
[AUTOMOUNT_FAILURE_MOUNT_START_LIMIT_HIT] = "mount-start-limit-hit",
+ [AUTOMOUNT_FAILURE_UNMOUNTED] = "unmounted",
};
DEFINE_STRING_TABLE_LOOKUP(automount_result, AutomountResult);
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
typedef struct Automount Automount;
typedef enum AutomountResult {
AUTOMOUNT_SUCCESS,
AUTOMOUNT_FAILURE_RESOURCES,
+ AUTOMOUNT_FAILURE_UNMOUNTED,
AUTOMOUNT_FAILURE_START_LIMIT_HIT,
AUTOMOUNT_FAILURE_MOUNT_START_LIMIT_HIT,
_AUTOMOUNT_RESULT_MAX,
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <fnmatch.h>
#include <linux/bpf_insn.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <inttypes.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <arpa/inet.h>
#include <assert.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <inttypes.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <fcntl.h>
}
}
+bool unit_maybe_release_cgroup(Unit *u) {
+ int r;
+
+ assert(u);
+
+ if (!u->cgroup_path)
+ return true;
+
+ /* Don't release the cgroup if there are still processes under it. If we get notified later when all the
+ * processes exit (e.g. the processes were in D-state and exited after the unit was marked as failed)
+ * we need the cgroup paths to continue to be tracked by the manager so they can be looked up and cleaned
+ * up later. */
+ r = cg_is_empty_recursive(SYSTEMD_CGROUP_CONTROLLER, u->cgroup_path);
+ if (r < 0)
+ log_unit_debug_errno(u, r, "Error checking if the cgroup is recursively empty, ignoring: %m");
+ else if (r == 1) {
+ unit_release_cgroup(u);
+ return true;
+ }
+
+ return false;
+}
+
void unit_prune_cgroup(Unit *u) {
int r;
bool is_root_slice;
if (is_root_slice)
return;
- unit_release_cgroup(u);
+ if (!unit_maybe_release_cgroup(u)) /* Returns true if the cgroup was released */
+ return;
u->cgroup_realized = false;
u->cgroup_realized_mask = 0;
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <stdbool.h>
int unit_pick_cgroup_path(Unit *u);
int unit_realize_cgroup(Unit *u);
-void unit_release_cgroup(Unit *u);
void unit_prune_cgroup(Unit *u);
int unit_watch_cgroup(Unit *u);
int unit_watch_cgroup_memory(Unit *u);
+void unit_release_cgroup(Unit *u);
+/* Releases the cgroup only if it is recursively empty.
+ * Returns true if the cgroup was released, false otherwise. */
+bool unit_maybe_release_cgroup(Unit *u);
+
void unit_add_to_cgroup_empty_queue(Unit *u);
int unit_check_oomd_kill(Unit *u);
int unit_check_oom(Unit *u);
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include "core-varlink.h"
#include "mkdir.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include "manager.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include "automount.h"
#include "bus-get-properties.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include "sd-bus.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <arpa/inet.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include "sd-bus.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include "dbus-device.h"
#include "device.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include "sd-bus-vtable.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <sys/mount.h>
#include <sys/prctl.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include "sd-bus.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include "sd-bus.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include "sd-bus.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include "bus-get-properties.h"
#include "dbus-kill.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include "sd-bus.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <errno.h>
#include <sys/prctl.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include "sd-bus-vtable.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include "bus-get-properties.h"
#include "dbus-cgroup.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include "sd-bus.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include "alloc-util.h"
#include "bus-get-properties.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include "sd-bus.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include "alloc-util.h"
#include "bus-common-errors.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include "sd-bus.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <fcntl.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include "sd-bus.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include "dbus-cgroup.h"
#include "dbus-slice.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include "sd-bus.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include "alloc-util.h"
#include "bus-get-properties.h"
static BUS_DEFINE_PROPERTY_GET_ENUM(property_get_result, socket_result, SocketResult);
static BUS_DEFINE_PROPERTY_GET_ENUM(property_get_bind_ipv6_only, socket_address_bind_ipv6_only, SocketAddressBindIPv6Only);
static BUS_DEFINE_PROPERTY_GET(property_get_fdname, "s", Socket, socket_fdname);
+static BUS_DEFINE_PROPERTY_GET_ENUM(property_get_timestamping, socket_timestamping, SocketTimestamping);
static int property_get_listen(
sd_bus *bus,
SD_BUS_PROPERTY("PassCredentials", "b", bus_property_get_bool, offsetof(Socket, pass_cred), SD_BUS_VTABLE_PROPERTY_CONST),
SD_BUS_PROPERTY("PassSecurity", "b", bus_property_get_bool, offsetof(Socket, pass_sec), SD_BUS_VTABLE_PROPERTY_CONST),
SD_BUS_PROPERTY("PassPacketInfo", "b", bus_property_get_bool, offsetof(Socket, pass_pktinfo), SD_BUS_VTABLE_PROPERTY_CONST),
+ SD_BUS_PROPERTY("Timestamping", "s", property_get_timestamping, offsetof(Socket, timestamping), SD_BUS_VTABLE_PROPERTY_CONST),
SD_BUS_PROPERTY("RemoveOnStop", "b", bus_property_get_bool, offsetof(Socket, remove_on_stop), SD_BUS_VTABLE_PROPERTY_CONST),
SD_BUS_PROPERTY("Listen", "a(ss)", property_get_listen, 0, SD_BUS_VTABLE_PROPERTY_CONST),
SD_BUS_PROPERTY("Symlinks", "as", NULL, offsetof(Socket, symlinks), SD_BUS_VTABLE_PROPERTY_CONST),
static BUS_DEFINE_SET_TRANSIENT_STRING_WITH_CHECK(ifname, ifname_valid);
static BUS_DEFINE_SET_TRANSIENT_TO_STRING_ALLOC(ip_tos, "i", int32_t, int, "%" PRIi32, ip_tos_to_string_alloc);
static BUS_DEFINE_SET_TRANSIENT_TO_STRING(socket_protocol, "i", int32_t, int, "%" PRIi32, socket_protocol_to_string);
+static BUS_DEFINE_SET_TRANSIENT_PARSE(socket_timestamping, SocketTimestamping, socket_timestamping_from_string_harder);
static int bus_socket_set_transient_property(
Socket *s,
if (streq(name, "PassPacketInfo"))
return bus_set_transient_bool(u, name, &s->pass_pktinfo, message, flags, error);
+ if (streq(name, "Timestamping"))
+ return bus_set_transient_socket_timestamping(u, name, &s->timestamping, message, flags, error);
+
if (streq(name, "ReusePort"))
return bus_set_transient_bool(u, name, &s->reuse_port, message, flags, error);
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include "sd-bus.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
/***
Copyright © 2010 Maarten Lankhorst
***/
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
/***
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include "dbus-target.h"
#include "unit.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include "sd-bus-vtable.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include "alloc-util.h"
#include "bus-get-properties.h"
SD_BUS_PROPERTY("Result", "s", property_get_result, offsetof(Timer, result), SD_BUS_VTABLE_PROPERTY_EMITS_CHANGE),
SD_BUS_PROPERTY("AccuracyUSec", "t", bus_property_get_usec, offsetof(Timer, accuracy_usec), SD_BUS_VTABLE_PROPERTY_CONST),
SD_BUS_PROPERTY("RandomizedDelayUSec", "t", bus_property_get_usec, offsetof(Timer, random_usec), SD_BUS_VTABLE_PROPERTY_CONST),
+ SD_BUS_PROPERTY("FixedRandomDelay", "b", bus_property_get_bool, offsetof(Timer, fixed_random_delay), SD_BUS_VTABLE_PROPERTY_CONST),
SD_BUS_PROPERTY("Persistent", "b", bus_property_get_bool, offsetof(Timer, persistent), SD_BUS_VTABLE_PROPERTY_CONST),
SD_BUS_PROPERTY("WakeSystem", "b", bus_property_get_bool, offsetof(Timer, wake_system), SD_BUS_VTABLE_PROPERTY_CONST),
SD_BUS_PROPERTY("RemainAfterElapse", "b", bus_property_get_bool, offsetof(Timer, remain_after_elapse), SD_BUS_VTABLE_PROPERTY_CONST),
if (streq(name, "RandomizedDelayUSec"))
return bus_set_transient_usec(u, name, &t->random_usec, message, flags, error);
+ if (streq(name, "FixedRandomDelay"))
+ return bus_set_transient_bool(u, name, &t->fixed_random_delay, message, flags, error);
+
if (streq(name, "WakeSystem"))
return bus_set_transient_bool(u, name, &t->wake_system, message, flags, error);
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include "sd-bus.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include "sd-bus.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include "sd-bus.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include "bus-util.h"
#include "dbus-util.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include "sd-bus.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <errno.h>
#include <sys/epoll.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include "sd-bus.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <errno.h>
#include <sys/epoll.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include "unit.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <sys/file.h>
#include <sys/stat.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
typedef struct DynamicUser DynamicUser;
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <fcntl.h>
#include <unistd.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
int efi_take_random_seed(void);
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <sys/reboot.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
typedef enum EmergencyAction {
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <errno.h>
#include <fcntl.h>
#include "parse-util.h"
#include "path-util.h"
#include "process-util.h"
+#include "random-util.h"
#include "rlimit-util.h"
#include "rm-rf.h"
#if HAVE_SECCOMP
static int acquire_credentials(
const ExecContext *context,
const ExecParameters *params,
+ const char *unit,
const char *p,
uid_t uid,
bool ownership_ok) {
STRV_FOREACH_PAIR(id, fn, context->load_credentials) {
ReadFullFileFlags flags = READ_FULL_FILE_SECURE;
_cleanup_(erase_and_freep) char *data = NULL;
- _cleanup_free_ char *j = NULL;
+ _cleanup_free_ char *j = NULL, *bindname = NULL;
const char *source;
size_t size, add;
/* If this is an absolute path, read the data directly from it, and support AF_UNIX sockets */
source = *fn;
flags |= READ_FULL_FILE_CONNECT_SOCKET;
+
+ /* Pass some minimal info about the unit and the credential name we are looking to acquire
+ * via the source socket address in case we read off an AF_UNIX socket. */
+ if (asprintf(&bindname, "@%" PRIx64"/unit/%s/%s", random_u64(), unit, *id) < 0)
+ return -ENOMEM;
+
} else if (params->received_credentials) {
/* If this is a relative path, take it relative to the credentials we received
* ourselves. We don't support the AF_UNIX stuff in this mode, since we are operating
} else
source = NULL;
+
if (source)
- r = read_full_file_full(AT_FDCWD, source, flags, &data, &size);
+ r = read_full_file_full(AT_FDCWD, source, flags, bindname, &data, &size);
else
r = -ENOENT;
if (r == -ENOENT &&
static int setup_credentials_internal(
const ExecContext *context,
const ExecParameters *params,
+ const char *unit,
const char *final, /* This is where the credential store shall eventually end up at */
const char *workspace, /* This is where we can prepare it before moving it to the final place */
bool reuse_workspace, /* Whether to reuse any existing workspace mount if it already is a mount */
assert(!must_mount || workspace_mounted > 0);
where = workspace_mounted ? workspace : final;
- r = acquire_credentials(context, params, where, uid, workspace_mounted);
+ r = acquire_credentials(context, params, unit, where, uid, workspace_mounted);
if (r < 0)
return r;
r = setup_credentials_internal(
context,
params,
+ unit,
p, /* final mount point */
u, /* temporary workspace to overmount */
true, /* reuse the workspace if it is already a mount */
r = setup_credentials_internal(
context,
params,
+ unit,
p, /* final mount point */
"/dev/shm", /* temporary workspace to overmount */
false, /* do not reuse /dev/shm if it is already a mount, under no circumstances */
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
typedef struct ExecStatus ExecStatus;
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <unistd.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include "path-lookup.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <errno.h>
#include <stdio.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
int hostname_setup(void);
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
/***
Copyright © 2012 Roberto Sassu - Politecnico di Torino, Italy
TORSEC group — http://security.polito.it
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
/***
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <stdio.h>
#include <stdlib.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include "conf-parser.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <errno.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <stdbool.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include "kill.h"
#include "signal-util.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
typedef struct KillContext KillContext;
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
/***
Copyright © 2010 ProFUSION embedded systems
***/
if (sig == SIGKILL) {
_cleanup_free_ char *s = NULL;
- get_process_comm(pid, &s);
+ (void) get_process_comm(pid, &s);
log_notice("Sending SIGKILL to PID "PID_FMT" (%s).", pid, strna(s));
}
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include "time-util.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <ftw.h>
#include <unistd.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
int kmod_setup(void);
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include "conf-parser.h"
#include "fs-util.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include "dropin.h"
Socket.PassCredentials, config_parse_bool, 0, offsetof(Socket, pass_cred)
Socket.PassSecurity, config_parse_bool, 0, offsetof(Socket, pass_sec)
Socket.PassPacketInfo, config_parse_bool, 0, offsetof(Socket, pass_pktinfo)
+Socket.Timestamping, config_parse_socket_timestamping, 0, offsetof(Socket, timestamping)
Socket.TCPCongestion, config_parse_string, 0, offsetof(Socket, tcp_congestion)
Socket.ReusePort, config_parse_bool, 0, offsetof(Socket, reuse_port)
Socket.MessageQueueMaxMessages, config_parse_long, 0, offsetof(Socket, mq_maxmsg)
Timer.Persistent, config_parse_bool, 0, offsetof(Timer, persistent)
Timer.WakeSystem, config_parse_bool, 0, offsetof(Timer, wake_system)
Timer.RemainAfterElapse, config_parse_bool, 0, offsetof(Timer, remain_after_elapse)
+Timer.FixedRandomDelay, config_parse_bool, 0, offsetof(Timer, fixed_random_delay)
Timer.AccuracySec, config_parse_sec, 0, offsetof(Timer, accuracy_usec)
Timer.RandomizedDelaySec, config_parse_sec, 0, offsetof(Timer, random_usec)
Timer.Unit, config_parse_trigger_unit, 0, 0
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
/***
Copyright © 2012 Holger Hans Peter Freyther
***/
DEFINE_CONFIG_PARSE_PTR(config_parse_exec_mount_flags, mount_propagation_flags_from_string, unsigned long, "Failed to parse mount flag");
DEFINE_CONFIG_PARSE_ENUM_WITH_DEFAULT(config_parse_numa_policy, mpol, int, -1, "Invalid NUMA policy type");
DEFINE_CONFIG_PARSE_ENUM(config_parse_status_unit_format, status_unit_format, StatusUnitFormat, "Failed to parse status unit format");
+DEFINE_CONFIG_PARSE_ENUM_FULL(config_parse_socket_timestamping, socket_timestamping_from_string_harder, SocketTimestamping, "Failed to parse timestamping precision");
int config_parse_unit_deps(
const char *unit,
NULSTR_FOREACH(i, load_fragment_gperf_nulstr) {
const char *rvalue = "OTHER", *lvalue;
const ConfigPerfItem *p;
- size_t prefix_len;
const char *dot;
- unsigned j;
assert_se(p = load_fragment_gperf_lookup(i, strlen(i)));
p->ltype == DISABLED_LEGACY)
continue;
- for (j = 0; j < ELEMENTSOF(table); j++)
+ for (size_t j = 0; j < ELEMENTSOF(table); j++)
if (p->parse == table[j].callback) {
rvalue = table[j].rvalue;
break;
dot = strchr(i, '.');
lvalue = dot ? dot + 1 : i;
- prefix_len = dot-i;
- if (dot)
+ if (dot) {
+ size_t prefix_len = dot - i;
+
if (!prev || !strneq(prev, i, prefix_len+1)) {
if (prev)
fputc('\n', f);
fprintf(f, "[%.*s]\n", (int) prefix_len, i);
}
+ }
fprintf(f, "%s=%s\n", lvalue, rvalue);
prev = i;
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include "conf-parser.h"
CONFIG_PARSER_PROTOTYPE(config_parse_timeout_abort);
CONFIG_PARSER_PROTOTYPE(config_parse_swap_priority);
CONFIG_PARSER_PROTOTYPE(config_parse_mount_images);
+CONFIG_PARSER_PROTOTYPE(config_parse_socket_timestamping);
/* gperf prototypes */
const struct ConfigPerfItem* load_fragment_gperf_lookup(const char *key, GPERF_LEN_TYPE length);
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <errno.h>
#include <stdlib.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
int locale_setup(char ***environment);
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <net/if.h>
#include <stdlib.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
int loopback_setup(void);
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <fcntl.h>
#include <sched.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <stdbool.h>
# -*- Mode: rpm-spec; indent-tabs-mode: nil -*- */
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <errno.h>
#include <fcntl.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <errno.h>
#include <fcntl.h>
watchdog_usec = manager_get_watchdog(m, WATCHDOG_RUNTIME);
if (timestamp_is_set(watchdog_usec))
- watchdog_ping();
+ (void) watchdog_ping();
if (!ratelimit_below(&rl)) {
/* Yay, something is going seriously wrong, pause a little */
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <stdbool.h>
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
libcore_shared_sources = '''
killall.c
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <errno.h>
#include <ftw.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <stdbool.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <errno.h>
#include <signal.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
typedef struct Mount Mount;
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <errno.h>
#include <linux/loop.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
/***
"http://www.freedesktop.org/standards/dbus/1.0/busconfig.dtd">
<!--
- SPDX-License-Identifier: LGPL-2.1+
+ SPDX-License-Identifier: LGPL-2.1-or-later
This file is part of systemd.
"http://www.freedesktop.org/standards/PolicyKit/1/policyconfig.dtd">
<!--
- SPDX-License-Identifier: LGPL-2.1+
+ SPDX-License-Identifier: LGPL-2.1-or-later
This file is part of systemd.
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <errno.h>
#include <sys/epoll.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
typedef struct Path Path;
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <errno.h>
#include <unistd.h>
if (IN_SET(s->state, SCOPE_RUNNING, SCOPE_ABANDONED, SCOPE_STOP_SIGTERM, SCOPE_STOP_SIGKILL))
scope_enter_dead(s, SCOPE_SUCCESS);
+
+ /* If the cgroup empty notification comes when the unit is not active, we must have failed to clean
+ * up the cgroup earlier and should do it now. */
+ if (IN_SET(s->state, SCOPE_DEAD, SCOPE_FAILED))
+ unit_prune_cgroup(u);
}
static void scope_sigchld_event(Unit *u, pid_t pid, int code, int status) {
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
typedef struct Scope Scope;
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include "selinux-access.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include "sd-bus.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <errno.h>
#include <stdio.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <stdbool.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <errno.h>
#include <sys/stat.h>
break;
+ /* If the cgroup empty notification comes when the unit is not active, we must have failed to clean
+ * up the cgroup earlier and should do it now. */
+ case SERVICE_DEAD:
+ case SERVICE_FAILED:
+ unit_prune_cgroup(u);
+ break;
+
default:
;
}
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
typedef struct Service Service;
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <fcntl.h>
#include <sys/stat.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <stdbool.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <errno.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include "unit.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
/***
Copyright © 2013 Intel Corporation
Authors:
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
/***
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <arpa/inet.h>
#include <errno.h>
prefix, socket_fdname(s),
prefix, yes_no(s->selinux_context_from_net));
+ if (s->timestamping != SOCKET_TIMESTAMPING_OFF)
+ fprintf(f,
+ "%sTimestamping: %s\n",
+ prefix, socket_timestamping_to_string(s->timestamping));
+
if (s->control_pid > 0)
fprintf(f,
"%sControl PID: "PID_FMT"\n",
log_unit_warning_errno(UNIT(s), r, "Failed to enable packet info socket option: %m");
}
+ if (s->timestamping != SOCKET_TIMESTAMPING_OFF) {
+ r = setsockopt_int(fd, SOL_SOCKET,
+ s->timestamping == SOCKET_TIMESTAMPING_NS ? SO_TIMESTAMPNS : SO_TIMESTAMP,
+ true);
+ if (r < 0)
+ log_unit_warning_errno(UNIT(s), r, "Failed to enable timestamping socket option, ignoring: %m");
+ }
+
if (s->priority >= 0) {
r = setsockopt_int(fd, SOL_SOCKET, SO_PRIORITY, s->priority);
if (r < 0)
_cleanup_free_ char *ep = NULL;
ep = path_make_absolute("ep0", p->path);
+ if (!ep)
+ return -ENOMEM;
p->fd = usbffs_address_create(ep);
if (p->fd < 0)
DEFINE_STRING_TABLE_LOOKUP(socket_result, SocketResult);
+static const char* const socket_timestamping_table[_SOCKET_TIMESTAMPING_MAX] = {
+ [SOCKET_TIMESTAMPING_OFF] = "off",
+ [SOCKET_TIMESTAMPING_US] = "us",
+ [SOCKET_TIMESTAMPING_NS] = "ns",
+};
+
+DEFINE_STRING_TABLE_LOOKUP(socket_timestamping, SocketTimestamping);
+
+SocketTimestamping socket_timestamping_from_string_harder(const char *p) {
+ SocketTimestamping t;
+ int r;
+
+ if (!p)
+ return _SOCKET_TIMESTAMPING_INVALID;
+
+ t = socket_timestamping_from_string(p);
+ if (t >= 0)
+ return t;
+
+ /* Let's alternatively support the various other aliases parse_time() accepts for ns and µs here,
+ * too. */
+ if (streq(p, "nsec"))
+ return SOCKET_TIMESTAMPING_NS;
+ if (STR_IN_SET(p, "usec", "µs"))
+ return SOCKET_TIMESTAMPING_US;
+
+ r = parse_boolean(p);
+ if (r < 0)
+ return _SOCKET_TIMESTAMPING_INVALID;
+
+ return r ? SOCKET_TIMESTAMPING_NS : SOCKET_TIMESTAMPING_OFF; /* If boolean yes, default to ns accuracy */
+}
+
const UnitVTable socket_vtable = {
.object_size = sizeof(Socket),
.exec_context_offset = offsetof(Socket, exec_context),
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
typedef struct Socket Socket;
LIST_FIELDS(struct SocketPort, port);
} SocketPort;
+typedef enum SocketTimestamping {
+ SOCKET_TIMESTAMPING_OFF,
+ SOCKET_TIMESTAMPING_US, /* SO_TIMESTAMP */
+ SOCKET_TIMESTAMPING_NS, /* SO_TIMESTAMPNS */
+ _SOCKET_TIMESTAMPING_MAX,
+ _SOCKET_TIMESTAMPING_INVALID = -1,
+} SocketTimestamping;
+
struct Socket {
Unit meta;
bool pass_cred;
bool pass_sec;
bool pass_pktinfo;
+ SocketTimestamping timestamping;
/* Only for INET6 sockets: issue IPV6_V6ONLY sockopt */
SocketAddressBindIPv6Only bind_ipv6_only;
const char* socket_port_type_to_string(SocketPort *p) _pure_;
SocketType socket_port_type_from_string(const char *p) _pure_;
+const char* socket_timestamping_to_string(SocketTimestamping p) _const_;
+SocketTimestamping socket_timestamping_from_string(const char *p) _pure_;
+SocketTimestamping socket_timestamping_from_string_harder(const char *p) _pure_;
+
DEFINE_CAST(SOCKET, Socket);
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <errno.h>
#include <sys/epoll.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
/***
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include "dbus-target.h"
#include "dbus-unit.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include "unit.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <sys/stat.h>
#include <sys/types.h>
return 0;
}
+static uint64_t timer_get_fixed_delay_hash(Timer *t) {
+ static const uint8_t hash_key[] = {
+ 0x51, 0x0a, 0xdb, 0x76, 0x29, 0x51, 0x42, 0xc2,
+ 0x80, 0x35, 0xea, 0xe6, 0x8e, 0x3a, 0x37, 0xbd
+ };
+
+ struct siphash state;
+ sd_id128_t machine_id;
+ uid_t uid;
+ int r;
+
+ assert(t);
+
+ uid = getuid();
+ r = sd_id128_get_machine(&machine_id);
+ if (r < 0) {
+ log_unit_debug_errno(UNIT(t), r,
+ "Failed to get machine ID for the fixed delay calculation, proceeding with 0: %m");
+ machine_id = SD_ID128_NULL;
+ }
+
+ siphash24_init(&state, hash_key);
+ siphash24_compress(&machine_id, sizeof(sd_id128_t), &state);
+ siphash24_compress_boolean(MANAGER_IS_SYSTEM(UNIT(t)->manager), &state);
+ siphash24_compress(&uid, sizeof(uid_t), &state);
+ siphash24_compress_string(UNIT(t)->id, &state);
+
+ return siphash24_finalize(&state);
+}
+
static int timer_load(Unit *u) {
Timer *t = TIMER(u);
int r;
"%sWakeSystem: %s\n"
"%sAccuracy: %s\n"
"%sRemainAfterElapse: %s\n"
+ "%sFixedRandomDelay: %s\n"
"%sOnClockChange: %s\n"
"%sOnTimeZoneChange: %s\n",
prefix, timer_state_to_string(t->state),
prefix, yes_no(t->wake_system),
prefix, format_timespan(buf, sizeof(buf), t->accuracy_usec, 1),
prefix, yes_no(t->remain_after_elapse),
+ prefix, yes_no(t->fixed_random_delay),
prefix, yes_no(t->on_clock_change),
prefix, yes_no(t->on_timezone_change));
if (*v == USEC_INFINITY)
return;
- add = random_u64() % t->random_usec;
+ add = (t->fixed_random_delay ? timer_get_fixed_delay_hash(t) : random_u64()) % t->random_usec;
if (*v + add < *v) /* overflow */
*v = (usec_t) -2; /* Highest possible value, that is not USEC_INFINITY */
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
typedef struct Timer Timer;
bool remain_after_elapse;
bool on_clock_change;
bool on_timezone_change;
+ bool fixed_random_delay;
char *stamp_path;
};
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <fcntl.h>
#include <unistd.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
typedef struct Transaction Transaction;
# -*- Mode: rpm-spec; indent-tabs-mode: nil -*- */
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
# Copyright © 2018 Neal Gompa
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include "alloc-util.h"
#include "cgroup-util.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include "unit.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <errno.h>
#include <stdlib.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <stdbool.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <sys/statvfs.h>
#include <sys/stat.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <inttypes.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <errno.h>
#include <stdio.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <fcntl.h>
#include <getopt.h>
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
systemd_coredump_sources = files('''
coredump.c
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <dwarf.h>
#include <elfutils/libdwfl.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
void coredump_make_stack_trace(int fd, const char *executable, char **ret);
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <stdlib.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <errno.h>
#include <fcntl.h>
}
}
- const char *target;
- if (in_initrd())
- target = "initrd-cryptsetup.target";
- else if (netdev)
- target = "remote-cryptsetup.target";
- else
- target = "cryptsetup.target";
-
if (!nofail)
- fprintf(f, "Before=%s\n", target);
+ fprintf(f,
+ "Before=%s\n",
+ netdev ? "remote-cryptsetup.target" : "cryptsetup.target");
if (password && !keydev) {
r = print_dependencies(f, password);
return log_error_errno(r, "Failed to write unit file %s: %m", n);
if (!noauto) {
- r = generator_add_symlink(arg_dest, target,
+ r = generator_add_symlink(arg_dest,
+ netdev ? "remote-cryptsetup.target" : "cryptsetup.target",
nofail ? "wants" : "requires", n);
if (r < 0)
return r;
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <unistd.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <inttypes.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <fcntl.h>
#include <unistd.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <sys/types.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <errno.h>
#include <mntent.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <unistd.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <errno.h>
#include <getopt.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <errno.h>
#include <getopt.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <fcntl.h>
#include <getopt.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include "sd-path.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <getopt.h>
#include <stdio.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <fcntl.h>
#include <getopt.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
/***
Copyright © 2014 Holger Hans Peter Freyther
***/
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <errno.h>
#include <stdio.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <errno.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include "alloc-util.h"
#include "bus-dump.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include "alloc-util.h"
#include "calendarspec.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include "catalog.h"
#include "fd-util.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <errno.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <fcntl.h>
#include <sys/stat.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <unistd.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include "fuzz.h"
#include "memory-util.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <stdio.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include "alloc-util.h"
#include "fd-util.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include "fuzz.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include "fuzz.h"
#include "fuzz-journald.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include "fuzz.h"
#include "fuzz-journald.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include "fd-util.h"
#include "fs-util.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include "fuzz.h"
#include "fuzz-journald.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <linux/sockios.h>
#include <sys/ioctl.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include "fuzz.h"
#include "fuzz-journald.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include "alloc-util.h"
#include "fuzz-journald.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include "journald-server.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include "alloc-util.h"
#include "fileio.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <errno.h>
#include <unistd.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include "alloc-util.h"
#include "log.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <arpa/inet.h>
#include <netinet/icmp6.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include "alloc-util.h"
#include "fd-util.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include "alloc-util.h"
#include "fd-util.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include "alloc-util.h"
#include "fd-util.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include "device-internal.h"
#include "device-private.h"
--- /dev/null
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
+
+#include <string.h>
+
+#include "alloc-util.h"
+#include "fuzz.h"
+#include "udev-util.h"
+
+int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) {
+ _cleanup_free_ char *str = NULL;
+ int r;
+ char *value = UINT_TO_PTR(0x12345678U);
+ char *endpos = UINT_TO_PTR(0x87654321U);
+
+ assert_se(str = malloc(size + 1));
+ memcpy(str, data, size);
+ str[size] = '\0';
+
+ r = udev_rule_parse_value(str, &value, &endpos);
+
+ if (r < 0) {
+ /* not modified on failure */
+ assert_se(value == UINT_TO_PTR(0x12345678U));
+ assert_se(endpos == UINT_TO_PTR(0x87654321U));
+ } else {
+ assert_se(endpos <= str + size);
+ assert_se(endpos > str + 1);
+ }
+
+ return 0;
+}
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <stdio.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include "conf-parser.h"
#include "fd-util.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <unistd.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include "alloc-util.h"
#include "fd-util.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <stddef.h>
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
fuzzers += [
[['src/fuzz/fuzz-bus-message.c'],
'src/xdg-autostart-generator/xdg-autostart-service.c'],
[],
[]],
+
+ [['src/fuzz/fuzz-udev-rule-parse-value.c'],
+ [libshared],
+ []],
]
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <errno.h>
#include <fcntl.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <stdlib.h>
#include <unistd.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <errno.h>
#include <stdio.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <errno.h>
#include <stdio.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include "dns-domain.h"
#include "home-util.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <stdbool.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#if HAVE_LIBFIDO2
#include <fido.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include "json.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include "errno-util.h"
#include "format-table.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include "json.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
-#if HAVE_QRENCODE
-#include <qrencode.h>
-#include "qrcode-util.h"
-#endif
-
-#include "dlfcn-util.h"
#include "errno-util.h"
#include "homectl-recovery-key.h"
#include "libcrypt-util.h"
#include "locale-util.h"
#include "memory-util.h"
#include "modhex.h"
+#include "qrcode-util.h"
#include "random-util.h"
#include "strv.h"
#include "terminal-util.h"
return 0;
}
-static int print_qr_code(const char *secret) {
-#if HAVE_QRENCODE
- QRcode* (*sym_QRcode_encodeString)(const char *string, int version, QRecLevel level, QRencodeMode hint, int casesensitive);
- void (*sym_QRcode_free)(QRcode *qrcode);
- _cleanup_(dlclosep) void *dl = NULL;
- QRcode* qr;
- int r;
-
- /* If this is not an UTF-8 system or ANSI colors aren't supported/disabled don't print any QR
- * codes */
- if (!is_locale_utf8() || !colors_enabled())
- return -EOPNOTSUPP;
-
- dl = dlopen("libqrencode.so.4", RTLD_LAZY);
- if (!dl)
- return log_debug_errno(SYNTHETIC_ERRNO(EOPNOTSUPP),
- "QRCODE support is not installed: %s", dlerror());
-
- r = dlsym_many_and_warn(
- dl,
- LOG_DEBUG,
- &sym_QRcode_encodeString, "QRcode_encodeString",
- &sym_QRcode_free, "QRcode_free",
- NULL);
- if (r < 0)
- return r;
-
- qr = sym_QRcode_encodeString(secret, 0, QR_ECLEVEL_L, QR_MODE_8, 0);
- if (!qr)
- return -ENOMEM;
-
- fprintf(stderr, "\nYou may optionally scan the recovery key off screen:\n\n");
-
- write_qrcode(stderr, qr);
-
- fputc('\n', stderr);
-
- sym_QRcode_free(qr);
-#endif
- return 0;
-}
-
int identity_add_recovery_key(JsonVariant **v) {
_cleanup_(erase_and_freep) char *password = NULL, *hashed = NULL;
int r;
"whenever authentication is requested.\n", stderr);
fflush(stderr);
- print_qr_code(password);
+ (void) print_qrcode(stderr, "You may optionally scan the recovery key off screen", password);
return 0;
}
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include "json.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <getopt.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include "homed-bus.h"
#include "strv.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include "sd-bus.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include "conf-parser.h"
#include "def.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include "conf-parser.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <linux/capability.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include "sd-bus.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#if HAVE_LINUX_MEMFD_H
#include <linux/memfd.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
typedef struct Home Home;
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <linux/capability.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include "bus-util.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <grp.h>
#include <linux/fs.h>
(void) bus_manager_emit_auto_login_changed(m);
}
- if ((event->mask & (IN_DELETE|IN_MOVED_FROM|IN_DELETE)) != 0) {
+ if ((event->mask & (IN_DELETE | IN_CLOSE_WRITE | IN_MOVED_FROM)) != 0) {
Home *h;
if (FLAGS_SET(event->mask, IN_DELETE))
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <openssl/evp.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include "fd-util.h"
#include "homed-operation.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <sd-bus.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include "group-record.h"
#include "homed-varlink.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include "homed-manager.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <sys/stat.h>
#include <sys/types.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include "dirent-util.h"
#include "fd-util.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include "homework.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <sys/mount.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include "homework.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <fido.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include "user-record.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <linux/fs.h>
#include <openssl/evp.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include "homework.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <libfdisk.h>
#include <linux/loop.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include "cryptsetup-util.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <sched.h>
#include <sys/mount.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <stdbool.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include "hexdecoct.h"
#include "homework-pkcs11.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#if HAVE_P11KIT
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <sys/quota.h>
#include "blockdev-util.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include "user-record.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <stddef.h>
#include <sys/mount.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <linux/fs.h>
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
systemd_homework_sources = files('''
home-util.c
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <errno.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
/* 256 bit keys = 32 bytes */
<!DOCTYPE busconfig PUBLIC "-//freedesktop//DTD D-BUS Bus Configuration 1.0//EN"
"http://www.freedesktop.org/standards/dbus/1.0/busconfig.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<busconfig>
<!DOCTYPE policyconfig PUBLIC "-//freedesktop//DTD PolicyKit Policy Configuration 1.0//EN"
"http://www.freedesktop.org/standards/PolicyKit/1/policyconfig.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<policyconfig>
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
[D-BUS Service]
Name=org.freedesktop.home1
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <security/pam_ext.h>
#include <security/pam_modules.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
{
global:
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include "modhex.h"
#include "alloc-util.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include "bus-common-errors.h"
#include "errno-util.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include "sd-bus.h"
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
+
#include <openssl/pem.h>
#include "fd-util.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <openssl/evp.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <sys/xattr.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include "sd-bus.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <getopt.h>
#include <locale.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <errno.h>
#include <sys/utsname.h>
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
if conf.get('ENABLE_HOSTNAMED') == 1
install_data('org.freedesktop.hostname1.conf',
"http://www.freedesktop.org/standards/dbus/1.0/busconfig.dtd">
<!--
- SPDX-License-Identifier: LGPL-2.1+
+ SPDX-License-Identifier: LGPL-2.1-or-later
This file is part of systemd.
"http://www.freedesktop.org/standards/PolicyKit/1/policyconfig.dtd">
<!--
- SPDX-License-Identifier: LGPL-2.1+
+ SPDX-License-Identifier: LGPL-2.1-or-later
systemd is free software; you can redistribute it and/or modify it
under the terms of the GNU Lesser General Public License as published by
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# systemd is free software; you can redistribute it and/or modify it
# under the terms of the GNU Lesser General Public License as published by
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <getopt.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <getopt.h>
#include <stdio.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <fcntl.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <curl/curl.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <sys/sendfile.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include "sd-event.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include "sd-daemon.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include "sd-event.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <getopt.h>
#include <locale.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <sched.h>
#include <sys/prctl.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <sys/types.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include "import-compress.h"
#include "string-table.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#if HAVE_BZIP2
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <getopt.h>
#include <locale.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <linux/fs.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include "sd-event.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <linux/fs.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include "sd-event.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <getopt.h>
#include <locale.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <sys/prctl.h>
#include <sys/wait.h>
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
systemd_importd_sources = files('''
importd.c
"http://www.freedesktop.org/standards/dbus/1.0/busconfig.dtd">
<!--
- SPDX-License-Identifier: LGPL-2.1+
+ SPDX-License-Identifier: LGPL-2.1-or-later
This file is part of systemd.
"http://www.freedesktop.org/standards/PolicyKit/1/policyconfig.dtd">
<!--
- SPDX-License-Identifier: LGPL-2.1+
+ SPDX-License-Identifier: LGPL-2.1-or-later
This file is part of systemd.
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <sys/prctl.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <stdbool.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <fcntl.h>
#include <sys/stat.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <gcrypt.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <curl/curl.h>
#include <linux/fs.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include "sd-event.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <curl/curl.h>
#include <sys/prctl.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include "sd-event.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <getopt.h>
#include <locale.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <zlib.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
int qcow2_detect(int fd);
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <fcntl.h>
#include <sys/stat.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <ctype.h>
#include <errno.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <fcntl.h>
#include <getopt.h>
if (arg_key_pem)
return log_error_errno(SYNTHETIC_ERRNO(EINVAL),
"Key file specified twice");
- r = read_full_file_full(AT_FDCWD, optarg, READ_FULL_FILE_CONNECT_SOCKET, &arg_key_pem, NULL);
+ r = read_full_file_full(AT_FDCWD, optarg, READ_FULL_FILE_CONNECT_SOCKET, NULL, &arg_key_pem, NULL);
if (r < 0)
return log_error_errno(r, "Failed to read key file: %m");
assert(arg_key_pem);
if (arg_cert_pem)
return log_error_errno(SYNTHETIC_ERRNO(EINVAL),
"Certificate file specified twice");
- r = read_full_file_full(AT_FDCWD, optarg, READ_FULL_FILE_CONNECT_SOCKET, &arg_cert_pem, NULL);
+ r = read_full_file_full(AT_FDCWD, optarg, READ_FULL_FILE_CONNECT_SOCKET, NULL, &arg_cert_pem, NULL);
if (r < 0)
return log_error_errno(r, "Failed to read certificate file: %m");
assert(arg_cert_pem);
if (arg_trust_pem)
return log_error_errno(SYNTHETIC_ERRNO(EINVAL),
"CA certificate file specified twice");
- r = read_full_file_full(AT_FDCWD, optarg, READ_FULL_FILE_CONNECT_SOCKET, &arg_trust_pem, NULL);
+ r = read_full_file_full(AT_FDCWD, optarg, READ_FULL_FILE_CONNECT_SOCKET, NULL, &arg_trust_pem, NULL);
if (r < 0)
return log_error_errno(r, "Failed to read CA certificate file: %m");
assert(arg_trust_pem);
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <getopt.h>
#include <unistd.h>
static int load_certificates(char **key, char **cert, char **trust) {
int r;
- r = read_full_file_full(AT_FDCWD, arg_key ?: PRIV_KEY_FILE, READ_FULL_FILE_CONNECT_SOCKET, key, NULL);
+ r = read_full_file_full(AT_FDCWD, arg_key ?: PRIV_KEY_FILE, READ_FULL_FILE_CONNECT_SOCKET, NULL, key, NULL);
if (r < 0)
return log_error_errno(r, "Failed to read key from file '%s': %m",
arg_key ?: PRIV_KEY_FILE);
- r = read_full_file_full(AT_FDCWD, arg_cert ?: CERT_FILE, READ_FULL_FILE_CONNECT_SOCKET, cert, NULL);
+ r = read_full_file_full(AT_FDCWD, arg_cert ?: CERT_FILE, READ_FULL_FILE_CONNECT_SOCKET, NULL, cert, NULL);
if (r < 0)
return log_error_errno(r, "Failed to read certificate from file '%s': %m",
arg_cert ?: CERT_FILE);
if (arg_trust_all)
log_info("Certificate checking disabled.");
else {
- r = read_full_file_full(AT_FDCWD, arg_trust ?: TRUST_FILE, READ_FULL_FILE_CONNECT_SOCKET, trust, NULL);
+ r = read_full_file_full(AT_FDCWD, arg_trust ?: TRUST_FILE, READ_FULL_FILE_CONNECT_SOCKET, NULL, trust, NULL);
if (r < 0)
return log_error_errno(r, "Failed to read CA certificate file '%s': %m",
arg_trust ?: TRUST_FILE);
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include "alloc-util.h"
#include "fd-util.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include "sd-event.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include "alloc-util.h"
#include "journal-remote.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include "journal-file.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <errno.h>
#include <fcntl.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include "sd-event.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <curl/curl.h>
#include <stdbool.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <curl/curl.h>
#include <fcntl.h>
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
+
#pragma once
#include <inttypes.h>
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
systemd_journal_upload_sources = files('''
journal-upload.h
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <stddef.h>
#include <stdio.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <microhttpd.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include "audit-type.h"
#include "missing_audit.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <stdio.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <errno.h>
#include <fcntl.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <errno.h>
#include <fcntl.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <stdbool.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <inttypes.h>
#include <stdlib.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <unistd.h>
-/* SPDX-License-Identifier: LGPL-2.1+
+/* SPDX-License-Identifier: LGPL-2.1-or-later
*
* fsprg v0.1 - (seekable) forward-secure pseudorandom generator
* Copyright © 2012 B. Poettering
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
/*
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <fcntl.h>
#include <sys/mman.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <stdbool.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include "sd-id128.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <errno.h>
#include <fcntl.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <inttypes.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <inttypes.h>
+++ /dev/null
-/* SPDX-License-Identifier: LGPL-2.1+ */
-
-#include <errno.h>
-#include <qrencode.h>
-#include <stdbool.h>
-#include <stdio.h>
-#include <stdlib.h>
-
-#include "alloc-util.h"
-#include "dlfcn-util.h"
-#include "fd-util.h"
-#include "fileio.h"
-#include "journal-qrcode.h"
-#include "locale-util.h"
-#include "macro.h"
-#include "qrcode-util.h"
-#include "terminal-util.h"
-
-int print_qr_code(
- FILE *output,
- const char *prefix_text,
- const void *seed,
- size_t seed_size,
- uint64_t start,
- uint64_t interval,
- const char *hn,
- sd_id128_t machine) {
-
- QRcode* (*sym_QRcode_encodeString)(const char *string, int version, QRecLevel level, QRencodeMode hint, int casesensitive);
- void (*sym_QRcode_free)(QRcode *qrcode);
- _cleanup_(dlclosep) void *dl = NULL;
- _cleanup_free_ char *url = NULL;
- _cleanup_fclose_ FILE *f = NULL;
- size_t url_size = 0;
- QRcode* qr;
- int r;
-
- assert(seed);
- assert(seed_size > 0);
-
- /* If this is not an UTF-8 system or ANSI colors aren't supported/disabled don't print any QR
- * codes */
- if (!is_locale_utf8() || !colors_enabled())
- return -EOPNOTSUPP;
-
- dl = dlopen("libqrencode.so.4", RTLD_LAZY);
- if (!dl)
- return log_debug_errno(SYNTHETIC_ERRNO(EOPNOTSUPP),
- "QRCODE support is not installed: %s", dlerror());
-
- r = dlsym_many_and_warn(
- dl,
- LOG_DEBUG,
- &sym_QRcode_encodeString, "QRcode_encodeString",
- &sym_QRcode_free, "QRcode_free",
- NULL);
- if (r < 0)
- return r;
-
- f = open_memstream_unlocked(&url, &url_size);
- if (!f)
- return -ENOMEM;
-
- fputs("fss://", f);
-
- for (size_t i = 0; i < seed_size; i++) {
- if (i > 0 && i % 3 == 0)
- fputc('-', f);
- fprintf(f, "%02x", ((uint8_t*) seed)[i]);
- }
-
- fprintf(f, "/%"PRIx64"-%"PRIx64"?machine=" SD_ID128_FORMAT_STR,
- start,
- interval,
- SD_ID128_FORMAT_VAL(machine));
-
- if (hn)
- fprintf(f, ";hostname=%s", hn);
-
- r = fflush_and_check(f);
- if (r < 0)
- return r;
-
- f = safe_fclose(f);
-
- qr = sym_QRcode_encodeString(url, 0, QR_ECLEVEL_L, QR_MODE_8, 1);
- if (!qr)
- return -ENOMEM;
-
- if (prefix_text)
- fputs(prefix_text, output);
-
- write_qrcode(output, qr);
-
- sym_QRcode_free(qr);
- return 0;
-}
+++ /dev/null
-/* SPDX-License-Identifier: LGPL-2.1+ */
-#pragma once
-
-#include <inttypes.h>
-#include <stdio.h>
-
-#include "sd-id128.h"
-
-int print_qr_code(FILE *f, const char *prefix_text, const void *seed, size_t seed_size, uint64_t start, uint64_t interval, const char *hn, sd_id128_t machine);
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <errno.h>
#include <fcntl.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <fcntl.h>
#include <sys/stat.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <inttypes.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <fcntl.h>
#include <stddef.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include "journal-file.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <errno.h>
#include <fcntl.h>
#include "io-util.h"
#include "journal-def.h"
#include "journal-internal.h"
-#include "journal-qrcode.h"
#include "journal-util.h"
#include "journal-vacuum.h"
#include "journal-verify.h"
#include "path-util.h"
#include "pcre2-dlopen.h"
#include "pretty-print.h"
+#include "qrcode-util.h"
#include "random-util.h"
#include "rlimit-util.h"
#include "set.h"
return 0;
}
+#if HAVE_GCRYPT
+static int format_journal_url(
+ const void *seed,
+ size_t seed_size,
+ uint64_t start,
+ uint64_t interval,
+ const char *hn,
+ sd_id128_t machine,
+ bool full,
+ char **ret_url) {
+ _cleanup_free_ char *url = NULL;
+ _cleanup_fclose_ FILE *f = NULL;
+ size_t url_size = 0;
+ int r;
+
+ assert(seed);
+ assert(seed_size > 0);
+
+ f = open_memstream_unlocked(&url, &url_size);
+ if (!f)
+ return -ENOMEM;
+
+ if (full)
+ fputs("fss://", f);
+
+ for (size_t i = 0; i < seed_size; i++) {
+ if (i > 0 && i % 3 == 0)
+ fputc('-', f);
+ fprintf(f, "%02x", ((uint8_t*) seed)[i]);
+ }
+
+ fprintf(f, "/%"PRIx64"-%"PRIx64, start, interval);
+
+ if (full) {
+ fprintf(f, "?machine=" SD_ID128_FORMAT_STR, SD_ID128_FORMAT_VAL(machine));
+ if (hn)
+ fprintf(f, ";hostname=%s", hn);
+ }
+
+ r = fflush_and_check(f);
+ if (r < 0)
+ return r;
+
+ f = safe_fclose(f);
+ *ret_url = TAKE_PTR(url);
+ return 0;
+}
+#endif
+
static int setup_keys(void) {
#if HAVE_GCRYPT
size_t mpk_size, seed_size, state_size;
k = mfree(k);
- _cleanup_free_ char *hn = NULL;
+ _cleanup_free_ char *hn = NULL, *key = NULL;
+
+ r = format_journal_url(seed, seed_size, n, arg_interval, hn, machine, false, &key);
+ if (r < 0)
+ return r;
if (on_tty()) {
hn = gethostname_malloc();
fflush(stderr);
}
- for (size_t i = 0; i < seed_size; i++) {
- if (i > 0 && i % 3 == 0)
- putchar('-');
- printf("%02x", ((uint8_t*) seed)[i]);
- }
- printf("/%llx-%llx\n", (unsigned long long) n, (unsigned long long) arg_interval);
+ puts(key);
if (on_tty()) {
fprintf(stderr, "%s", ansi_normal());
#if HAVE_QRENCODE
- (void) print_qr_code(stderr,
- "\nTo transfer the verification key to your phone scan the QR code below:\n",
- seed, seed_size,
- n, arg_interval,
- hn, machine);
+ _cleanup_free_ char *url = NULL;
+ r = format_journal_url(seed, seed_size, n, arg_interval, hn, machine, true, &url);
+ if (r < 0)
+ return r;
+
+ (void) print_qrcode(stderr,
+ "To transfer the verification key to your phone scan the QR code below",
+ url);
#endif
}
if (r >= 0) {
if (previous_boot_id_valid &&
!sd_id128_equal(boot_id, previous_boot_id))
- printf("%s-- Reboot --%s\n",
- ansi_highlight(), ansi_normal());
+ printf("%s-- Boot "SD_ID128_FORMAT_STR" --%s\n",
+ ansi_highlight(), SD_ID128_FORMAT_VAL(boot_id), ansi_normal());
previous_boot_id = boot_id;
previous_boot_id_valid = true;
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include "alloc-util.h"
#include "audit-type.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include "journald-server.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <fcntl.h>
#include <sys/socket.h>
/* Second: identifier and PID */
if (ucred) {
if (!identifier) {
- get_process_comm(ucred->pid, &ident_buf);
+ (void) get_process_comm(ucred->pid, &ident_buf);
identifier = ident_buf;
}
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include "journald-server.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#if HAVE_SELINUX
#include <selinux/selinux.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <inttypes.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <fcntl.h>
#include <sys/epoll.h>
/* Second: identifier and PID */
if (ucred) {
if (!identifier) {
- get_process_comm(ucred->pid, &ident_buf);
+ (void) get_process_comm(ucred->pid, &ident_buf);
identifier = ident_buf;
}
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include "journald-server.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <stddef.h>
#include <sys/epoll.h>
if (r < 0)
return log_error_errno(r, "SO_PASSCRED failed: %m");
-#if HAVE_SELINUX
if (mac_selinux_use()) {
r = setsockopt_int(s->native_fd, SOL_SOCKET, SO_PASSSEC, true);
if (r < 0)
log_warning_errno(r, "SO_PASSSEC failed: %m");
}
-#endif
r = setsockopt_int(s->native_fd, SOL_SOCKET, SO_TIMESTAMP, true);
if (r < 0)
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include "journald-server.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <errno.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include "time-util.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#if HAVE_SELINUX
#include <selinux/selinux.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <stdbool.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <stddef.h>
#include <unistd.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
typedef struct StdoutStream StdoutStream;
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <stddef.h>
#include <sys/epoll.h>
msghdr.msg_controllen = cmsg->cmsg_len;
}
- /* Forward the syslog message we received via /dev/log to
- * /run/systemd/syslog. Unfortunately we currently can't set
- * the SO_TIMESTAMP auxiliary data, and hence we don't. */
+ /* Forward the syslog message we received via /dev/log to /run/systemd/syslog. Unfortunately we
+ * currently can't set the SO_TIMESTAMP auxiliary data, and hence we don't. */
if (sendmsg(s->syslog_fd, &msghdr, MSG_NOSIGNAL) >= 0)
return;
/* Third: identifier and PID */
if (ucred) {
if (!identifier) {
- get_process_comm(ucred->pid, &ident_buf);
+ (void) get_process_comm(ucred->pid, &ident_buf);
identifier = ident_buf;
}
if (r < 0)
return log_error_errno(r, "SO_PASSCRED failed: %m");
-#if HAVE_SELINUX
if (mac_selinux_use()) {
r = setsockopt_int(s->syslog_fd, SOL_SOCKET, SO_PASSSEC, true);
if (r < 0)
log_warning_errno(r, "SO_PASSSEC failed: %m");
}
-#endif
r = setsockopt_int(s->syslog_fd, SOL_SOCKET, SO_TIMESTAMP, true);
if (r < 0)
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include "journald-server.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include "alloc-util.h"
#include "format-util.h"
if (ucred) {
if (!identifier) {
- get_process_comm(ucred->pid, &ident_buf);
+ (void) get_process_comm(ucred->pid, &ident_buf);
identifier = ident_buf;
}
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <sys/socket.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <unistd.h>
+/* SPDX-License-Identifier: LicenseRef-lookup3-public-domain */
/* Slightly modified by Lennart Poettering, to avoid name clashes, and
* unexport a few functions. */
+/* SPDX-License-Identifier: LicenseRef-lookup3-public-domain */
#pragma once
#include <inttypes.h>
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
journal_client_sources = files('''
audit-type.c
pcre2-dlopen.h
'''.split())
-if conf.get('HAVE_QRENCODE') == 1
- journalctl_sources += files('journal-qrcode.c',
- 'journal-qrcode.h')
-endif
-
install_data('journald.conf',
install_dir : pkgsysconfdir)
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <errno.h>
#include <stdlib.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <stdbool.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include "alloc-util.h"
#include "dlfcn-util.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#if HAVE_PCRE2
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <errno.h>
#include <fcntl.h>
assert_return(j, -EINVAL);
assert_return(!journal_pid_changed(j), -ECHILD);
+ assert_return(skip <= INT_MAX, -ERANGE);
if (skip == 0) {
/* If this is not a discrete skip, then at least
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <stdio.h>
#include <linux/audit.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <errno.h>
#include <fcntl.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include "alloc-util.h"
#include "compress.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <sys/stat.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <stdbool.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <stdio.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <fcntl.h>
#include <unistd.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include "sd-journal.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <fcntl.h>
#include <unistd.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <stdio.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <errno.h>
#include <stdlib.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <fcntl.h>
#include <unistd.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include "alloc-util.h"
#include "journald-syslog.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <fcntl.h>
#include <stdio.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <fcntl.h>
#include <unistd.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <fcntl.h>
#include <stdlib.h>
#!/usr/bin/env bash
# -*- mode: shell-script; indent-tabs-mode: nil; sh-basic-offset: 4; -*-
# ex: ts=8 sw=4 sts=4 et filetype=sh
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
want_kernel_install = get_option('kernel-install')
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
/***
Copyright © 2014 Axis Communications AB. All rights reserved.
***/
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
/***
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
extern const struct hash_ops dhcp_option_hash_ops;
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <linux/if_infiniband.h>
#include <net/if_arp.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include "sd-id128.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
/***
extern const struct hash_ops dhcp_option_hash_ops;
-int dhcp_network_bind_raw_socket(int ifindex, union sockaddr_union *link,
- uint32_t xid, const uint8_t *mac_addr,
- size_t mac_addr_len, uint16_t arp_type,
- uint16_t port);
+int dhcp_network_bind_raw_socket(int ifindex, union sockaddr_union *link, uint32_t xid,
+ const uint8_t *mac_addr, size_t mac_addr_len,
+ const uint8_t *bcast_addr, size_t bcast_addr_len,
+ uint16_t arp_type, uint16_t port);
int dhcp_network_bind_udp_socket(int ifindex, be32_t address, uint16_t port, int ip_service_type);
int dhcp_network_send_raw_socket(int s, const union sockaddr_union *link,
const void *packet, size_t len);
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
/***
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
/***
Copyright © 2013 Intel Corporation. All rights reserved.
***/
#include "unaligned.h"
static int _bind_raw_socket(int ifindex, union sockaddr_union *link,
- uint32_t xid, const uint8_t *mac_addr,
- size_t mac_addr_len,
+ uint32_t xid,
const uint8_t *bcast_addr,
+ size_t bcast_addr_len,
const struct ether_addr *eth_mac,
uint16_t arp_type, uint8_t dhcp_hlen,
uint16_t port) {
.sll_protocol = htobe16(ETH_P_IP),
.sll_ifindex = ifindex,
.sll_hatype = htobe16(arp_type),
- .sll_halen = mac_addr_len,
+ .sll_halen = bcast_addr_len,
};
- memcpy(link->ll.sll_addr, bcast_addr, mac_addr_len);
+ memcpy(link->ll.sll_addr, bcast_addr, bcast_addr_len);
r = bind(s, &link->sa, SOCKADDR_LL_LEN(link->ll));
if (r < 0)
return TAKE_FD(s);
}
-int dhcp_network_bind_raw_socket(int ifindex, union sockaddr_union *link,
- uint32_t xid, const uint8_t *mac_addr,
- size_t mac_addr_len, uint16_t arp_type,
- uint16_t port) {
+int dhcp_network_bind_raw_socket(int ifindex, union sockaddr_union *link, uint32_t xid,
+ const uint8_t *mac_addr, size_t mac_addr_len,
+ const uint8_t *bcast_addr, size_t bcast_addr_len,
+ uint16_t arp_type, uint16_t port) {
static const uint8_t eth_bcast[] = { 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF };
/* Default broadcast address for IPoIB */
static const uint8_t ib_bcast[] = {
0x00, 0xff, 0xff, 0xff, 0xff, 0x12, 0x40, 0x1b,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xff, 0xff, 0xff, 0xff
- };
+ };
struct ether_addr eth_mac = { { 0, 0, 0, 0, 0, 0 } };
- const uint8_t *bcast_addr = NULL;
+ const uint8_t *default_bcast_addr;
+ size_t expected_bcast_addr_len;
uint8_t dhcp_hlen = 0;
if (arp_type == ARPHRD_ETHER) {
assert_return(mac_addr_len == ETH_ALEN, -EINVAL);
memcpy(ð_mac, mac_addr, ETH_ALEN);
- bcast_addr = eth_bcast;
dhcp_hlen = ETH_ALEN;
+
+ default_bcast_addr = eth_bcast;
+ expected_bcast_addr_len = ETH_ALEN;
} else if (arp_type == ARPHRD_INFINIBAND) {
- assert_return(mac_addr_len == INFINIBAND_ALEN, -EINVAL);
- bcast_addr = ib_bcast;
+ default_bcast_addr = ib_bcast;
+ expected_bcast_addr_len = INFINIBAND_ALEN;
} else
return -EINVAL;
- return _bind_raw_socket(ifindex, link, xid, mac_addr, mac_addr_len,
- bcast_addr, ð_mac, arp_type, dhcp_hlen, port);
+ if (bcast_addr && bcast_addr_len > 0)
+ assert_return(bcast_addr_len == expected_bcast_addr_len, -EINVAL);
+ else {
+ bcast_addr = default_bcast_addr;
+ bcast_addr_len = expected_bcast_addr_len;
+ }
+
+ return _bind_raw_socket(ifindex, link, xid, bcast_addr, bcast_addr_len,
+ ð_mac, arp_type, dhcp_hlen, port);
}
int dhcp_network_bind_udp_socket(int ifindex, be32_t address, uint16_t port, int ip_service_type) {
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
/***
Copyright © 2013 Intel Corporation. All rights reserved.
***/
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
/***
Copyright © 2013 Intel Corporation. All rights reserved.
***/
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
/***
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
/***
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
/***
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
/***
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
/***
Copyright © 2014 Intel Corporation. All rights reserved.
***/
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
/***
Copyright © 2014-2015 Intel Corporation. All rights reserved.
***/
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
/***
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
/***
Copyright © 2014 Intel Corporation. All rights reserved.
***/
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
/***
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include "sd-event.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include "alloc-util.h"
#include "escape.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <inttypes.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <linux/filter.h>
#include <netinet/if_ether.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include "sd-event.h"
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
sources = files('''
sd-dhcp-client.c
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
/***
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
/***
Copyright © 2014 Intel Corporation. All rights reserved.
***/
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
/***
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <arpa/inet.h>
#include <linux/if.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <linux/nl80211.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
/***
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
/***
Copyright © 2013 Intel Corporation. All rights reserved.
***/
#include "sd-dhcp-client.h"
#include "alloc-util.h"
-#include "async.h"
#include "dhcp-identifier.h"
#include "dhcp-internal.h"
#include "dhcp-lease-internal.h"
#include "dhcp-protocol.h"
#include "dns-domain.h"
#include "event-util.h"
+#include "fd-util.h"
#include "hostname-util.h"
#include "io-util.h"
#include "memory-util.h"
be32_t last_addr;
uint8_t mac_addr[MAX_MAC_ADDR_LEN];
size_t mac_addr_len;
+ uint8_t bcast_addr[MAX_MAC_ADDR_LEN];
+ size_t bcast_addr_len;
uint16_t arp_type;
sd_dhcp_client_id client_id;
size_t client_id_len;
int sd_dhcp_client_set_mac(
sd_dhcp_client *client,
const uint8_t *addr,
+ const uint8_t *bcast_addr,
size_t addr_len,
uint16_t arp_type) {
return -EINVAL;
if (client->mac_addr_len == addr_len &&
- memcmp(&client->mac_addr, addr, addr_len) == 0)
+ memcmp(&client->mac_addr, addr, addr_len) == 0 &&
+ (client->bcast_addr_len > 0) == !!bcast_addr &&
+ (!bcast_addr || memcmp(&client->bcast_addr, bcast_addr, addr_len) == 0))
return 0;
if (!IN_SET(client->state, DHCP_STATE_INIT, DHCP_STATE_STOPPED)) {
memcpy(&client->mac_addr, addr, addr_len);
client->mac_addr_len = addr_len;
client->arp_type = arp_type;
+ client->bcast_addr_len = 0;
+
+ if (bcast_addr) {
+ memcpy(&client->bcast_addr, bcast_addr, addr_len);
+ client->bcast_addr_len = addr_len;
+ }
if (need_restart && client->state != DHCP_STATE_STOPPED) {
r = sd_dhcp_client_start(client);
client->receive_message = sd_event_source_unref(client->receive_message);
- client->fd = asynchronous_close(client->fd);
+ client->fd = safe_close(client->fd);
(void) event_source_disable(client->timeout_resend);
(void) event_source_disable(client->timeout_t1);
client->xid = random_u32();
- r = dhcp_network_bind_raw_socket(client->ifindex, &client->link,
- client->xid, client->mac_addr,
- client->mac_addr_len, client->arp_type, client->port);
+ r = dhcp_network_bind_raw_socket(client->ifindex, &client->link, client->xid,
+ client->mac_addr, client->mac_addr_len,
+ client->bcast_addr, client->bcast_addr_len,
+ client->arp_type, client->port);
if (r < 0) {
client_stop(client, r);
return r;
assert(client);
client->receive_message = sd_event_source_unref(client->receive_message);
- client->fd = asynchronous_close(client->fd);
+ client->fd = safe_close(client->fd);
client->state = DHCP_STATE_REBINDING;
client->attempt = 0;
- r = dhcp_network_bind_raw_socket(client->ifindex, &client->link,
- client->xid, client->mac_addr,
- client->mac_addr_len, client->arp_type,
- client->port);
+ r = dhcp_network_bind_raw_socket(client->ifindex, &client->link, client->xid,
+ client->mac_addr, client->mac_addr_len,
+ client->bcast_addr, client->bcast_addr_len,
+ client->arp_type, client->port);
if (r < 0) {
client_stop(client, r);
return 0;
(void) event_source_disable(client->timeout_resend);
client->receive_message =
sd_event_source_unref(client->receive_message);
- client->fd = asynchronous_close(client->fd);
+ client->fd = safe_close(client->fd);
if (IN_SET(client->state, DHCP_STATE_REQUESTING,
DHCP_STATE_REBOOTING))
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
/***
Copyright © 2013 Intel Corporation. All rights reserved.
***/
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
/***
Copyright © 2013 Intel Corporation. All rights reserved.
***/
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
/***
Copyright © 2014-2015 Intel Corporation. All rights reserved.
***/
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
/***
Copyright © 2014-2015 Intel Corporation. All rights reserved.
***/
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
/***
Copyright © 2014 Axis Communications AB. All rights reserved.
***/
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
/***
Copyright © 2014 Axis Communications AB. All rights reserved.
***/
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <arpa/inet.h>
#include <linux/sockios.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
/***
Copyright © 2014 Intel Corporation. All rights reserved.
***/
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
/***
Copyright © 2017 Intel Corporation. All rights reserved.
***/
return 0;
}
-_public_ int sd_radv_set_router_lifetime(sd_radv *ra, uint32_t router_lifetime) {
+_public_ int sd_radv_set_router_lifetime(sd_radv *ra, uint16_t router_lifetime) {
assert_return(ra, -EINVAL);
if (ra->state != SD_RADV_STATE_IDLE)
return -EBUSY;
- /* RFC 4191, Section 2.2, "...If the Router Lifetime is zero, the
- preference value MUST be set to (00) by the sender..." */
+ /* RFC 4191, Section 2.2, "...If the Router Lifetime is zero, the preference value MUST be set
+ * to (00) by the sender..." */
if (router_lifetime == 0 &&
(ra->flags & (0x3 << 3)) != (SD_NDISC_PREFERENCE_MEDIUM << 3))
return -ETIME;
}
_public_ int sd_radv_set_preference(sd_radv *ra, unsigned preference) {
- int r = 0;
-
assert_return(ra, -EINVAL);
assert_return(IN_SET(preference,
SD_NDISC_PREFERENCE_LOW,
SD_NDISC_PREFERENCE_MEDIUM,
SD_NDISC_PREFERENCE_HIGH), -EINVAL);
+ /* RFC 4191, Section 2.2, "...If the Router Lifetime is zero, the preference value MUST be set
+ * to (00) by the sender..." */
+ if (ra->lifetime == 0 && preference != SD_NDISC_PREFERENCE_MEDIUM)
+ return -EINVAL;
+
ra->flags = (ra->flags & ~(0x3 << 3)) | (preference << 3);
- return r;
+ return 0;
}
_public_ int sd_radv_add_prefix(sd_radv *ra, sd_radv_prefix *p, int dynamic) {
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <errno.h>
#include <stdlib.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
/***
Copyright © 2013 Intel Corporation. All rights reserved.
***/
#include "util.h"
static uint8_t mac_addr[] = {'A', 'B', 'C', '1', '2', '3'};
+static uint8_t bcast_addr[] = { 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF };
typedef int (*test_callback_recv_t)(size_t size, DHCPMessage *dhcp);
union sockaddr_union *link,
uint32_t id,
const uint8_t *addr, size_t addr_len,
+ const uint8_t *bcaddr, size_t bcaddr_len,
uint16_t arp_type, uint16_t port) {
if (socketpair(AF_UNIX, SOCK_STREAM | SOCK_CLOEXEC | SOCK_NONBLOCK, 0, test_fd) < 0)
assert_se(r >= 0);
assert_se(sd_dhcp_client_set_ifindex(client, 42) >= 0);
- assert_se(sd_dhcp_client_set_mac(client, mac_addr, ETH_ALEN, ARPHRD_ETHER) >= 0);
+ assert_se(sd_dhcp_client_set_mac(client, mac_addr, bcast_addr, ETH_ALEN, ARPHRD_ETHER) >= 0);
assert_se(sd_dhcp_client_set_request_option(client, 248) >= 0);
assert_se(r >= 0);
assert_se(sd_dhcp_client_set_ifindex(client, 42) >= 0);
- assert_se(sd_dhcp_client_set_mac(client, mac_addr, ETH_ALEN, ARPHRD_ETHER) >= 0);
+ assert_se(sd_dhcp_client_set_mac(client, mac_addr, bcast_addr, ETH_ALEN, ARPHRD_ETHER) >= 0);
assert_se(sd_dhcp_client_set_callback(client, test_addr_acq_acquired, e) >= 0);
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <errno.h>
#include <net/if_arp.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
/***
Copyright © 2013 Intel Corporation. All rights reserved.
***/
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
/***
Copyright © 2014 Intel Corporation. All rights reserved.
***/
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <errno.h>
#include <net/if.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
/***
Copyright © 2014 Axis Communications AB. All rights reserved.
***/
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <arpa/inet.h>
#include <errno.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
/***
Copyright © 2017 Intel Corporation. All rights reserved.
***/
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
/***
Copyright © 2014 Intel Corporation. All rights reserved.
***/
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
+
#include <errno.h>
#include "dhcp-lease-internal.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include "mempool.h"
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
/***
- SPDX-License-Identifier: LGPL-2.1+
+ SPDX-License-Identifier: LGPL-2.1-or-later
systemd is free software; you can redistribute it and/or modify it
under the terms of the GNU Lesser General Public License as published by
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
id128_sources = files('''
sd-id128/id128-util.c
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <errno.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include "bus-error.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <fcntl.h>
#include <unistd.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include "sd-bus.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#if HAVE_VALGRIND_MEMCHECK_H
#include <valgrind/memcheck.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include "sd-bus.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <unistd.h>
#include <sys/types.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <linux/capability.h>
#include <stdlib.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <stdbool.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <sys/time.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <stdbool.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <errno.h>
#include <stdarg.h>
return e->message;
}
- return strerror_safe(abs(error));
+ return strerror_safe(error);
}
static bool map_ok(const sd_bus_error_map *map) {
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <stdbool.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <errno.h>
#include <string.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include "macro.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include "alloc-util.h"
#include "bus-internal.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <pthread.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include "bus-internal.h"
#include "bus-introspect.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <stdio.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#if HAVE_VALGRIND_MEMCHECK_H
#include <valgrind/memcheck.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include "sd-bus.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include "alloc-util.h"
#include "bus-internal.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include "sd-bus.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <errno.h>
#include <fcntl.h>
int sz;
sz = bus_gvariant_get_size(c->signature);
+ if (sz == 0)
+ return -EBADMSG;
if (sz < 0) {
int alignment;
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <byteswap.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include "alloc-util.h"
#include "bus-internal.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include "bus-internal.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <endian.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <util.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <stdbool.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include "sd-bus.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include "sd-bus.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <endian.h>
#include <poll.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include "sd-bus.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include "sd-bus.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
void bus_track_dispatch(sd_bus_track *track);
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <errno.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <stdbool.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <endian.h>
#include <netdb.h>
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
+
#include "sd-bus.h"
#include "bus-internal.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <sys/wait.h>
#include <unistd.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <fcntl.h>
#include <pthread.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <stdio.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include "sd-bus.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include "sd-bus.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#if HAVE_GLIB
#include <glib.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include "bus-introspect.h"
#include "log.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <math.h>
#include <stdlib.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include "bus-match.h"
#include "bus-message.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <pthread.h>
#include <stdlib.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include "sd-bus.h"
#include "main-func.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <pthread.h>
#include <stdlib.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include "bus-internal.h"
#include "bus-signature.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <errno.h>
#include <sys/socket.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <stdbool.h>
#include <stddef.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <pthread.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
/* This is meant to be included in other files, hence no headers */
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <errno.h>
#include <limits.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include "sd-device.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <fcntl.h>
#include <unistd.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include "sd-device.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include "sd-device.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <errno.h>
#include <linux/filter.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <ctype.h>
#include <net/if.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <inttypes.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#define FOREACH_DEVICE_PROPERTY(device, key, value) \
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <ctype.h>
#include <net/if.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <stdbool.h>
#include <unistd.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <pthread.h>
#include <stdbool.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include "device-enumerator-private.h"
#include "device-private.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <pthread.h>
#include <stdbool.h>
#pragma once
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <sys/epoll.h>
#include <sys/timerfd.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <errno.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <stdbool.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <sys/epoll.h>
#include <sys/timerfd.h>
event_unmask_signal_data(e, d, sig);
}
+static void event_source_pp_prioq_reshuffle(sd_event_source *s) {
+ assert(s);
+
+ /* Reshuffles the pending + prepare prioqs. Called whenever the dispatch order changes, i.e. when
+ * they are enabled/disabled or marked pending and such. */
+
+ if (s->pending)
+ prioq_reshuffle(s->event->pending, s, &s->pending_index);
+
+ if (s->prepare)
+ prioq_reshuffle(s->event->prepare, s, &s->prepare_index);
+}
+
+static void event_source_time_prioq_reshuffle(sd_event_source *s) {
+ struct clock_data *d;
+
+ assert(s);
+ assert(EVENT_SOURCE_IS_TIME(s->type));
+
+ /* Called whenever the event source's timer ordering properties changed, i.e. time, accuracy,
+ * pending, enable state. Makes sure the two prioq's are ordered properly again. */
+ assert_se(d = event_get_clock_data(s->event, s->type));
+ prioq_reshuffle(d->earliest, s, &s->time.earliest_index);
+ prioq_reshuffle(d->latest, s, &s->time.latest_index);
+ d->needs_rearm = true;
+}
+
static void source_disconnect(sd_event_source *s) {
sd_event *event;
} else
assert_se(prioq_remove(s->event->pending, s, &s->pending_index));
- if (EVENT_SOURCE_IS_TIME(s->type)) {
- struct clock_data *d;
-
- d = event_get_clock_data(s->event, s->type);
- assert(d);
-
- prioq_reshuffle(d->earliest, s, &s->time.earliest_index);
- prioq_reshuffle(d->latest, s, &s->time.latest_index);
- d->needs_rearm = true;
- }
+ if (EVENT_SOURCE_IS_TIME(s->type))
+ event_source_time_prioq_reshuffle(s);
if (s->type == SOURCE_SIGNAL && !b) {
struct signal_data *d;
} else
s->priority = priority;
- if (s->pending)
- prioq_reshuffle(s->event->pending, s, &s->pending_index);
-
- if (s->prepare)
- prioq_reshuffle(s->event->prepare, s, &s->prepare_index);
+ event_source_pp_prioq_reshuffle(s);
if (s->type == SOURCE_EXIT)
prioq_reshuffle(s->event->exit, s, &s->exit.prioq_index);
return s->enabled != SD_EVENT_OFF;
}
-_public_ int sd_event_source_set_enabled(sd_event_source *s, int m) {
+static int event_source_disable(sd_event_source *s) {
int r;
- assert_return(s, -EINVAL);
- assert_return(IN_SET(m, SD_EVENT_OFF, SD_EVENT_ON, SD_EVENT_ONESHOT), -EINVAL);
- assert_return(!event_pid_changed(s->event), -ECHILD);
-
- /* If we are dead anyway, we are fine with turning off
- * sources, but everything else needs to fail. */
- if (s->event->state == SD_EVENT_FINISHED)
- return m == SD_EVENT_OFF ? 0 : -ESTALE;
-
- if (s->enabled == m)
- return 0;
+ assert(s);
+ assert(s->enabled != SD_EVENT_OFF);
- if (m == SD_EVENT_OFF) {
+ /* Unset the pending flag when this event source is disabled */
+ if (!IN_SET(s->type, SOURCE_DEFER, SOURCE_EXIT)) {
+ r = source_set_pending(s, false);
+ if (r < 0)
+ return r;
+ }
- /* Unset the pending flag when this event source is disabled */
- if (!IN_SET(s->type, SOURCE_DEFER, SOURCE_EXIT)) {
- r = source_set_pending(s, false);
- if (r < 0)
- return r;
- }
+ s->enabled = SD_EVENT_OFF;
- switch (s->type) {
+ switch (s->type) {
- case SOURCE_IO:
- source_io_unregister(s);
- s->enabled = m;
- break;
+ case SOURCE_IO:
+ source_io_unregister(s);
+ break;
- case SOURCE_TIME_REALTIME:
- case SOURCE_TIME_BOOTTIME:
- case SOURCE_TIME_MONOTONIC:
- case SOURCE_TIME_REALTIME_ALARM:
- case SOURCE_TIME_BOOTTIME_ALARM: {
- struct clock_data *d;
+ case SOURCE_TIME_REALTIME:
+ case SOURCE_TIME_BOOTTIME:
+ case SOURCE_TIME_MONOTONIC:
+ case SOURCE_TIME_REALTIME_ALARM:
+ case SOURCE_TIME_BOOTTIME_ALARM:
+ event_source_time_prioq_reshuffle(s);
+ break;
- s->enabled = m;
- d = event_get_clock_data(s->event, s->type);
- assert(d);
+ case SOURCE_SIGNAL:
+ event_gc_signal_data(s->event, &s->priority, s->signal.sig);
+ break;
- prioq_reshuffle(d->earliest, s, &s->time.earliest_index);
- prioq_reshuffle(d->latest, s, &s->time.latest_index);
- d->needs_rearm = true;
- break;
- }
+ case SOURCE_CHILD:
+ assert(s->event->n_enabled_child_sources > 0);
+ s->event->n_enabled_child_sources--;
- case SOURCE_SIGNAL:
- s->enabled = m;
+ if (EVENT_SOURCE_WATCH_PIDFD(s))
+ source_child_pidfd_unregister(s);
+ else
+ event_gc_signal_data(s->event, &s->priority, SIGCHLD);
+ break;
- event_gc_signal_data(s->event, &s->priority, s->signal.sig);
- break;
+ case SOURCE_EXIT:
+ prioq_reshuffle(s->event->exit, s, &s->exit.prioq_index);
+ break;
- case SOURCE_CHILD:
- s->enabled = m;
+ case SOURCE_DEFER:
+ case SOURCE_POST:
+ case SOURCE_INOTIFY:
+ break;
- assert(s->event->n_enabled_child_sources > 0);
- s->event->n_enabled_child_sources--;
+ default:
+ assert_not_reached("Wut? I shouldn't exist.");
+ }
- if (EVENT_SOURCE_WATCH_PIDFD(s))
- source_child_pidfd_unregister(s);
- else
- event_gc_signal_data(s->event, &s->priority, SIGCHLD);
+ return 0;
+}
- break;
+static int event_source_enable(sd_event_source *s, int m) {
+ int r;
- case SOURCE_EXIT:
- s->enabled = m;
- prioq_reshuffle(s->event->exit, s, &s->exit.prioq_index);
- break;
+ assert(s);
+ assert(IN_SET(m, SD_EVENT_ON, SD_EVENT_ONESHOT));
+ assert(s->enabled == SD_EVENT_OFF);
- case SOURCE_DEFER:
- case SOURCE_POST:
- case SOURCE_INOTIFY:
- s->enabled = m;
- break;
+ /* Unset the pending flag when this event source is enabled */
+ if (!IN_SET(s->type, SOURCE_DEFER, SOURCE_EXIT)) {
+ r = source_set_pending(s, false);
+ if (r < 0)
+ return r;
+ }
- default:
- assert_not_reached("Wut? I shouldn't exist.");
- }
+ s->enabled = m;
- } else {
+ switch (s->type) {
- /* Unset the pending flag when this event source is enabled */
- if (s->enabled == SD_EVENT_OFF && !IN_SET(s->type, SOURCE_DEFER, SOURCE_EXIT)) {
- r = source_set_pending(s, false);
- if (r < 0)
- return r;
+ case SOURCE_IO:
+ r = source_io_register(s, m, s->io.events);
+ if (r < 0) {
+ s->enabled = SD_EVENT_OFF;
+ return r;
}
- switch (s->type) {
-
- case SOURCE_IO:
- r = source_io_register(s, m, s->io.events);
- if (r < 0)
- return r;
+ break;
- s->enabled = m;
- break;
+ case SOURCE_TIME_REALTIME:
+ case SOURCE_TIME_BOOTTIME:
+ case SOURCE_TIME_MONOTONIC:
+ case SOURCE_TIME_REALTIME_ALARM:
+ case SOURCE_TIME_BOOTTIME_ALARM:
+ event_source_time_prioq_reshuffle(s);
+ break;
- case SOURCE_TIME_REALTIME:
- case SOURCE_TIME_BOOTTIME:
- case SOURCE_TIME_MONOTONIC:
- case SOURCE_TIME_REALTIME_ALARM:
- case SOURCE_TIME_BOOTTIME_ALARM: {
- struct clock_data *d;
+ case SOURCE_SIGNAL:
+ r = event_make_signal_data(s->event, s->signal.sig, NULL);
+ if (r < 0) {
+ s->enabled = SD_EVENT_OFF;
+ event_gc_signal_data(s->event, &s->priority, s->signal.sig);
+ return r;
+ }
- s->enabled = m;
- d = event_get_clock_data(s->event, s->type);
- assert(d);
+ break;
- prioq_reshuffle(d->earliest, s, &s->time.earliest_index);
- prioq_reshuffle(d->latest, s, &s->time.latest_index);
- d->needs_rearm = true;
- break;
- }
+ case SOURCE_CHILD:
+ s->event->n_enabled_child_sources++;
- case SOURCE_SIGNAL:
+ if (EVENT_SOURCE_WATCH_PIDFD(s)) {
+ /* yes, we have pidfd */
- s->enabled = m;
+ r = source_child_pidfd_register(s, s->enabled);
+ if (r < 0) {
+ s->enabled = SD_EVENT_OFF;
+ s->event->n_enabled_child_sources--;
+ return r;
+ }
+ } else {
+ /* no pidfd, or something other to watch for than WEXITED */
- r = event_make_signal_data(s->event, s->signal.sig, NULL);
+ r = event_make_signal_data(s->event, SIGCHLD, NULL);
if (r < 0) {
s->enabled = SD_EVENT_OFF;
- event_gc_signal_data(s->event, &s->priority, s->signal.sig);
+ s->event->n_enabled_child_sources--;
+ event_gc_signal_data(s->event, &s->priority, SIGCHLD);
return r;
}
+ }
- break;
+ break;
- case SOURCE_CHILD:
+ case SOURCE_EXIT:
+ prioq_reshuffle(s->event->exit, s, &s->exit.prioq_index);
+ break;
- if (s->enabled == SD_EVENT_OFF)
- s->event->n_enabled_child_sources++;
+ case SOURCE_DEFER:
+ case SOURCE_POST:
+ case SOURCE_INOTIFY:
+ break;
- s->enabled = m;
+ default:
+ assert_not_reached("Wut? I shouldn't exist.");
+ }
- if (EVENT_SOURCE_WATCH_PIDFD(s)) {
- /* yes, we have pidfd */
+ return 0;
+}
- r = source_child_pidfd_register(s, s->enabled);
- if (r < 0) {
- s->enabled = SD_EVENT_OFF;
- s->event->n_enabled_child_sources--;
- return r;
- }
- } else {
- /* no pidfd, or something other to watch for than WEXITED */
+_public_ int sd_event_source_set_enabled(sd_event_source *s, int m) {
+ int r;
- r = event_make_signal_data(s->event, SIGCHLD, NULL);
- if (r < 0) {
- s->enabled = SD_EVENT_OFF;
- s->event->n_enabled_child_sources--;
- event_gc_signal_data(s->event, &s->priority, SIGCHLD);
- return r;
- }
- }
+ assert_return(s, -EINVAL);
+ assert_return(IN_SET(m, SD_EVENT_OFF, SD_EVENT_ON, SD_EVENT_ONESHOT), -EINVAL);
+ assert_return(!event_pid_changed(s->event), -ECHILD);
- break;
+ /* If we are dead anyway, we are fine with turning off sources, but everything else needs to fail. */
+ if (s->event->state == SD_EVENT_FINISHED)
+ return m == SD_EVENT_OFF ? 0 : -ESTALE;
- case SOURCE_EXIT:
- s->enabled = m;
- prioq_reshuffle(s->event->exit, s, &s->exit.prioq_index);
- break;
+ if (s->enabled == m) /* No change? */
+ return 0;
- case SOURCE_DEFER:
- case SOURCE_POST:
- case SOURCE_INOTIFY:
+ if (m == SD_EVENT_OFF)
+ r = event_source_disable(s);
+ else {
+ if (s->enabled != SD_EVENT_OFF) {
+ /* Switching from "on" to "oneshot" or back? If that's the case, we can take a shortcut, the
+ * event source is already enabled after all. */
s->enabled = m;
- break;
-
- default:
- assert_not_reached("Wut? I shouldn't exist.");
+ return 0;
}
- }
-
- if (s->pending)
- prioq_reshuffle(s->event->pending, s, &s->pending_index);
- if (s->prepare)
- prioq_reshuffle(s->event->prepare, s, &s->prepare_index);
+ r = event_source_enable(s, m);
+ }
+ if (r < 0)
+ return r;
+ event_source_pp_prioq_reshuffle(s);
return 0;
}
}
_public_ int sd_event_source_set_time(sd_event_source *s, uint64_t usec) {
- struct clock_data *d;
int r;
assert_return(s, -EINVAL);
s->time.next = usec;
- d = event_get_clock_data(s->event, s->type);
- assert(d);
-
- prioq_reshuffle(d->earliest, s, &s->time.earliest_index);
- prioq_reshuffle(d->latest, s, &s->time.latest_index);
- d->needs_rearm = true;
-
+ event_source_time_prioq_reshuffle(s);
return 0;
}
}
_public_ int sd_event_source_set_time_accuracy(sd_event_source *s, uint64_t usec) {
- struct clock_data *d;
int r;
assert_return(s, -EINVAL);
s->time.accuracy = usec;
- d = event_get_clock_data(s->event, s->type);
- assert(d);
-
- prioq_reshuffle(d->latest, s, &s->time.latest_index);
- d->needs_rearm = true;
-
+ event_source_time_prioq_reshuffle(s);
return 0;
}
if (r < 0)
return r;
- prioq_reshuffle(d->earliest, s, &s->time.earliest_index);
- prioq_reshuffle(d->latest, s, &s->time.latest_index);
- d->needs_rearm = true;
+ event_source_time_prioq_reshuffle(s);
}
return 0;
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <sys/wait.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <stdint.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <ctype.h>
#include <stdio.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <stdbool.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
/***
Copyright © 2008 Alan Jenkins <alan.christopher.jenkins@googlemail.com>
***/
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <errno.h>
#include <fcntl.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <stdbool.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <errno.h>
#include <fcntl.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <errno.h>
#include <poll.h>
char t[DECIMAL_STR_MAX(uid_t)];
xsprintf(t, UID_FMT, uid);
- return string_contains_word(content, ",", t);
+ return string_contains_word(content, NULL, t);
}
static int uid_get_array(uid_t uid, const char *variable, char ***array) {
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <poll.h>
r = sd_pid_get_cgroup(0, &cgroup);
log_info("sd_pid_get_cgroup(0, …) → %s / \"%s\"", e(r), strnull(cgroup));
- assert_se(r == 0);
+ assert_se(IN_SET(r, 0, -ENOMEDIUM));
r = sd_uid_get_display(u2, &display_session);
log_info("sd_uid_get_display("UID_FMT", …) → %s / \"%s\"", u2, e(r), strnull(display_session));
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <linux/genetlink.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include "sd-netlink.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <linux/netlink.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <netinet/in.h>
#include <stdbool.h>
return 0;
}
+int netlink_message_append_hw_addr(sd_netlink_message *m, unsigned short type, const hw_addr_data *data) {
+ int r;
+
+ assert_return(m, -EINVAL);
+ assert_return(!m->sealed, -EPERM);
+ assert_return(data, -EINVAL);
+ assert_return(data->length > 0, -EINVAL);
+
+ r = message_attribute_has_type(m, NULL, type, NETLINK_TYPE_ETHER_ADDR);
+ if (r < 0)
+ return r;
+
+ r = add_rtattr(m, type, data->addr.bytes, data->length);
+ if (r < 0)
+ return r;
+
+ return 0;
+}
+
int sd_netlink_message_append_cache_info(sd_netlink_message *m, unsigned short type, const struct ifa_cacheinfo *info) {
int r;
return 0;
}
+int netlink_message_read_hw_addr(sd_netlink_message *m, unsigned short type, hw_addr_data *data) {
+ int r;
+ void *attr_data;
+
+ assert_return(m, -EINVAL);
+
+ r = message_attribute_has_type(m, NULL, type, NETLINK_TYPE_ETHER_ADDR);
+ if (r < 0)
+ return r;
+
+ r = netlink_message_read_internal(m, type, &attr_data, NULL);
+ if (r < 0)
+ return r;
+ else if ((size_t) r > sizeof(union hw_addr_union))
+ return -EIO;
+
+ if (data) {
+ memcpy(data->addr.bytes, attr_data, r);
+ data->length = r;
+ }
+
+ return 0;
+}
+
int sd_netlink_message_read_cache_info(sd_netlink_message *m, unsigned short type, struct ifa_cacheinfo *info) {
int r;
void *attr_data;
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <errno.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include "sd-netlink.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <netinet/in.h>
#include <stdbool.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <netinet/in.h>
#include <stdint.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include "macro.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include "sd-netlink.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <linux/rtnetlink.h>
#include "sd-netlink.h"
+#include "ether-addr-util.h"
#include "in-addr-util.h"
#include "ordered-set.h"
#include "socket-util.h"
userdata, description); \
})
+int netlink_message_append_hw_addr(sd_netlink_message *m, unsigned short type, const hw_addr_data *data);
int netlink_message_append_in_addr_union(sd_netlink_message *m, unsigned short type, int family, const union in_addr_union *data);
int netlink_message_append_sockaddr_union(sd_netlink_message *m, unsigned short type, const union sockaddr_union *data);
+int netlink_message_read_hw_addr(sd_netlink_message *m, unsigned short type, hw_addr_data *data);
int netlink_message_read_in_addr_union(sd_netlink_message *m, unsigned short type, int family, union in_addr_union *data);
void rtattr_append_attribute_internal(struct rtattr *rta, unsigned short type, const void *data, size_t data_length);
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <netinet/in.h>
#include <linux/if_addrlabel.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <poll.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <net/if.h>
#include <netinet/ether.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include "alloc-util.h"
#include "fd-util.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include "sd-network.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <errno.h>
#include <poll.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include "sd-path.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include "sd-resolve.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <errno.h>
#include <poll.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <arpa/inet.h>
#include <errno.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include "sd-utf8.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include "libudev.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <ctype.h>
#include <dirent.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <dirent.h>
#include <errno.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <errno.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include "libudev.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include "alloc-util.h"
#include "hashmap.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <errno.h>
#include <poll.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
/***
Copyright © 2009 Alan Jenkins <alan-jenkins@tuffmail.co.uk>
***/
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <ctype.h>
#include <errno.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include "libudev.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <ctype.h>
#include <stdarg.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#ifndef _LIBUDEV_H_
#define _LIBUDEV_H_
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
/***
- SPDX-License-Identifier: LGPL-2.1+
+ SPDX-License-Identifier: LGPL-2.1-or-later
systemd is free software; you can redistribute it and/or modify it
under the terms of the GNU Lesser General Public License as published by
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
libudev_sources = files('''
libudev.c
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <errno.h>
#include <sys/stat.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include "sd-bus.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <ftw.h>
#include <getopt.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <errno.h>
#include <sys/stat.h>
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
systemd_localed_sources = files('''
localed.c
"http://www.freedesktop.org/standards/dbus/1.0/busconfig.dtd">
<!--
- SPDX-License-Identifier: LGPL-2.1+
+ SPDX-License-Identifier: LGPL-2.1-or-later
This file is part of systemd.
"http://www.freedesktop.org/standards/PolicyKit/1/policyconfig.dtd">
<!--
- SPDX-License-Identifier: LGPL-2.1+
+ SPDX-License-Identifier: LGPL-2.1-or-later
This file is part of systemd.
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include "alloc-util.h"
#include "keymap-util.h"
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <fcntl.h>
#include <getopt.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <errno.h>
#include <getopt.h>
printf("\t Leader: %"PRIu32, i.leader);
- get_process_comm(i.leader, &t);
+ (void) get_process_comm(i.leader, &t);
if (t)
printf(" (%s)", t);
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <errno.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <stdbool.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <unistd.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include "conf-parser.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include "bus-util.h"
#include "device-util.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include "sd-bus.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <errno.h>
#include <fcntl.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
typedef struct Button Button;
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <fcntl.h>
#include <sys/ioctl.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <errno.h>
#include <sys/stat.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include "sd-bus.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <string.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
typedef struct Device Device;
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <errno.h>
#include <fcntl.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
typedef struct Inhibitor Inhibitor;
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <errno.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include "sd-bus.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <errno.h>
#include <fcntl.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
typedef struct Seat Seat;
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <errno.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include "sd-bus.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <fcntl.h>
#include <string.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
typedef enum DeviceType DeviceType;
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <errno.h>
#include <fcntl.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
typedef struct Session Session;
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <errno.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include "sd-bus.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <errno.h>
#include <unistd.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
typedef struct User User;
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <errno.h>
#include <unistd.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <errno.h>
#include <fcntl.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <stdbool.h>
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
systemd_logind_sources = files('''
logind.c
"http://www.freedesktop.org/standards/dbus/1.0/busconfig.dtd">
<!--
- SPDX-License-Identifier: LGPL-2.1+
+ SPDX-License-Identifier: LGPL-2.1-or-later
This file is part of systemd.
"http://www.freedesktop.org/standards/PolicyKit/1/policyconfig.dtd">
<!--
- SPDX-License-Identifier: LGPL-2.1+
+ SPDX-License-Identifier: LGPL-2.1-or-later
This file is part of systemd.
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <endian.h>
#include <errno.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
{
global:
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <errno.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <sys/types.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <unistd.h>
#include <fcntl.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include "login-util.h"
#include "macro.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include "logind-action.h"
#include "logind-session.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <stdint.h>
#include <sys/mount.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <errno.h>
#include <getopt.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <sys/file.h>
#include <sys/mount.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include "bus-object.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <errno.h>
#include <sys/mount.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include "sd-bus.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <errno.h>
#include <unistd.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
typedef struct Machine Machine;
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <arpa/inet.h>
#include <errno.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include "machined.h"
#include "nscd-flush.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <errno.h>
#include <unistd.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include "format-util.h"
#include "machined-varlink.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include "machined.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <errno.h>
#include <string.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <stdbool.h>
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
systemd_machined_sources = files('''
machined.c
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <sys/wait.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <sys/types.h>
"http://www.freedesktop.org/standards/PolicyKit/1/policyconfig.dtd">
<!--
- SPDX-License-Identifier: LGPL-2.1+
+ SPDX-License-Identifier: LGPL-2.1-or-later
This file is part of systemd.
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include "machine.h"
#include "test-tables.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <errno.h>
#include <getopt.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <getopt.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include "fd-util.h"
#include "fs-util.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include "fd-util.h"
#include "fs-util.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <getopt.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include "ether-addr-util.h"
#include "fd-util.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <net/ethernet.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include "macro.h"
#include "network-generator.h"
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
sources = files('''
netdev/bareudp.c
-/* SPDX-License-Identifier: LGPL-2.1+
+/* SPDX-License-Identifier: LGPL-2.1-or-later
* Copyright © 2020 VMware, Inc. */
#include "bareudp.h"
-/* SPDX-License-Identifier: LGPL-2.1+
+/* SPDX-License-Identifier: LGPL-2.1-or-later
* Copyright © 2020 VMware, Inc. */
#pragma once
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include "alloc-util.h"
#include "bond.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <netinet/in.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <net/if.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <netinet/in.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include "dummy.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include "netdev.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <linux/fou.h>
#include <net/if.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <netinet/in.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <net/if.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
typedef struct Geneve Geneve;
-/* SPDX-License-Identifier: LGPL-2.1+
+/* SPDX-License-Identifier: LGPL-2.1-or-later
* Copyright © 2019 VMware, Inc. */
#include "ifb.h"
-/* SPDX-License-Identifier: LGPL-2.1+
+/* SPDX-License-Identifier: LGPL-2.1-or-later
* Copyright © 2019 VMware, Inc. */
#pragma once
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <net/if.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <netinet/in.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <netinet/in.h>
#include <linux/l2tp.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <netinet/in.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <netinet/in.h>
#include <linux/if_ether.h>
r = read_full_file_full(
AT_FDCWD, sa->key_file,
READ_FULL_FILE_SECURE | READ_FULL_FILE_UNHEX | READ_FULL_FILE_WARN_WORLD_READABLE | READ_FULL_FILE_CONNECT_SOCKET,
- (char **) &key, &key_len);
+ NULL, (char **) &key, &key_len);
if (r < 0)
return log_netdev_error_errno(netdev, r,
"Failed to read key from '%s', ignoring: %m",
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <netinet/in.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <net/if.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
typedef struct MacVlan MacVlan;
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <net/if.h>
#include <netinet/in.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include "sd-netlink.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include "netdevsim.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
typedef struct NetDevSim NetDevSim;
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include "nlmon.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
typedef struct NLMon NLMon;
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <netinet/in.h>
#include <linux/fou.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include "in-addr-util.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <errno.h>
#include <fcntl.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
typedef struct TunTap TunTap;
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include "vcan.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
typedef struct VCan VCan;
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <errno.h>
#include <net/if.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
typedef struct Veth Veth;
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <errno.h>
#include <net/if.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
typedef struct VLan VLan;
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <net/if.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
typedef struct Vrf Vrf;
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <linux/can/vxcan.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
typedef struct VxCan VxCan;
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <net/if.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
typedef struct VxLan VxLan;
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
/***
Copyright © 2015-2017 Jason A. Donenfeld <Jason@zx2c4.com>. All Rights Reserved.
***/
r = read_full_file_full(
AT_FDCWD, filename,
READ_FULL_FILE_SECURE | READ_FULL_FILE_UNBASE64 | READ_FULL_FILE_WARN_WORLD_READABLE | READ_FULL_FILE_CONNECT_SOCKET,
- &key, &key_len);
+ NULL, &key, &key_len);
if (r < 0)
return r;
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
+
#pragma once
typedef struct Wireguard Wireguard;
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include "missing_network.h"
#include "xfrm.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include "netdev.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <arpa/inet.h>
#include <getopt.h>
sd_device *sd_device;
int ifindex;
unsigned short iftype;
- struct ether_addr mac_address;
+ hw_addr_data hw_address;
struct ether_addr permanent_mac_address;
uint32_t master;
uint32_t mtu;
info->alternative_names = TAKE_PTR(altnames);
info->has_mac_address =
- sd_netlink_message_read_ether_addr(m, IFLA_ADDRESS, &info->mac_address) >= 0 &&
- memcmp(&info->mac_address, ÐER_ADDR_NULL, sizeof(struct ether_addr)) != 0;
+ netlink_message_read_hw_addr(m, IFLA_ADDRESS, &info->hw_address) >= 0 &&
+ memcmp(&info->hw_address, &HW_ADDR_NULL, sizeof(hw_addr_data)) != 0;
info->has_permanent_mac_address =
ethtool_get_permanent_macaddr(NULL, info->name, &info->permanent_mac_address) >= 0 &&
memcmp(&info->permanent_mac_address, ÐER_ADDR_NULL, sizeof(struct ether_addr)) != 0 &&
- memcmp(&info->permanent_mac_address, &info->mac_address, sizeof(struct ether_addr)) != 0;
+ (info->hw_address.length != sizeof(struct ether_addr) ||
+ memcmp(&info->permanent_mac_address, info->hw_address.addr.bytes, sizeof(struct ether_addr)) != 0);
(void) sd_netlink_message_read_u32(m, IFLA_MTU, &info->mtu);
(void) sd_netlink_message_read_u32(m, IFLA_MIN_MTU, &info->min_mtu);
if (info->has_mac_address) {
_cleanup_free_ char *description = NULL;
- char ea[ETHER_ADDR_TO_STRING_MAX];
- (void) ieee_oui(hwdb, &info->mac_address, &description);
+ if (info->hw_address.length == ETH_ALEN)
+ (void) ieee_oui(hwdb, &info->hw_address.addr.ether, &description);
r = table_add_many(table,
TABLE_EMPTY,
if (r < 0)
return table_log_add_error(r);
r = table_add_cell_stringf(table, NULL, "%s%s%s%s",
- ether_addr_to_string(&info->mac_address, ea),
+ HW_ADDR_TO_STR(&info->hw_address),
description ? " (" : "",
strempty(description),
description ? ")" : "");
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <net/if.h>
#include <linux/if_addrlabel.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <inttypes.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include "alloc-util.h"
#include "networkd-address-pool.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include "in-addr-util.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <net/if.h>
+#include <net/if_arp.h>
#include "alloc-util.h"
#include "firewall-util.h"
assert(link);
assert(ret);
+ if (link->iftype == ARPHRD_INFINIBAND) {
+ /* see RFC4391 section 8 */
+ memcpy(&ret->s6_addr[8], &link->hw_addr.addr.infiniband[12], 8);
+ ret->s6_addr[8] ^= 1 << 1;
+
+ return 0;
+ }
+
/* see RFC4291 section 2.5.1 */
- ret->s6_addr[8] = link->mac.ether_addr_octet[0];
+ ret->s6_addr[8] = link->hw_addr.addr.ether.ether_addr_octet[0];
ret->s6_addr[8] ^= 1 << 1;
- ret->s6_addr[9] = link->mac.ether_addr_octet[1];
- ret->s6_addr[10] = link->mac.ether_addr_octet[2];
+ ret->s6_addr[9] = link->hw_addr.addr.ether.ether_addr_octet[1];
+ ret->s6_addr[10] = link->hw_addr.addr.ether.ether_addr_octet[2];
ret->s6_addr[11] = 0xff;
ret->s6_addr[12] = 0xfe;
- ret->s6_addr[13] = link->mac.ether_addr_octet[3];
- ret->s6_addr[14] = link->mac.ether_addr_octet[4];
- ret->s6_addr[15] = link->mac.ether_addr_octet[5];
+ ret->s6_addr[13] = link->hw_addr.addr.ether.ether_addr_octet[3];
+ ret->s6_addr[14] = link->hw_addr.addr.ether.ether_addr_octet[4];
+ ret->s6_addr[15] = link->hw_addr.addr.ether.ether_addr_octet[5];
return 0;
}
if (r < 0)
return r;
- r = sd_ipv4acd_set_mac(address->acd, &address->link->mac);
+ r = sd_ipv4acd_set_mac(address->acd, &address->link->hw_addr.addr.ether);
if (r < 0)
return r;
if (r < 0)
return r;
- r = sd_ipv4acd_set_mac(address->acd, &address->link->mac);
+ r = sd_ipv4acd_set_mac(address->acd, &address->link->hw_addr.addr.ether);
if (r < 0)
return r;
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <inttypes.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
/***
Copyright © 2016 BISDN GmbH. All rights reserved.
***/
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
/***
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <net/if.h>
#include <linux/can/netlink.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include "conf-parser.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
/***
Copyright © 2014 Vinay Kulkarni <kulkarniv@vmware.com>
***/
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
/***
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <netinet/in.h>
#include <linux/if_arp.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include "conf-parser.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include "sd-dhcp-server.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include "sd-bus.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <netinet/in.h>
#include <linux/if_arp.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include "conf-parser.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <netinet/in.h>
#include <netinet/ip.h>
if (r < 0)
return r;
- r = sd_ipv4acd_set_mac(link->dhcp_acd, &link->mac);
+ r = sd_ipv4acd_set_mac(link->dhcp_acd, &link->hw_addr.addr.ether);
if (r < 0)
return r;
if (r < 0)
return r;
- r = sd_ipv4acd_set_mac(link->dhcp_acd, &link->mac);
+ r = sd_ipv4acd_set_mac(link->dhcp_acd, &link->hw_addr.addr.ether);
if (r < 0)
return r;
return log_link_error_errno(link, r, "DHCP4 CLIENT: Failed to set DUID: %m");
break;
}
- case DHCP_CLIENT_ID_MAC:
+ case DHCP_CLIENT_ID_MAC: {
+ const uint8_t *hw_addr = link->hw_addr.addr.bytes;
+ size_t hw_addr_len = link->hw_addr.length;
+
+ if (link->iftype == ARPHRD_INFINIBAND && hw_addr_len == INFINIBAND_ALEN) {
+ /* set_client_id expects only last 8 bytes of an IB address */
+ hw_addr += INFINIBAND_ALEN - 8;
+ hw_addr_len -= INFINIBAND_ALEN - 8;
+ }
+
r = sd_dhcp_client_set_client_id(link->dhcp_client,
- ARPHRD_ETHER,
- (const uint8_t *) &link->mac,
- sizeof(link->mac));
+ link->iftype,
+ hw_addr,
+ hw_addr_len);
if (r < 0)
return log_link_error_errno(link, r, "DHCP4 CLIENT: Failed to set client ID: %m");
break;
+ }
default:
assert_not_reached("Unknown client identifier type.");
}
return log_link_error_errno(link, r, "DHCP4 CLIENT: Failed to initialize DHCP4 client: %m");
r = sd_dhcp_client_set_mac(link->dhcp_client,
- (const uint8_t *) &link->mac,
- sizeof (link->mac), ARPHRD_ETHER);
+ link->hw_addr.addr.bytes,
+ link->bcast_addr.length > 0 ? link->bcast_addr.addr.bytes : NULL,
+ link->hw_addr.length, link->iftype);
if (r < 0)
return log_link_error_errno(link, r, "DHCP4 CLIENT: Failed to set MAC address: %m");
if (!link->dhcp_client)
return 0;
- r = sd_dhcp_client_set_mac(link->dhcp_client, (const uint8_t *) &link->mac, sizeof (link->mac), ARPHRD_ETHER);
+ r = sd_dhcp_client_set_mac(link->dhcp_client, link->hw_addr.addr.bytes,
+ link->bcast_addr.length > 0 ? link->bcast_addr.addr.bytes : NULL,
+ link->hw_addr.length, link->iftype);
if (r < 0)
return r;
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include "conf-parser.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
/***
Copyright © 2014 Intel Corporation. All rights reserved.
***/
assert(link->network);
assert(client);
- r = sd_dhcp6_client_set_mac(client, (const uint8_t *) &link->mac, sizeof (link->mac), ARPHRD_ETHER);
+ r = sd_dhcp6_client_set_mac(client, link->hw_addr.addr.bytes, link->hw_addr.length, link->iftype);
if (r < 0)
return r;
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include "sd-dhcp6-client.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
/***
Copyright © 2014 Intel Corporation. All rights reserved.
***/
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
/***
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <netinet/in.h>
#include <linux/if.h>
return r;
}
- r = sd_ipv4ll_set_mac(link->ipv4ll, &link->mac);
+ r = sd_ipv4ll_set_mac(link->ipv4ll, &link->hw_addr.addr.ether);
if (r < 0)
return r;
if (r < 0)
return r;
- r = sd_ipv4ll_set_mac(link->ipv4ll, &link->mac);
+ r = sd_ipv4ll_set_mac(link->ipv4ll, &link->hw_addr.addr.ether);
if (r < 0)
return r;
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include "conf-parser.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <netinet/in.h>
#include <linux/if.h>
r = sysctl_write_ip_property_boolean(AF_INET6, link->ifname, "proxy_ndp", v);
if (r < 0)
- return log_link_warning_errno(link, r, "Cannot configure proxy NDP for the interface: %m");
+ return log_link_warning_errno(link, r, "Cannot configure proxy NDP for the interface, ignoring: %m");
return v;
}
/* 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)
- return r;
+ return 0;
SET_FOREACH(address, link->network->ipv6_proxy_ndp_addresses) {
r = ipv6_proxy_ndp_address_configure(link, address);
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include "conf-parser.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <net/if.h>
#include <netinet/in.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include "sd-bus.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <netinet/in.h>
#include <linux/if.h>
if (r < 0)
log_link_debug_errno(link, r, "New device has no master, continuing without");
- r = sd_netlink_message_read_ether_addr(message, IFLA_ADDRESS, &link->mac);
+ r = netlink_message_read_hw_addr(message, IFLA_ADDRESS, &link->hw_addr);
if (r < 0)
- log_link_debug_errno(link, r, "MAC address not found for new device, continuing without");
+ log_link_debug_errno(link, r, "Hardware address not found for new device, continuing without");
+
+ r = netlink_message_read_hw_addr(message, IFLA_BROADCAST, &link->bcast_addr);
+ if (r < 0)
+ log_link_debug_errno(link, r, "Broadcast address not found for new device, continuing without");
r = ethtool_get_permanent_macaddr(&manager->ethtool_fd, link->ifname, &link->permanent_mac);
if (r < 0)
r = network_get(link->manager, link->iftype, link->sd_device,
link->ifname, link->alternative_names, link->driver,
- &link->mac, &link->permanent_mac,
+ &link->hw_addr.addr.ether, &link->permanent_mac,
link->wlan_iftype, link->ssid, &link->bssid, &network);
if (r == -ENOENT) {
link_enter_unmanaged(link);
r = network_get(link->manager, link->iftype, link->sd_device,
link->ifname, link->alternative_names, link->driver,
- &link->mac, &link->permanent_mac,
+ &link->hw_addr.addr.ether, &link->permanent_mac,
link->wlan_iftype, link->ssid, &link->bssid, &network);
if (r == -ENOENT) {
link_enter_unmanaged(link);
int link_update(Link *link, sd_netlink_message *m) {
_cleanup_strv_free_ char **s = NULL;
- struct ether_addr mac;
+ hw_addr_data hw_addr;
const char *ifname;
uint32_t mtu;
bool had_carrier, carrier_gained, carrier_lost, link_was_admin_up;
/* The kernel may broadcast NEWLINK messages without the MAC address
set, simply ignore them. */
- r = sd_netlink_message_read_ether_addr(m, IFLA_ADDRESS, &mac);
- if (r >= 0 && memcmp(link->mac.ether_addr_octet, mac.ether_addr_octet, ETH_ALEN) != 0) {
+ r = netlink_message_read_hw_addr(m, IFLA_ADDRESS, &hw_addr);
+ if (r >= 0 && (link->hw_addr.length != hw_addr.length ||
+ memcmp(link->hw_addr.addr.bytes, hw_addr.addr.bytes, hw_addr.length) != 0)) {
- memcpy(link->mac.ether_addr_octet, mac.ether_addr_octet, ETH_ALEN);
+ memcpy(link->hw_addr.addr.bytes, hw_addr.addr.bytes, hw_addr.length);
- log_link_debug(link, "Gained new MAC address: "
- "%02hhx:%02hhx:%02hhx:%02hhx:%02hhx:%02hhx",
- mac.ether_addr_octet[0],
- mac.ether_addr_octet[1],
- mac.ether_addr_octet[2],
- mac.ether_addr_octet[3],
- mac.ether_addr_octet[4],
- mac.ether_addr_octet[5]);
+ log_link_debug(link, "Gained new hardware address: %s", HW_ADDR_TO_STR(&hw_addr));
r = ipv4ll_update_mac(link);
if (r < 0)
if (r < 0)
return log_link_warning_errno(link, r, "Could not update MAC address in DHCPv6 client: %m");
- r = dhcp6_update_mac(link);
+ r = radv_update_mac(link);
if (r < 0)
return log_link_warning_errno(link, r, "Could not update MAC address for Router Advertisement: %m");
if (link->ndisc) {
- r = sd_ndisc_set_mac(link->ndisc, &link->mac);
+ r = sd_ndisc_set_mac(link->ndisc, &link->hw_addr.addr.ether);
if (r < 0)
return log_link_warning_errno(link, r, "Could not update MAC for NDisc: %m");
}
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <endian.h>
#include "sd-radv.h"
#include "sd-netlink.h"
+#include "ether-addr-util.h"
#include "log-link.h"
#include "network-util.h"
#include "networkd-util.h"
char *kind;
unsigned short iftype;
char *state_file;
- struct ether_addr mac;
+ hw_addr_data hw_addr;
+ hw_addr_data bcast_addr;
struct ether_addr permanent_mac;
struct in6_addr ipv6ll_address;
uint32_t mtu;
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <net/if.h>
#include <net/if_arp.h>
if (r < 0)
return r;
- r = sd_lldp_set_filter_address(link->lldp, &link->mac);
+ r = sd_lldp_set_filter_address(link->lldp, &link->hw_addr.addr.ether);
if (r < 0)
return r;
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include "conf-parser.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <endian.h>
#include <inttypes.h>
SD_LLDP_SYSTEM_CAPABILITIES_STATION;
r = lldp_make_packet(link->network->lldp_emit,
- &link->mac,
+ &link->hw_addr.addr.ether,
sd_id128_to_string(machine_id, machine_id_string),
link->ifname,
(uint16_t) ttl,
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <stdbool.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <net/if.h>
#include <netinet/in.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include "sd-bus.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <netinet/in.h>
#include <sys/socket.h>
#include "ordered-set.h"
#include "path-lookup.h"
#include "path-util.h"
+#include "selinux-util.h"
#include "set.h"
#include "signal-util.h"
#include "stat-util.h"
r = sd_netlink_call(m->rtnl, req, 0, &reply);
if (r < 0) {
- if (r == -EOPNOTSUPP && name) {
+ if (name && (r == -EOPNOTSUPP || (r == -EINVAL && mac_selinux_enforcing()))) {
log_debug_errno(r, "%s are not supported by the kernel. Ignoring.", name);
return 0;
}
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include "sd-bus.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <net/if.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <inttypes.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
/***
Copyright © 2014 Intel Corporation. All rights reserved.
***/
#include <arpa/inet.h>
#include <netinet/icmp6.h>
+#include <net/if_arp.h>
#include <linux/if.h>
#include "sd-ndisc.h"
l = MAX(DIV_ROUND_UP(prefix_len, 8), 8);
siphash24_compress(prefix, l, &state);
siphash24_compress_string(link->ifname, &state);
- siphash24_compress(&link->mac, sizeof(struct ether_addr), &state);
+ /* Only last 8 bytes of IB MAC are stable */
+ if (link->iftype == ARPHRD_INFINIBAND)
+ siphash24_compress(&link->hw_addr.addr.infiniband[12], 8, &state);
+ else
+ siphash24_compress(link->hw_addr.addr.bytes, link->hw_addr.length, &state);
siphash24_compress(&dad_counter, sizeof(uint8_t), &state);
rid = htole64(siphash24_finalize(&state));
return r;
}
- r = sd_ndisc_set_mac(link->ndisc, &link->mac);
+ r = sd_ndisc_set_mac(link->ndisc, &link->hw_addr.addr.ether);
if (r < 0)
return r;
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include "conf-parser.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include "alloc-util.h"
#include "hashmap.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <stdbool.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include "alloc-util.h"
#include "ether-addr-util.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include "sd-bus.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <net/if.h>
#include <netinet/in.h>
.dhcp_server_emit_router = true,
.dhcp_server_emit_timezone = true,
+ .router_lifetime_usec = 30 * USEC_PER_MINUTE,
.router_emit_dns = true,
.router_emit_domains = true,
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <linux/nl80211.h>
-/* SPDX-License-Identifier: LGPL-2.1+
+/* SPDX-License-Identifier: LGPL-2.1-or-later
* Copyright © 2019 VMware, Inc.
*/
-/* SPDX-License-Identifier: LGPL-2.1+
+/* SPDX-License-Identifier: LGPL-2.1-or-later
* Copyright © 2019 VMware, Inc.
*/
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
/***
Copyright © 2017 Intel Corporation. All rights reserved.
***/
}
int radv_configure(Link *link) {
+ uint16_t router_lifetime;
RoutePrefix *q;
Prefix *p;
int r;
if (r < 0)
return r;
- r = sd_radv_set_mac(link->radv, &link->mac);
+ r = sd_radv_set_mac(link->radv, &link->hw_addr.addr.ether);
if (r < 0)
return r;
if (r < 0)
return r;
- /* a value of 0xffffffff represents infinity, 0x0 means this host is
- not a router */
- r = sd_radv_set_router_lifetime(link->radv,
- DIV_ROUND_UP(link->network->router_lifetime_usec, USEC_PER_SEC));
+ /* a value of UINT16_MAX represents infinity, 0x0 means this host is not a router */
+ if (link->network->router_lifetime_usec == USEC_INFINITY)
+ router_lifetime = UINT16_MAX;
+ else if (link->network->router_lifetime_usec > (UINT16_MAX - 1) * USEC_PER_SEC)
+ router_lifetime = UINT16_MAX - 1;
+ else
+ router_lifetime = DIV_ROUND_UP(link->network->router_lifetime_usec, USEC_PER_SEC);
+
+ r = sd_radv_set_router_lifetime(link->radv, router_lifetime);
if (r < 0)
return r;
- if (link->network->router_lifetime_usec > 0) {
- r = sd_radv_set_preference(link->radv,
- link->network->router_preference);
+ if (router_lifetime > 0) {
+ r = sd_radv_set_preference(link->radv, link->network->router_preference);
if (r < 0)
return r;
}
if (r < 0)
return r;
- r = sd_radv_set_mac(link->radv, &link->mac);
+ r = sd_radv_set_mac(link->radv, &link->hw_addr.addr.ether);
if (r < 0)
return r;
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
/***
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <linux/icmpv6.h>
#include <linux/ipv6_route.h>
return 0;
}
+static int route_set_netlink_message(const Route *route, sd_netlink_message *req, Link *link) {
+ unsigned flags;
+ int r;
+
+ assert(route);
+ assert(req);
+
+ /* link may be NULL */
+
+ if (in_addr_is_null(route->gw_family, &route->gw) == 0) {
+ if (route->gw_family == route->family) {
+ r = netlink_message_append_in_addr_union(req, RTA_GATEWAY, route->gw_family, &route->gw);
+ if (r < 0)
+ return log_link_error_errno(link, r, "Could not append RTA_GATEWAY attribute: %m");
+ } else {
+ RouteVia rtvia = {
+ .family = route->gw_family,
+ .address = route->gw,
+ };
+
+ r = sd_netlink_message_append_data(req, RTA_VIA, &rtvia, sizeof(rtvia));
+ if (r < 0)
+ return log_link_error_errno(link, r, "Could not append RTA_VIA attribute: %m");
+ }
+ }
+
+ if (route->dst_prefixlen > 0) {
+ r = netlink_message_append_in_addr_union(req, RTA_DST, route->family, &route->dst);
+ if (r < 0)
+ return log_link_error_errno(link, r, "Could not append RTA_DST attribute: %m");
+
+ r = sd_rtnl_message_route_set_dst_prefixlen(req, route->dst_prefixlen);
+ if (r < 0)
+ return log_link_error_errno(link, r, "Could not set destination prefix length: %m");
+ }
+
+ if (route->src_prefixlen > 0) {
+ r = netlink_message_append_in_addr_union(req, RTA_SRC, route->family, &route->src);
+ if (r < 0)
+ return log_link_error_errno(link, r, "Could not append RTA_SRC attribute: %m");
+
+ r = sd_rtnl_message_route_set_src_prefixlen(req, route->src_prefixlen);
+ if (r < 0)
+ return log_link_error_errno(link, r, "Could not set source prefix length: %m");
+ }
+
+ if (in_addr_is_null(route->family, &route->prefsrc) == 0) {
+ r = netlink_message_append_in_addr_union(req, RTA_PREFSRC, route->family, &route->prefsrc);
+ if (r < 0)
+ return log_link_error_errno(link, r, "Could not append RTA_PREFSRC attribute: %m");
+ }
+
+ r = sd_rtnl_message_route_set_scope(req, route->scope);
+ if (r < 0)
+ return log_link_error_errno(link, r, "Could not set scope: %m");
+
+ flags = route->flags;
+ if (route->gateway_onlink >= 0)
+ SET_FLAG(flags, RTNH_F_ONLINK, route->gateway_onlink);
+
+ r = sd_rtnl_message_route_set_flags(req, flags);
+ if (r < 0)
+ return log_link_error_errno(link, r, "Could not set flags: %m");
+
+ if (route->table != RT_TABLE_MAIN) {
+ if (route->table < 256) {
+ r = sd_rtnl_message_route_set_table(req, route->table);
+ if (r < 0)
+ return log_link_error_errno(link, r, "Could not set route table: %m");
+ } else {
+ r = sd_rtnl_message_route_set_table(req, RT_TABLE_UNSPEC);
+ if (r < 0)
+ return log_link_error_errno(link, r, "Could not set route table: %m");
+
+ /* Table attribute to allow more than 256. */
+ r = sd_netlink_message_append_data(req, RTA_TABLE, &route->table, sizeof(route->table));
+ if (r < 0)
+ return log_link_error_errno(link, r, "Could not append RTA_TABLE attribute: %m");
+ }
+ }
+
+ r = sd_rtnl_message_route_set_type(req, route->type);
+ if (r < 0)
+ return log_link_error_errno(link, r, "Could not set route type: %m");
+
+ if (!IN_SET(route->type, RTN_UNREACHABLE, RTN_PROHIBIT, RTN_BLACKHOLE, RTN_THROW)) {
+ assert(link); /* Those routes must be attached to a specific link */
+
+ r = sd_netlink_message_append_u32(req, RTA_OIF, link->ifindex);
+ if (r < 0)
+ return log_link_error_errno(link, r, "Could not append RTA_OIF attribute: %m");
+ }
+
+ r = sd_netlink_message_append_u8(req, RTA_PREF, route->pref);
+ if (r < 0)
+ return log_link_error_errno(link, r, "Could not append RTA_PREF attribute: %m");
+
+ r = sd_netlink_message_append_u32(req, RTA_PRIORITY, route->priority);
+ if (r < 0)
+ return log_link_error_errno(link, r, "Could not append RTA_PRIORITY attribute: %m");
+
+ return 0;
+}
+
static int route_remove_handler(sd_netlink *rtnl, sd_netlink_message *m, Link *link) {
int r;
strna(route_type_to_string(route->type)));
}
- if (in_addr_is_null(route->gw_family, &route->gw) == 0) {
- if (route->gw_family == route->family) {
- r = netlink_message_append_in_addr_union(req, RTA_GATEWAY, route->gw_family, &route->gw);
- if (r < 0)
- return log_link_error_errno(link, r, "Could not append RTA_GATEWAY attribute: %m");
- } else {
- RouteVia rtvia = {
- .family = route->gw_family,
- .address = route->gw,
- };
-
- r = sd_netlink_message_append_data(req, RTA_VIA, &rtvia, sizeof(rtvia));
- if (r < 0)
- return log_link_error_errno(link, r, "Could not append RTA_VIA attribute: %m");
- }
- }
-
- if (route->dst_prefixlen) {
- r = netlink_message_append_in_addr_union(req, RTA_DST, route->family, &route->dst);
- if (r < 0)
- return log_link_error_errno(link, r, "Could not append RTA_DST attribute: %m");
-
- r = sd_rtnl_message_route_set_dst_prefixlen(req, route->dst_prefixlen);
- if (r < 0)
- return log_link_error_errno(link, r, "Could not set destination prefix length: %m");
- }
-
- if (route->src_prefixlen) {
- r = netlink_message_append_in_addr_union(req, RTA_SRC, route->family, &route->src);
- if (r < 0)
- return log_link_error_errno(link, r, "Could not append RTA_SRC attribute: %m");
-
- r = sd_rtnl_message_route_set_src_prefixlen(req, route->src_prefixlen);
- if (r < 0)
- return log_link_error_errno(link, r, "Could not set source prefix length: %m");
- }
-
- if (in_addr_is_null(route->family, &route->prefsrc) == 0) {
- r = netlink_message_append_in_addr_union(req, RTA_PREFSRC, route->family, &route->prefsrc);
- if (r < 0)
- return log_link_error_errno(link, r, "Could not append RTA_PREFSRC attribute: %m");
- }
-
- r = sd_rtnl_message_route_set_scope(req, route->scope);
+ r = route_set_netlink_message(route, req, link);
if (r < 0)
- return log_link_error_errno(link, r, "Could not set scope: %m");
-
- r = sd_netlink_message_append_u32(req, RTA_PRIORITY, route->priority);
- if (r < 0)
- return log_link_error_errno(link, r, "Could not append RTA_PRIORITY attribute: %m");
-
- if (!IN_SET(route->type, RTN_UNREACHABLE, RTN_PROHIBIT, RTN_BLACKHOLE, RTN_THROW)) {
- assert(link); /* Those routes must be attached to a specific link */
-
- r = sd_netlink_message_append_u32(req, RTA_OIF, link->ifindex);
- if (r < 0)
- return log_link_error_errno(link, r, "Could not append RTA_OIF attribute: %m");
- }
+ return r;
- r = netlink_call_async(link->manager->rtnl, NULL, req,
+ r = netlink_call_async(manager->rtnl, NULL, req,
callback ?: route_remove_handler,
link_netlink_destroy_callback, link);
if (r < 0)
return 0;
}
-static bool link_is_static_route_configured(const Link *link, const Route *route) {
+static bool link_has_route(const Link *link, const Route *route) {
Route *net_route;
assert(link);
return false;
}
+static bool links_have_route(Manager *manager, const Route *route, const Link *except) {
+ Link *link;
+
+ assert(manager);
+
+ HASHMAP_FOREACH(link, manager->links) {
+ if (link == except)
+ continue;
+
+ if (link_has_route(link, route))
+ return true;
+ }
+
+ return false;
+}
+
+static int manager_drop_foreign_routes(Manager *manager) {
+ Route *route;
+ int k, r = 0;
+
+ assert(manager);
+
+ SET_FOREACH(route, manager->routes_foreign) {
+ /* do not touch routes managed by the kernel */
+ if (route->protocol == RTPROT_KERNEL)
+ continue;
+
+ if (links_have_route(manager, route, NULL))
+ /* The route will be configured later. */
+ continue;
+
+ /* The existing links do not have the route. Let's drop this now. It may by
+ * re-configured later. */
+ k = route_remove(route, manager, NULL, NULL);
+ if (k < 0 && r >= 0)
+ r = k;
+ }
+
+ return r;
+}
+
+static int manager_drop_routes(Manager *manager, Link *except) {
+ Route *route;
+ int k, r = 0;
+
+ assert(manager);
+
+ SET_FOREACH(route, manager->routes) {
+ /* do not touch routes managed by the kernel */
+ if (route->protocol == RTPROT_KERNEL)
+ continue;
+
+ if (links_have_route(manager, route, except))
+ /* The route will be configured later. */
+ continue;
+
+ /* The existing links do not have the route. Let's drop this now. It may by
+ * re-configured later. */
+ k = route_remove(route, manager, NULL, NULL);
+ if (k < 0 && r >= 0)
+ r = k;
+ }
+
+ return r;
+}
+
int link_drop_foreign_routes(Link *link) {
Route *route;
int k, r = 0;
assert(link);
+ assert(link->manager);
SET_FOREACH(route, link->routes_foreign) {
/* do not touch routes managed by the kernel */
FLAGS_SET(link->network->keep_configuration, KEEP_CONFIGURATION_DHCP))
continue;
- if (link_is_static_route_configured(link, route))
+ if (link_has_route(link, route))
k = route_add(NULL, link, route, NULL, NULL);
else
k = route_remove(route, NULL, link, NULL);
r = k;
}
+ k = manager_drop_foreign_routes(link->manager);
+ if (k < 0 && r >= 0)
+ r = k;
+
return r;
}
r = k;
}
+ k = manager_drop_routes(link->manager, link);
+ if (k < 0 && r >= 0)
+ r = k;
+
return r;
}
Route **ret) {
_cleanup_(sd_netlink_message_unrefp) sd_netlink_message *req = NULL;
- unsigned flags;
int r;
assert(link);
if (r < 0)
return log_link_error_errno(link, r, "Could not create RTM_NEWROUTE message: %m");
- if (in_addr_is_null(route->gw_family, &route->gw) == 0) {
- if (route->gw_family == route->family) {
- r = netlink_message_append_in_addr_union(req, RTA_GATEWAY, route->gw_family, &route->gw);
- if (r < 0)
- return log_link_error_errno(link, r, "Could not append RTA_GATEWAY attribute: %m");
- } else {
- RouteVia rtvia = {
- .family = route->gw_family,
- .address = route->gw,
- };
-
- r = sd_netlink_message_append_data(req, RTA_VIA, &rtvia, sizeof(rtvia));
- if (r < 0)
- return log_link_error_errno(link, r, "Could not append RTA_VIA attribute: %m");
- }
- }
-
- if (route->dst_prefixlen > 0) {
- r = netlink_message_append_in_addr_union(req, RTA_DST, route->family, &route->dst);
- if (r < 0)
- return log_link_error_errno(link, r, "Could not append RTA_DST attribute: %m");
-
- r = sd_rtnl_message_route_set_dst_prefixlen(req, route->dst_prefixlen);
- if (r < 0)
- return log_link_error_errno(link, r, "Could not set destination prefix length: %m");
- }
-
- if (route->src_prefixlen > 0) {
- r = netlink_message_append_in_addr_union(req, RTA_SRC, route->family, &route->src);
- if (r < 0)
- return log_link_error_errno(link, r, "Could not append RTA_SRC attribute: %m");
-
- r = sd_rtnl_message_route_set_src_prefixlen(req, route->src_prefixlen);
- if (r < 0)
- return log_link_error_errno(link, r, "Could not set source prefix length: %m");
- }
-
- if (in_addr_is_null(route->family, &route->prefsrc) == 0) {
- r = netlink_message_append_in_addr_union(req, RTA_PREFSRC, route->family, &route->prefsrc);
- if (r < 0)
- return log_link_error_errno(link, r, "Could not append RTA_PREFSRC attribute: %m");
- }
-
- r = sd_rtnl_message_route_set_scope(req, route->scope);
- if (r < 0)
- return log_link_error_errno(link, r, "Could not set scope: %m");
-
- flags = route->flags;
- if (route->gateway_onlink >= 0)
- SET_FLAG(flags, RTNH_F_ONLINK, route->gateway_onlink);
-
- r = sd_rtnl_message_route_set_flags(req, flags);
- if (r < 0)
- return log_link_error_errno(link, r, "Could not set flags: %m");
-
- if (route->table != RT_TABLE_MAIN) {
- if (route->table < 256) {
- r = sd_rtnl_message_route_set_table(req, route->table);
- if (r < 0)
- return log_link_error_errno(link, r, "Could not set route table: %m");
- } else {
- r = sd_rtnl_message_route_set_table(req, RT_TABLE_UNSPEC);
- if (r < 0)
- return log_link_error_errno(link, r, "Could not set route table: %m");
-
- /* Table attribute to allow more than 256. */
- r = sd_netlink_message_append_data(req, RTA_TABLE, &route->table, sizeof(route->table));
- if (r < 0)
- return log_link_error_errno(link, r, "Could not append RTA_TABLE attribute: %m");
- }
- }
-
- r = sd_netlink_message_append_u32(req, RTA_PRIORITY, route->priority);
+ r = route_set_netlink_message(route, req, link);
if (r < 0)
- return log_link_error_errno(link, r, "Could not append RTA_PRIORITY attribute: %m");
-
- r = sd_netlink_message_append_u8(req, RTA_PREF, route->pref);
- if (r < 0)
- return log_link_error_errno(link, r, "Could not append RTA_PREF attribute: %m");
+ return r;
if (route->lifetime != USEC_INFINITY && kernel_route_expiration_supported()) {
r = sd_netlink_message_append_u32(req, RTA_EXPIRES,
return log_link_error_errno(link, r, "Could not append RTA_EXPIRES attribute: %m");
}
- r = sd_rtnl_message_route_set_type(req, route->type);
- if (r < 0)
- return log_link_error_errno(link, r, "Could not set route type: %m");
-
- if (!IN_SET(route->type, RTN_UNREACHABLE, RTN_PROHIBIT, RTN_BLACKHOLE, RTN_THROW)) {
- r = sd_netlink_message_append_u32(req, RTA_OIF, link->ifindex);
- if (r < 0)
- return log_link_error_errno(link, r, "Could not append RTA_OIF attribute: %m");
- }
-
if (route->ttl_propagate >= 0) {
r = sd_netlink_message_append_u8(req, RTA_TTL_PROPAGATE, route->ttl_propagate);
if (r < 0)
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <inttypes.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <net/if.h>
#include <linux/fib_rules.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <inttypes.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <errno.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
/* Default interval is 10sec. The speed meter periodically make networkd
-/* SPDX-License-Identifier: LGPL-2.1+
+/* SPDX-License-Identifier: LGPL-2.1-or-later
* Copyright © 2020 VMware, Inc. */
#include "alloc-util.h"
-/* SPDX-License-Identifier: LGPL-2.1+
+/* SPDX-License-Identifier: LGPL-2.1-or-later
* Copyright © 2020 VMware, Inc. */
#pragma once
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <netinet/in.h>
#include <linux/if.h>
r = link_set_ipv6_privacy_extensions(link);
if (r < 0)
- log_link_warning_errno(link, r, "Cannot configure IPv6 privacy extension for interface, ignorign: %m");
+ log_link_warning_errno(link, r, "Cannot configure IPv6 privacy extension for interface, ignoring: %m");
r = link_set_ipv6_accept_ra(link);
if (r < 0)
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <stdbool.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include "condition.h"
#include "conf-parser.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include "sd-dhcp-lease.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <net/ethernet.h>
#include <linux/nl80211.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include "sd-bus.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <netinet/in.h>
#include <sys/stat.h>
"http://www.freedesktop.org/standards/PolicyKit/1/policyconfig.dtd">
<!--
- SPDX-License-Identifier: LGPL-2.1+
+ SPDX-License-Identifier: LGPL-2.1-or-later
This file is part of systemd.
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
-/* SPDX-License-Identifier: LGPL-2.1+
+/* SPDX-License-Identifier: LGPL-2.1-or-later
* Copyright © 2020 VMware, Inc. */
#include <linux/pkt_sched.h>
-/* SPDX-License-Identifier: LGPL-2.1+
+/* SPDX-License-Identifier: LGPL-2.1-or-later
* Copyright © 2020 VMware, Inc. */
#pragma once
-/* SPDX-License-Identifier: LGPL-2.1+
+/* SPDX-License-Identifier: LGPL-2.1-or-later
* Copyright © 2019 VMware, Inc. */
#include <linux/pkt_sched.h>
-/* SPDX-License-Identifier: LGPL-2.1+
+/* SPDX-License-Identifier: LGPL-2.1-or-later
* Copyright © 2019 VMware, Inc. */
#pragma once
-/* SPDX-License-Identifier: LGPL-2.1+
+/* SPDX-License-Identifier: LGPL-2.1-or-later
* Copyright © 2020 VMware, Inc. */
#include <linux/pkt_sched.h>
-/* SPDX-License-Identifier: LGPL-2.1+
+/* SPDX-License-Identifier: LGPL-2.1-or-later
* Copyright © 2020 VMware, Inc. */
#pragma once
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <linux/pkt_sched.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <linux/pkt_sched.h>
-/* SPDX-License-Identifier: LGPL-2.1+
+/* SPDX-License-Identifier: LGPL-2.1-or-later
* Copyright © 2020 VMware, Inc. */
#include <linux/pkt_sched.h>
-/* SPDX-License-Identifier: LGPL-2.1+
+/* SPDX-License-Identifier: LGPL-2.1-or-later
* Copyright © 2020 VMware, Inc. */
#pragma once
-/* SPDX-License-Identifier: LGPL-2.1+
+/* SPDX-License-Identifier: LGPL-2.1-or-later
* Copyright © 2019 VMware, Inc. */
#include <linux/pkt_sched.h>
-/* SPDX-License-Identifier: LGPL-2.1+
+/* SPDX-License-Identifier: LGPL-2.1-or-later
* Copyright © 2019 VMware, Inc. */
#pragma once
-/* SPDX-License-Identifier: LGPL-2.1+
+/* SPDX-License-Identifier: LGPL-2.1-or-later
* Copyright © 2020 VMware, Inc. */
#include <linux/pkt_sched.h>
-/* SPDX-License-Identifier: LGPL-2.1+
+/* SPDX-License-Identifier: LGPL-2.1-or-later
* Copyright © 2020 VMware, Inc. */
#pragma once
-/* SPDX-License-Identifier: LGPL-2.1+
+/* SPDX-License-Identifier: LGPL-2.1-or-later
* Copyright © 2019 VMware, Inc. */
#include <linux/pkt_sched.h>
-/* SPDX-License-Identifier: LGPL-2.1+
+/* SPDX-License-Identifier: LGPL-2.1-or-later
* Copyright © 2019 VMware, Inc. */
#pragma once
-/* SPDX-License-Identifier: LGPL-2.1+
+/* SPDX-License-Identifier: LGPL-2.1-or-later
* Copyright © 2020 VMware, Inc. */
#include <linux/pkt_sched.h>
-/* SPDX-License-Identifier: LGPL-2.1+
+/* SPDX-License-Identifier: LGPL-2.1-or-later
* Copyright © 2020 VMware, Inc. */
#pragma once
-/* SPDX-License-Identifier: LGPL-2.1+
+/* SPDX-License-Identifier: LGPL-2.1-or-later
* Copyright © 2020 VMware, Inc. */
#include <linux/pkt_sched.h>
-/* SPDX-License-Identifier: LGPL-2.1+
+/* SPDX-License-Identifier: LGPL-2.1-or-later
* Copyright © 2020 VMware, Inc. */
#pragma once
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <linux/pkt_sched.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include "conf-parser.h"
-/* SPDX-License-Identifier: LGPL-2.1+
+/* SPDX-License-Identifier: LGPL-2.1-or-later
* Copyright © 2019 VMware, Inc. */
#include <linux/pkt_sched.h>
-/* SPDX-License-Identifier: LGPL-2.1+
+/* SPDX-License-Identifier: LGPL-2.1-or-later
* Copyright © 2019 VMware, Inc. */
#pragma once
-/* SPDX-License-Identifier: LGPL-2.1+
+/* SPDX-License-Identifier: LGPL-2.1-or-later
* Copyright © 2020 VMware, Inc. */
#include <linux/pkt_sched.h>
-/* SPDX-License-Identifier: LGPL-2.1+
+/* SPDX-License-Identifier: LGPL-2.1-or-later
* Copyright © 2020 VMware, Inc. */
#pragma once
-/* SPDX-License-Identifier: LGPL-2.1+
+/* SPDX-License-Identifier: LGPL-2.1-or-later
* Copyright © 2019 VMware, Inc. */
#include <linux/pkt_sched.h>
-/* SPDX-License-Identifier: LGPL-2.1+
+/* SPDX-License-Identifier: LGPL-2.1-or-later
* Copyright © 2019 VMware, Inc. */
#pragma once
-/* SPDX-License-Identifier: LGPL-2.1+
+/* SPDX-License-Identifier: LGPL-2.1-or-later
* Copyright © 2020 VMware, Inc. */
#include <linux/pkt_sched.h>
-/* SPDX-License-Identifier: LGPL-2.1+
+/* SPDX-License-Identifier: LGPL-2.1-or-later
* Copyright © 2020 VMware, Inc. */
#pragma once
-/* SPDX-License-Identifier: LGPL-2.1+
+/* SPDX-License-Identifier: LGPL-2.1-or-later
* Copyright © 2020 VMware, Inc. */
#include <linux/pkt_sched.h>
-/* SPDX-License-Identifier: LGPL-2.1+
+/* SPDX-License-Identifier: LGPL-2.1-or-later
* Copyright © 2020 VMware, Inc. */
#pragma once
-/* SPDX-License-Identifier: LGPL-2.1+
+/* SPDX-License-Identifier: LGPL-2.1-or-later
* Copyright © 2019 VMware, Inc. */
#include <linux/pkt_sched.h>
-/* SPDX-License-Identifier: LGPL-2.1+
+/* SPDX-License-Identifier: LGPL-2.1-or-later
* Copyright © 2019 VMware, Inc. */
#pragma once
-/* SPDX-License-Identifier: LGPL-2.1+
+/* SPDX-License-Identifier: LGPL-2.1-or-later
* Copyright © 2019 VMware, Inc. */
#include <linux/pkt_sched.h>
-/* SPDX-License-Identifier: LGPL-2.1+
+/* SPDX-License-Identifier: LGPL-2.1-or-later
* Copyright © 2019 VMware, Inc. */
#pragma once
-/* SPDX-License-Identifier: LGPL-2.1+
+/* SPDX-License-Identifier: LGPL-2.1-or-later
* Copyright © 2019 VMware, Inc. */
#include "alloc-util.h"
-/* SPDX-License-Identifier: LGPL-2.1+
+/* SPDX-License-Identifier: LGPL-2.1-or-later
* Copyright © 2019 VMware, Inc. */
#pragma once
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include "macro.h"
#include "qdisc.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include "networkd-link.h"
-/* SPDX-License-Identifier: LGPL-2.1+
+/* SPDX-License-Identifier: LGPL-2.1-or-later
* Copyright © 2019 VMware, Inc. */
#include <linux/pkt_sched.h>
-/* SPDX-License-Identifier: LGPL-2.1+
+/* SPDX-License-Identifier: LGPL-2.1-or-later
* Copyright © 2019 VMware, Inc. */
#pragma once
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include "macro.h"
#include "netlink-util.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include "conf-parser.h"
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
+
#include "bond.h"
#include "dhcp6-internal.h"
#include "dhcp6-protocol.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <arpa/inet.h>
#include <sys/param.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include "ether-addr-util.h"
#include "hexdecoct.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include "fd-util.h"
#include "fileio.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include "sd-network.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include "sd-netlink.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <netinet/ether.h>
#include <linux/if.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include "sd-event.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <getopt.h>
#include <sys/stat.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <errno.h>
#include <getopt.h>
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
libnspawn_core_sources = files('''
nspawn-cgroup.c
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <sys/mount.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <stdbool.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include "alloc-util.h"
#include "macro.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <sys/types.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <sys/types.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include "sd-netlink.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <inttypes.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <sys/mount.h>
#include <linux/magic.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <stdbool.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <net/if.h>
#include <linux/if.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <net/if.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <linux/oom.h>
#if HAVE_SECCOMP
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include "nspawn-settings.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <fcntl.h>
#include <sys/statvfs.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include "sd-bus.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <sys/types.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <errno.h>
#include <linux/netlink.h>
int r;
if (!is_seccomp_available()) {
- log_debug("SECCOMP features not detected in the kernel, disabling SECCOMP filterering");
+ log_debug("SECCOMP features not detected in the kernel or disabled at runtime, disabling SECCOMP filtering");
return 0;
}
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <sys/types.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include "alloc-util.h"
#include "cap-list.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <sched.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <fcntl.h>
#include <sys/types.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
int change_uid_gid_raw(uid_t uid, gid_t gid, const gid_t *supplementary_gids, size_t n_supplementary_gids, bool chown_stdio);
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <sys/ioctl.h>
#include <sys/reboot.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include "sd-id128.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#if HAVE_BLKID
#endif
return log_oom();
}
- r = read_full_file_full(AT_FDCWD, j ?: p, flags, &data, &size);
+ r = read_full_file_full(AT_FDCWD, j ?: p, flags, NULL, &data, &size);
if (r < 0)
return log_error_errno(r, "Failed to read credential '%s': %m", j ?: p);
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include "nspawn-settings.h"
#include "test-tables.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <stdlib.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <errno.h>
#include <net/if.h>
/***
- SPDX-License-Identifier: LGPL-2.1+
+ SPDX-License-Identifier: LGPL-2.1-or-later
systemd is free software; you can redistribute it and/or modify it
under the terms of the GNU Lesser General Public License as published by
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <netdb.h>
#include <nss.h>
/***
- SPDX-License-Identifier: LGPL-2.1+
+ SPDX-License-Identifier: LGPL-2.1-or-later
systemd is free software; you can redistribute it and/or modify it
under the terms of the GNU Lesser General Public License as published by
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <errno.h>
#include <netdb.h>
/***
- SPDX-License-Identifier: LGPL-2.1+
+ SPDX-License-Identifier: LGPL-2.1-or-later
systemd is free software; you can redistribute it and/or modify it
under the terms of the GNU Lesser General Public License as published by
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <nss.h>
#include <pthread.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <stdbool.h>
/***
- SPDX-License-Identifier: LGPL-2.1+
+ SPDX-License-Identifier: LGPL-2.1-or-later
systemd is free software; you can redistribute it and/or modify it
under the terms of the GNU Lesser General Public License as published by
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include "env-util.h"
#include "fd-util.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <nss.h>
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
systemd_oomd_sources = files('''
oomd-manager-bus.c
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <getopt.h>
#include <unistd.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <linux/capability.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include "bus-object.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include "bus-log-control-api.h"
#include "bus-util.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include "conf-parser.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <sys/xattr.h>
#include <unistd.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <stdbool.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <getopt.h>
static int run(int argc, char *argv[]) {
_cleanup_(notify_on_cleanup) const char *notify_msg = NULL;
_cleanup_(manager_freep) Manager *m = NULL;
+ _cleanup_free_ char *swap = NULL;
+ unsigned long long s = 0;
int r;
log_setup_service();
/* Do some basic requirement checks for running systemd-oomd. It's not exhaustive as some of the other
* requirements do not have a reliable means to check for in code. */
- if (access("/proc/swaps", F_OK) < 0)
- return log_error_errno(errno, "Swap not enabled: %m");
+
+ /* SwapTotal is always available in /proc/meminfo and defaults to 0, even on swap-disabled kernels. */
+ r = get_proc_field("/proc/meminfo", "SwapTotal", WHITESPACE, &swap);
+ if (r < 0)
+ return log_error_errno(r, "Failed to get SwapTotal from /proc/meminfo: %m");
+
+ r = safe_atollu(swap, &s);
+ if (r < 0)
+ return log_error_errno(r, "Failed to parse SwapTotal from /proc/meminfo: %s: %m", swap);
+ if (s == 0)
+ return log_error_errno(SYNTHETIC_ERRNO(EOPNOTSUPP), "Requires swap to operate");
if (!is_pressure_supported())
return log_error_errno(SYNTHETIC_ERRNO(EOPNOTSUPP), "Pressure Stall Information (PSI) is not supported");
<!DOCTYPE busconfig PUBLIC "-//freedesktop//DTD D-BUS Bus Configuration 1.0//EN"
"http://www.freedesktop.org/standards/dbus/1.0/busconfig.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<busconfig>
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <unistd.h>
/* If we don't have permissions to set xattrs we're likely in a userns or missing capabilities */
r = cg_set_xattr(SYSTEMD_CGROUP_CONTROLLER, cgroup, "user.oomd_test", "test", 4, 0);
- if (IN_SET(r, -EPERM, -ENOTSUP))
+ if (ERRNO_IS_PRIVILEGE(r) || ERRNO_IS_NOT_SUPPORTED(r))
return (void) log_tests_skipped("Cannot set user xattrs");
/* Do this twice to also check the increment behavior on the xattrs */
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <errno.h>
#include <fcntl.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <fcntl.h>
#include <sys/file.h>
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
systemd_repart_sources = files('''
repart.c
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#if HAVE_VALGRIND_MEMCHECK_H
#include <valgrind/memcheck.h>
_cleanup_(erase_and_freep) char *k = NULL;
size_t n = 0;
- r = read_full_file_full(AT_FDCWD, optarg, READ_FULL_FILE_SECURE|READ_FULL_FILE_CONNECT_SOCKET, &k, &n);
+ r = read_full_file_full(AT_FDCWD, optarg, READ_FULL_FILE_SECURE|READ_FULL_FILE_CONNECT_SOCKET, NULL, &k, &n);
if (r < 0)
return log_error_errno(r, "Failed to read key file '%s': %m", optarg);
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <errno.h>
#include <getopt.h>
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
systemd_portabled_sources = files('''
portable.c
<!DOCTYPE busconfig PUBLIC "-//freedesktop//DTD D-BUS Bus Configuration 1.0//EN"
"http://www.freedesktop.org/standards/dbus/1.0/busconfig.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<busconfig>
<!DOCTYPE policyconfig PUBLIC "-//freedesktop//DTD PolicyKit Policy Configuration 1.0//EN"
"http://www.freedesktop.org/standards/PolicyKit/1/policyconfig.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<policyconfig>
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
[D-BUS Service]
Name=org.freedesktop.portable1
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <linux/loop.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include "sd-bus.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <errno.h>
#include <getopt.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include "alloc-util.h"
#include "btrfs-util.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include "sd-bus.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <fcntl.h>
#include <sys/stat.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include "sd-bus.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include "portable.h"
#include "portabled-image.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include "hashmap.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include "alloc-util.h"
#include "fd-util.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <sys/types.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <sys/stat.h>
#include <sys/types.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include "sd-bus.h"
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
systemd_pstore_sources = files('''
pstore.c
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
/* Copyright © 2019 Oracle and/or its affiliates. */
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <errno.h>
#include <stdbool.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <errno.h>
#include <fcntl.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <errno.h>
#include <stdio.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <errno.h>
#include <mntent.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <errno.h>
#include <stddef.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <sys/socket.h>
#include <errno.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include "macro.h"
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
basic_dns_sources = files('''
resolved-dns-dnssec.c
"http://www.freedesktop.org/standards/PolicyKit/1/policyconfig.dtd">
<!--
- SPDX-License-Identifier: LGPL-2.1+
+ SPDX-License-Identifier: LGPL-2.1-or-later
This file is part of systemd.
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <getopt.h>
#include <net/if.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
int resolvconf_parse_argv(int argc, char *argv[]);
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <getopt.h>
#include <locale.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <in-addr-util.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include "alloc-util.h"
#include "bus-common-errors.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include "bus-object.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include "alloc-util.h"
#include "conf-parser.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include "conf-parser.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <inttypes.h>
#include "time-util.h"
-#define SD_RESOLVED_DNS (UINT64_C(1) << 0)
-#define SD_RESOLVED_LLMNR_IPV4 (UINT64_C(1) << 1)
-#define SD_RESOLVED_LLMNR_IPV6 (UINT64_C(1) << 2)
-#define SD_RESOLVED_MDNS_IPV4 (UINT64_C(1) << 3)
-#define SD_RESOLVED_MDNS_IPV6 (UINT64_C(1) << 4)
-#define SD_RESOLVED_NO_CNAME (UINT64_C(1) << 5)
-#define SD_RESOLVED_NO_TXT (UINT64_C(1) << 6)
-#define SD_RESOLVED_NO_ADDRESS (UINT64_C(1) << 7)
-#define SD_RESOLVED_NO_SEARCH (UINT64_C(1) << 8)
-#define SD_RESOLVED_AUTHENTICATED (UINT64_C(1) << 9)
-
-#define SD_RESOLVED_LLMNR (SD_RESOLVED_LLMNR_IPV4|SD_RESOLVED_LLMNR_IPV6)
-#define SD_RESOLVED_MDNS (SD_RESOLVED_MDNS_IPV4|SD_RESOLVED_MDNS_IPV6)
-
-#define SD_RESOLVED_PROTOCOLS_ALL (SD_RESOLVED_MDNS|SD_RESOLVED_LLMNR|SD_RESOLVED_DNS)
+/* Input + Output: The various protocols we can use */
+#define SD_RESOLVED_DNS (UINT64_C(1) << 0)
+#define SD_RESOLVED_LLMNR_IPV4 (UINT64_C(1) << 1)
+#define SD_RESOLVED_LLMNR_IPV6 (UINT64_C(1) << 2)
+#define SD_RESOLVED_MDNS_IPV4 (UINT64_C(1) << 3)
+#define SD_RESOLVED_MDNS_IPV6 (UINT64_C(1) << 4)
+
+/* Input: Don't follow CNAMEs/DNAMEs */
+#define SD_RESOLVED_NO_CNAME (UINT64_C(1) << 5)
+
+/* Input: When doing service (SRV) resolving, don't resolve associated mDNS-style TXT records */
+#define SD_RESOLVED_NO_TXT (UINT64_C(1) << 6)
+
+/* Input: When doing service (SRV) resolving, don't resolve A/AAA RR for included hostname */
+#define SD_RESOLVED_NO_ADDRESS (UINT64_C(1) << 7)
+
+/* Input: Don't apply search domain logic to request */
+#define SD_RESOLVED_NO_SEARCH (UINT64_C(1) << 8)
+
+/* Output: Result is authenticated */
+#define SD_RESOLVED_AUTHENTICATED (UINT64_C(1) << 9)
+
+#define SD_RESOLVED_LLMNR (SD_RESOLVED_LLMNR_IPV4|SD_RESOLVED_LLMNR_IPV6)
+#define SD_RESOLVED_MDNS (SD_RESOLVED_MDNS_IPV4|SD_RESOLVED_MDNS_IPV6)
+#define SD_RESOLVED_PROTOCOLS_ALL (SD_RESOLVED_MDNS|SD_RESOLVED_LLMNR|SD_RESOLVED_DNS)
#define SD_RESOLVED_QUERY_TIMEOUT_USEC (120 * USEC_PER_SEC)
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <stdio.h>
DnsAnswer *dns_answer_new(size_t n) {
DnsAnswer *a;
+ if (n > UINT16_MAX) /* We can only place 64K RRs in an answer at max */
+ n = UINT16_MAX;
+
a = malloc0(offsetof(DnsAnswer, items) + sizeof(DnsAnswerItem) * n);
if (!a)
return NULL;
assert(ret);
+ if (a == b) {
+ *ret = dns_answer_ref(a);
+ return 0;
+ }
+
if (dns_answer_size(a) <= 0) {
*ret = dns_answer_ref(b);
return 0;
return -EBUSY;
ns = (*a)->n_rrs + n_free;
+ if (ns > UINT16_MAX) /* Maximum number of RRs we can stick into a DNS packet section */
+ ns = UINT16_MAX;
if ((*a)->n_allocated >= ns)
return 0;
/* Allocate more than we need */
ns *= 2;
+ if (ns > UINT16_MAX)
+ ns = UINT16_MAX;
n = realloc(*a, offsetof(DnsAnswer, items) + sizeof(DnsAnswerItem) * ns);
if (!n)
fputs(t, f);
- if (ifindex != 0 || flags & (DNS_ANSWER_AUTHENTICATED|DNS_ANSWER_CACHEABLE|DNS_ANSWER_SHARED_OWNER))
+ if (ifindex != 0 || flags != 0)
fputs("\t;", f);
if (ifindex != 0)
- printf(" ifindex=%i", ifindex);
+ fprintf(f, " ifindex=%i", ifindex);
if (flags & DNS_ANSWER_AUTHENTICATED)
fputs(" authenticated", f);
if (flags & DNS_ANSWER_CACHEABLE)
fputs(" cacheable", f);
if (flags & DNS_ANSWER_SHARED_OWNER)
fputs(" shared-owner", f);
+ if (flags & DNS_ANSWER_CACHE_FLUSH)
+ fputs(" cache-flush", f);
+ if (flags & DNS_ANSWER_GOODBYE)
+ fputs(" goodbye", f);
fputc('\n', f);
}
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
typedef struct DnsAnswer DnsAnswer;
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <net/if.h>
dns_cache_make_space(c, 1);
- i = new0(DnsCacheItem, 1);
+ i = new(DnsCacheItem, 1);
if (!i)
return -ENOMEM;
- i->type = DNS_CACHE_POSITIVE;
- i->key = dns_resource_key_ref(rr->key);
- i->rr = dns_resource_record_ref(rr);
- i->until = calculate_until(rr, (uint32_t) -1, timestamp, false);
- i->authenticated = authenticated;
- i->shared_owner = shared_owner;
- i->ifindex = ifindex;
- i->owner_family = owner_family;
- i->owner_address = *owner_address;
- i->prioq_idx = PRIOQ_IDX_NULL;
+ *i = (DnsCacheItem) {
+ .type = DNS_CACHE_POSITIVE,
+ .key = dns_resource_key_ref(rr->key),
+ .rr = dns_resource_record_ref(rr),
+ .until = calculate_until(rr, (uint32_t) -1, timestamp, false),
+ .authenticated = authenticated,
+ .shared_owner = shared_owner,
+ .ifindex = ifindex,
+ .owner_family = owner_family,
+ .owner_address = *owner_address,
+ .prioq_idx = PRIOQ_IDX_NULL,
+ };
r = dns_cache_link_item(c, i);
if (r < 0)
dns_cache_make_space(c, 1);
- i = new0(DnsCacheItem, 1);
+ i = new(DnsCacheItem, 1);
if (!i)
return -ENOMEM;
- i->type =
- rcode == DNS_RCODE_SUCCESS ? DNS_CACHE_NODATA :
- rcode == DNS_RCODE_NXDOMAIN ? DNS_CACHE_NXDOMAIN : DNS_CACHE_RCODE;
+ *i = (DnsCacheItem) {
+ .type =
+ rcode == DNS_RCODE_SUCCESS ? DNS_CACHE_NODATA :
+ rcode == DNS_RCODE_NXDOMAIN ? DNS_CACHE_NXDOMAIN : DNS_CACHE_RCODE,
+ .authenticated = authenticated,
+ .owner_family = owner_family,
+ .owner_address = *owner_address,
+ .prioq_idx = PRIOQ_IDX_NULL,
+ .rcode = rcode,
+ };
+
i->until =
i->type == DNS_CACHE_RCODE ? timestamp + CACHE_TTL_STRANGE_RCODE_USEC :
calculate_until(soa, nsec_ttl, timestamp, true);
- i->authenticated = authenticated;
- i->owner_family = owner_family;
- i->owner_address = *owner_address;
- i->prioq_idx = PRIOQ_IDX_NULL;
- i->rcode = rcode;
if (i->type == DNS_CACHE_NXDOMAIN) {
/* NXDOMAIN entries should apply equally to all types, so we use ANY as
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include "hashmap.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include "alloc-util.h"
#include "dns-domain.h"
/* The following checks only make sense for NSEC RRs that are not expanded from a wildcard */
r = dns_resource_record_is_synthetic(rr);
+ if (r == -ENODATA) /* No signing RR known. */
+ continue;
if (r < 0)
return r;
if (r > 0)
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
typedef enum DnssecResult DnssecResult;
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#if HAVE_GCRYPT
#include <gcrypt.h>
if (!p)
return -ENOMEM;
- p->size = p->rindex = DNS_PACKET_HEADER_SIZE;
- p->allocated = a;
- p->max_size = max_size;
- p->protocol = protocol;
- p->opt_start = p->opt_size = (size_t) -1;
- p->n_ref = 1;
+ *p = (DnsPacket) {
+ .n_ref = 1,
+ .protocol = protocol,
+ .size = DNS_PACKET_HEADER_SIZE,
+ .rindex = DNS_PACKET_HEADER_SIZE,
+ .allocated = a,
+ .max_size = max_size,
+ .opt_start = (size_t) -1,
+ .opt_size = (size_t) -1,
+ };
*ret = p;
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <netinet/ip.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include "alloc-util.h"
#include "dns-domain.h"
assert(q);
assert(s);
- c = new0(DnsQueryCandidate, 1);
+ c = new(DnsQueryCandidate, 1);
if (!c)
return -ENOMEM;
- c->query = q;
- c->scope = s;
+ *c = (DnsQueryCandidate) {
+ .query = q,
+ .scope = s,
+ };
LIST_PREPEND(candidates_by_query, q->candidates, c);
LIST_PREPEND(candidates_by_scope, s->query_candidates, c);
if (m->n_dns_queries >= QUERIES_MAX)
return -EBUSY;
- q = new0(DnsQuery, 1);
+ q = new(DnsQuery, 1);
if (!q)
return -ENOMEM;
- q->question_utf8 = dns_question_ref(question_utf8);
- q->question_idna = dns_question_ref(question_idna);
- q->ifindex = ifindex;
- q->flags = flags;
- q->answer_dnssec_result = _DNSSEC_RESULT_INVALID;
- q->answer_protocol = _DNS_PROTOCOL_INVALID;
- q->answer_family = AF_UNSPEC;
+ *q = (DnsQuery) {
+ .question_utf8 = dns_question_ref(question_utf8),
+ .question_idna = dns_question_ref(question_idna),
+ .ifindex = ifindex,
+ .flags = flags,
+ .answer_dnssec_result = _DNSSEC_RESULT_INVALID,
+ .answer_protocol = _DNS_PROTOCOL_INVALID,
+ .answer_family = AF_UNSPEC,
+ };
/* First dump UTF8 question */
DNS_QUESTION_FOREACH(key, question_utf8)
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include "sd-bus.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include "alloc-util.h"
#include "dns-domain.h"
DnsQuestion *dns_question_new(size_t n) {
DnsQuestion *q;
- assert(n > 0);
+ if (n > UINT16_MAX) /* We can only place 64K key in an question section at max */
+ n = UINT16_MAX;
q = malloc0(offsetof(DnsQuestion, keys) + sizeof(DnsResourceKey*) * n);
if (!q)
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
typedef struct DnsQuestion DnsQuestion;
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <math.h>
assert(name);
- k = new0(DnsResourceKey, 1);
+ k = new(DnsResourceKey, 1);
if (!k)
return NULL;
- k->n_ref = 1;
- k->class = class;
- k->type = type;
- k->_name = name;
+ *k = (DnsResourceKey) {
+ .n_ref = 1,
+ .class = class,
+ .type = type,
+ ._name = name,
+ };
return k;
}
DnsResourceRecord* dns_resource_record_new(DnsResourceKey *key) {
DnsResourceRecord *rr;
- rr = new0(DnsResourceRecord, 1);
+ rr = new(DnsResourceRecord, 1);
if (!rr)
return NULL;
- rr->n_ref = 1;
- rr->key = dns_resource_key_ref(key);
- rr->expiry = USEC_INFINITY;
- rr->n_skip_labels_signer = rr->n_skip_labels_source = (unsigned) -1;
+ *rr = (DnsResourceRecord) {
+ .n_ref = 1,
+ .key = dns_resource_key_ref(key),
+ .expiry = USEC_INFINITY,
+ .n_skip_labels_signer = (unsigned) -1,
+ .n_skip_labels_source = (unsigned) -1,
+ };
return rr;
}
return NULL;
copy->nsec3.salt_size = rr->nsec3.salt_size;
copy->nsec3.next_hashed_name = memdup(rr->nsec3.next_hashed_name, rr->nsec3.next_hashed_name_size);
- if (!copy->nsec3.next_hashed_name_size)
+ if (!copy->nsec3.next_hashed_name)
return NULL;
copy->nsec3.next_hashed_name_size = rr->nsec3.next_hashed_name_size;
copy->nsec3.types = bitmap_copy(rr->nsec3.types);
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <netinet/in.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <netinet/tcp.h>
if ((dns_name_is_single_label(domain) && /* only resolve single label names via LLMNR */
!is_gateway_hostname(domain) && /* don't resolve "gateway" with LLMNR, let nss-myhostname handle this */
+ dns_name_equal(domain, "local") == 0 && /* don't resolve "local" with LLMNR, it's the top-level domain of mDNS after all, see above */
manager_is_own_hostname(s->manager, domain) <= 0)) /* never resolve the local hostname via LLMNR */
return DNS_SCOPE_YES_BASE + 1; /* Return +1, as we consider ourselves authoritative
* for single-label names, i.e. one label. This is
bool dns_scope_network_good(DnsScope *s) {
/* Checks whether the network is in good state for lookups on this scope. For mDNS/LLMNR/Classic DNS scopes
* bound to links this is easy, as they don't even exist if the link isn't in a suitable state. For the global
- * DNS scope we check whether there are any links that are up and have an address. */
+ * DNS scope we check whether there are any links that are up and have an address.
+ *
+ * Note that Linux routing is complex and even systems that superficially have no IPv4 address might
+ * be able to route IPv4 (and similar for IPv6), hence let's make a check here independent of address
+ * family. */
if (s->link)
return true;
- return manager_routable(s->manager, AF_UNSPEC);
+ return manager_routable(s->manager);
}
int dns_scope_ifindex(DnsScope *s) {
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include "list.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include "alloc-util.h"
#include "dns-domain.h"
return -E2BIG;
}
- d = new0(DnsSearchDomain, 1);
+ d = new(DnsSearchDomain, 1);
if (!d)
return -ENOMEM;
- d->n_ref = 1;
- d->manager = m;
- d->type = type;
- d->name = TAKE_PTR(normalized);
+ *d = (DnsSearchDomain) {
+ .n_ref = 1,
+ .manager = m,
+ .type = type,
+ .name = TAKE_PTR(normalized),
+ };
switch (type) {
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include "list.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include "sd-messages.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include "in-addr-util.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <netinet/tcp.h>
#include <unistd.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include "sd-event.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <net/if_arp.h>
* IP and UDP header sizes */
#define ADVERTISE_DATAGRAM_SIZE_MAX (65536U-14U-20U-8U)
+/* On the extra stubs, use a more conservative choice */
+#define ADVERTISE_EXTRA_DATAGRAM_SIZE_MAX DNS_PACKET_UNICAST_SIZE_LARGE_MAX
+
static int manager_dns_stub_fd_extra(Manager *m, DnsStubListenerExtra *l, int type);
static void dns_stub_listener_extra_hash_func(const DnsStubListenerExtra *a, struct siphash *state) {
bool tc, /* set the Truncated bit? */
bool add_opt, /* add an OPT RR to this packet? */
bool edns0_do, /* set the EDNS0 DNSSEC OK bit? */
- bool ad) { /* set the DNSSEC authenticated data bit? */
+ bool ad, /* set the DNSSEC authenticated data bit? */
+ uint16_t max_udp_size) { /* The maximum UDP datagram size to advertise to clients */
int r;
assert(p);
if (add_opt) {
- r = dns_packet_append_opt(p, ADVERTISE_DATAGRAM_SIZE_MAX, edns0_do, /* include_rfc6975 = */ false, rcode, NULL);
+ r = dns_packet_append_opt(p, max_udp_size, edns0_do, /* include_rfc6975 = */ false, rcode, NULL);
if (r == -EMSGSIZE) /* Hit the size limit? then indicate truncation */
tc = true;
else if (r < 0)
if (r < 0)
return log_debug_errno(r, "Failed to make failure packet: %m");
- r = dns_stub_finish_reply_packet(reply, DNS_PACKET_ID(p), rcode, false, !!p->opt, DNS_PACKET_DO(p), authenticated);
+ r = dns_stub_finish_reply_packet(
+ reply,
+ DNS_PACKET_ID(p),
+ rcode,
+ /* truncated = */ false,
+ !!p->opt,
+ DNS_PACKET_DO(p),
+ authenticated,
+ l ? ADVERTISE_EXTRA_DATAGRAM_SIZE_MAX : ADVERTISE_DATAGRAM_SIZE_MAX);
if (r < 0)
return log_debug_errno(r, "Failed to build failure packet: %m");
truncated,
!!q->request_dns_packet->opt,
DNS_PACKET_DO(q->request_dns_packet),
- dns_query_fully_authenticated(q));
+ dns_query_fully_authenticated(q),
+ q->stub_listener_extra ? ADVERTISE_EXTRA_DATAGRAM_SIZE_MAX : ADVERTISE_DATAGRAM_SIZE_MAX);
if (r < 0) {
log_debug_errno(r, "Failed to finish reply packet: %m");
break;
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include "hash-funcs.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include "alloc-util.h"
#include "hostname-util.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include "resolved-dns-answer.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include "sd-messages.h"
if (r < 0)
return r;
- t = new0(DnsTransaction, 1);
+ t = new(DnsTransaction, 1);
if (!t)
return -ENOMEM;
- t->dns_udp_fd = -1;
- t->answer_source = _DNS_TRANSACTION_SOURCE_INVALID;
- t->answer_dnssec_result = _DNSSEC_RESULT_INVALID;
- t->answer_nsec_ttl = (uint32_t) -1;
- t->key = dns_resource_key_ref(key);
- t->current_feature_level = _DNS_SERVER_FEATURE_LEVEL_INVALID;
- t->clamp_feature_level = _DNS_SERVER_FEATURE_LEVEL_INVALID;
-
- t->id = pick_new_id(s->manager);
+ *t = (DnsTransaction) {
+ .dns_udp_fd = -1,
+ .answer_source = _DNS_TRANSACTION_SOURCE_INVALID,
+ .answer_dnssec_result = _DNSSEC_RESULT_INVALID,
+ .answer_nsec_ttl = (uint32_t) -1,
+ .key = dns_resource_key_ref(key),
+ .current_feature_level = _DNS_SERVER_FEATURE_LEVEL_INVALID,
+ .clamp_feature_level = _DNS_SERVER_FEATURE_LEVEL_INVALID,
+ .id = pick_new_id(s->manager),
+ };
r = hashmap_put(s->manager->dns_transactions, UINT_TO_PTR(t->id), t);
if (r < 0) {
if (r > 0) /* Transaction got restarted... */
return;
- if (IN_SET(t->scope->protocol, DNS_PROTOCOL_DNS, DNS_PROTOCOL_LLMNR, DNS_PROTOCOL_MDNS)) {
-
- /* When dealing with protocols other than mDNS only consider responses with
- * equivalent query section to the request. For mDNS this check doesn't make
- * sense, because the section 6 of RFC6762 states that "Multicast DNS responses MUST NOT
- * contain any questions in the Question Section". */
- if (t->scope->protocol != DNS_PROTOCOL_MDNS) {
- r = dns_packet_is_reply_for(p, t->key);
- if (r < 0)
- goto fail;
- if (r == 0) {
- dns_transaction_complete(t, DNS_TRANSACTION_INVALID_REPLY);
- return;
- }
+ /* When dealing with protocols other than mDNS only consider responses with equivalent query section
+ * to the request. For mDNS this check doesn't make sense, because the section 6 of RFC6762 states
+ * that "Multicast DNS responses MUST NOT contain any questions in the Question Section". */
+ if (t->scope->protocol != DNS_PROTOCOL_MDNS) {
+ r = dns_packet_is_reply_for(p, t->key);
+ if (r < 0)
+ goto fail;
+ if (r == 0) {
+ dns_transaction_complete(t, DNS_TRANSACTION_INVALID_REPLY);
+ return;
}
+ }
- /* Install the answer as answer to the transaction */
- dns_answer_unref(t->answer);
- t->answer = dns_answer_ref(p->answer);
- t->answer_rcode = DNS_PACKET_RCODE(p);
- t->answer_dnssec_result = _DNSSEC_RESULT_INVALID;
- t->answer_authenticated = false;
+ /* Install the answer as answer to the transaction */
+ dns_answer_unref(t->answer);
+ t->answer = dns_answer_ref(p->answer);
+ t->answer_rcode = DNS_PACKET_RCODE(p);
+ t->answer_dnssec_result = _DNSSEC_RESULT_INVALID;
+ t->answer_authenticated = false;
- r = dns_transaction_fix_rcode(t);
- if (r < 0)
- goto fail;
+ r = dns_transaction_fix_rcode(t);
+ if (r < 0)
+ goto fail;
- /* Block GC while starting requests for additional DNSSEC RRs */
- t->block_gc++;
- r = dns_transaction_request_dnssec_keys(t);
- t->block_gc--;
+ /* Block GC while starting requests for additional DNSSEC RRs */
+ t->block_gc++;
+ r = dns_transaction_request_dnssec_keys(t);
+ t->block_gc--;
- /* Maybe the transaction is ready for GC'ing now? If so, free it and return. */
- if (!dns_transaction_gc(t))
- return;
+ /* Maybe the transaction is ready for GC'ing now? If so, free it and return. */
+ if (!dns_transaction_gc(t))
+ return;
- /* Requesting additional keys might have resulted in
- * this transaction to fail, since the auxiliary
- * request failed for some reason. If so, we are not
- * in pending state anymore, and we should exit
- * quickly. */
- if (t->state != DNS_TRANSACTION_PENDING)
- return;
- if (r < 0)
- goto fail;
- if (r > 0) {
- /* There are DNSSEC transactions pending now. Update the state accordingly. */
- t->state = DNS_TRANSACTION_VALIDATING;
- dns_transaction_close_connection(t);
- dns_transaction_stop_timeout(t);
- return;
- }
+ /* Requesting additional keys might have resulted in this transaction to fail, since the auxiliary
+ * request failed for some reason. If so, we are not in pending state anymore, and we should exit
+ * quickly. */
+ if (t->state != DNS_TRANSACTION_PENDING)
+ return;
+ if (r < 0)
+ goto fail;
+ if (r > 0) {
+ /* There are DNSSEC transactions pending now. Update the state accordingly. */
+ t->state = DNS_TRANSACTION_VALIDATING;
+ dns_transaction_close_connection(t);
+ dns_transaction_stop_timeout(t);
+ return;
}
dns_transaction_process_dnssec(t);
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include "sd-event.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include "sd-messages.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
typedef struct DnsTrustAnchor DnsTrustAnchor;
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include "alloc-util.h"
#include "dns-domain.h"
if (r < 0)
return r;
- i = new0(DnsZoneItem, 1);
+ i = new(DnsZoneItem, 1);
if (!i)
return -ENOMEM;
- i->scope = s;
- i->rr = dns_resource_record_ref(rr);
- i->probing_enabled = probe;
+ *i = (DnsZoneItem) {
+ .scope = s,
+ .rr = dns_resource_record_ref(rr),
+ .probing_enabled = probe,
+ };
r = dns_zone_link_item(z, i);
if (r < 0)
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include "hashmap.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include "alloc-util.h"
#include "bus-polkit.h"
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
+
#pragma once
#include "sd-bus.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include "conf-files.h"
#include "conf-parser.h"
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
+
#pragma once
#include "list.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#if !ENABLE_DNS_OVER_TLS || !DNS_OVER_TLS_USE_GNUTLS
#error This source file requires DNS-over-TLS to be enabled and GnuTLS to be available.
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#if !ENABLE_DNS_OVER_TLS || !DNS_OVER_TLS_USE_GNUTLS
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#if !ENABLE_DNS_OVER_TLS || !DNS_OVER_TLS_USE_OPENSSL
#error This source file requires DNS-over-TLS to be enabled and OpenSSL to be available.
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#if !ENABLE_DNS_OVER_TLS || !DNS_OVER_TLS_USE_OPENSSL
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#if ENABLE_DNS_OVER_TLS
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <sys/stat.h>
#include <sys/types.h>
if (r < 0)
return log_oom();
- item = new0(EtcHostsItem, 1);
+ item = new(EtcHostsItem, 1);
if (!item)
return log_oom();
- item->address = address;
+ *item = (EtcHostsItem) {
+ .address = address,
+ };
r = hashmap_put(hosts->by_address, &item->address, item);
if (r < 0) {
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include "resolved-manager.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <net/if.h>
#include <netinet/in.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include "sd-bus.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <linux/if.h>
#include <unistd.h>
assert(l);
assert(in_addr);
- a = new0(LinkAddress, 1);
+ a = new(LinkAddress, 1);
if (!a)
return -ENOMEM;
- a->family = family;
- a->in_addr = *in_addr;
+ *a = (LinkAddress) {
+ .family = family,
+ .in_addr = *in_addr,
+ .link = l,
+ };
- a->link = l;
LIST_PREPEND(addresses, l->addresses, a);
l->n_addresses++;
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include "sd-netlink.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <netinet/in.h>
#include <resolv.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include "resolved-manager.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <fcntl.h>
#include <netinet/in.h>
int manager_write(Manager *m, int fd, DnsPacket *p) {
int r;
- log_debug("Sending %s packet with id %" PRIu16 ".", DNS_PACKET_QR(p) ? "response" : "query", DNS_PACKET_ID(p));
+ log_debug("Sending %s%s packet with id %" PRIu16 " of size %zu.",
+ DNS_PACKET_TC(p) ? "truncated (!) " : "",
+ DNS_PACKET_QR(p) ? "response" : "query",
+ DNS_PACKET_ID(p),
+ p->size);
r = write_loop(fd, DNS_PACKET_DATA(p), p->size);
if (r < 0)
assert(port > 0);
assert(p);
- log_debug("Sending %s packet with id %" PRIu16 " on interface %i/%s.", DNS_PACKET_QR(p) ? "response" : "query", DNS_PACKET_ID(p), ifindex, af_to_name(family));
+ log_debug("Sending %s%s packet with id %" PRIu16 " on interface %i/%s of size %zu.",
+ DNS_PACKET_TC(p) ? "truncated (!) " : "",
+ DNS_PACKET_QR(p) ? "response" : "query",
+ DNS_PACKET_ID(p),
+ ifindex, af_to_name(family),
+ p->size);
if (family == AF_INET)
return manager_ipv4_send(m, fd, ifindex, &destination->in, port, source ? &source->in : NULL, p);
m->n_dnssec_verdict[verdict]++;
}
-bool manager_routable(Manager *m, int family) {
+bool manager_routable(Manager *m) {
Link *l;
assert(m);
- /* Returns true if the host has at least one interface with a routable address of the specified type */
+ /* Returns true if the host has at least one interface with a routable address (regardless if IPv4 or IPv6) */
HASHMAP_FOREACH(l, m->links)
- if (link_relevant(l, family, false))
+ if (link_relevant(l, AF_UNSPEC, false))
return true;
return false;
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <sys/stat.h>
void manager_dnssec_verdict(Manager *m, DnssecVerdict verdict, const DnsResourceKey *key);
-bool manager_routable(Manager *m, int family);
+bool manager_routable(Manager *m);
void manager_flush_caches(Manager *m);
void manager_reset_server_features(Manager *m);
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <resolv.h>
#include <netinet/in.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include "resolved-manager.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <resolv.h>
#include <sys/stat.h>
r = manager_parse_search_domains_and_warn(m, a);
if (r < 0)
log_warning_errno(r, "Failed to parse search domain string '%s', ignoring.", a);
+
+ continue;
}
log_syntax(NULL, LOG_DEBUG, "/etc/resolv.conf", n, 0, "Ignoring resolv.conf line: %s", l);
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include "resolved-manager.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include "in-addr-util.h"
#include "resolved-dns-synthesize.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include "resolved-manager.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <sys/stat.h>
#include <sys/types.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <net/if.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <netinet/ip.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <arpa/inet.h>
#if HAVE_GCRYPT
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include "dns-type.h"
#include "resolved-dns-dnssec.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <arpa/inet.h>
#include <netinet/in.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include "log.h"
#include "resolved-dns-packet.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <fcntl.h>
#include <linux/rfkill.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <unistd.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <getopt.h>
#include <stdio.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <errno.h>
#include <stdbool.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <errno.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <errno.h>
#include <fcntl.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <time-util.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <stddef.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <stdbool.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <errno.h>
#include <fcntl.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <stdbool.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <errno.h>
#include <fcntl.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <stdbool.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <errno.h>
#include <fcntl.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <sys/types.h>
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
+
#include <sys/stat.h>
#include <sys/statvfs.h>
#include <sys/vfs.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
int disable_binfmt(void);
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <errno.h>
#include <stddef.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <stdbool.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#if HAVE_BLKID
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include "bond-util.h"
#include "string-table.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <netinet/in.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include "acpi-fpdt.h"
#include "boot-timestamps.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <time-util.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <stdio.h>
#include <linux/magic.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <fcntl.h>
#include <sys/stat.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <linux/bpf.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include "bridge-util.h"
#include "string-table.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <netinet/in.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include "bus-get-properties.h"
#include "rlimit-util.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include "sd-bus.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include "bus-locator.h"
#include "macro.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include "sd-bus.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include "alloc-util.h"
#include "bus-get-properties.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include "sd-bus.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include "bus-map-properties.h"
#include "alloc-util.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include "sd-bus.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include "bus-message-util.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include "sd-bus.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include "bus-introspect.h"
#include "bus-object.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <stdbool.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include "bus-internal.h"
#include "bus-message.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include "sd-bus.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include "bus-print-properties.h"
#include "cap-list.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <stdbool.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include "bus-unit-procs.h"
#include "hashmap.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include "sd-bus.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include "alloc-util.h"
#include "bus-error.h"
"BindIPv6Only",
"FileDescriptorName",
"SocketUser",
- "SocketGroup"))
+ "SocketGroup",
+ "Timestamping"))
return bus_append_string(m, field, eq);
if (streq(field, "Symlinks"))
"RemainAfterElapse",
"Persistent",
"OnTimezoneChange",
- "OnClockChange"))
+ "OnClockChange",
+ "FixedRandomDelay"))
return bus_append_parse_boolean(m, field, eq);
if (STR_IN_SET(field, "AccuracySec",
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include "sd-bus.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <errno.h>
#include <fcntl.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <stdbool.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include "alloc-util.h"
#include "bus-wait-for-jobs.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include "sd-bus.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include "bus-map-properties.h"
#include "bus-wait-for-units.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include "macro.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <ctype.h>
#include <errno.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
/* A structure for specifying (possibly repetitive) points in calendar
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <ftw.h>
#include <unistd.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <stdbool.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <dirent.h>
#include <errno.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <stdbool.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <fcntl.h>
#include <sys/stat.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <sys/types.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <errno.h>
#include <fcntl.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <sys/types.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <errno.h>
#include <fcntl.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <time.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <errno.h>
#include <fcntl.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <stdbool.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <errno.h>
#include <limits.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <errno.h>
return 0; \
}
-#define DEFINE_CONFIG_PARSE_ENUM(function, name, type, msg) \
+#define DEFINE_CONFIG_PARSE_ENUM_FULL(function, from_string, type, msg) \
CONFIG_PARSER_PROTOTYPE(function) { \
type *i = data, x; \
\
assert(rvalue); \
assert(data); \
\
- x = name##_from_string(rvalue); \
+ x = from_string(rvalue); \
if (x < 0) { \
log_syntax(unit, LOG_WARNING, filename, line, 0, \
msg ", ignoring: %s", rvalue); \
return 0; \
}
+#define DEFINE_CONFIG_PARSE_ENUM(function, name, type, msg) \
+ DEFINE_CONFIG_PARSE_ENUM_FULL(function, name##_from_string, type, msg)
+
#define DEFINE_CONFIG_PARSE_ENUM_WITH_DEFAULT(function, name, type, default_value, msg) \
CONFIG_PARSER_PROTOTYPE(function) { \
type *i = data, x; \
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include "coredump-util.h"
#include "extract-word.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include "macro.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <errno.h>
#include <stddef.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <sched.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#if HAVE_LIBCRYPTSETUP
#include "alloc-util.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include "macro.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <stdbool.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <errno.h>
#include <stdlib.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <sys/types.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#if HAVE_VALGRIND_MEMCHECK_H
#include <valgrind/memcheck.h>
}
#if HAVE_BLKID
-/* Detect RPMB and Boot partitions, which are not listed by blkid.
- * See https://github.com/systemd/systemd/issues/5806. */
-static bool device_is_mmc_special_partition(sd_device *d) {
- const char *sysname;
+static int enumerator_for_parent(sd_device *d, sd_device_enumerator **ret) {
+ _cleanup_(sd_device_enumerator_unrefp) sd_device_enumerator *e = NULL;
+ int r;
assert(d);
+ assert(ret);
- if (sd_device_get_sysname(d, &sysname) < 0)
- return false;
+ r = sd_device_enumerator_new(&e);
+ if (r < 0)
+ return r;
- return startswith(sysname, "mmcblk") &&
- (endswith(sysname, "rpmb") || endswith(sysname, "boot0") || endswith(sysname, "boot1"));
+ r = sd_device_enumerator_allow_uninitialized(e);
+ if (r < 0)
+ return r;
+
+ r = sd_device_enumerator_add_match_parent(e, d);
+ if (r < 0)
+ return r;
+
+ *ret = TAKE_PTR(e);
+ return 0;
}
-static bool device_is_block(sd_device *d) {
- const char *ss;
+static int device_is_partition(sd_device *d, blkid_partition pp) {
+ blkid_loff_t bsize, bstart;
+ uint64_t size, start;
+ int partno, bpartno, r;
+ const char *ss, *v;
assert(d);
+ assert(pp);
- if (sd_device_get_subsystem(d, &ss) < 0)
+ r = sd_device_get_subsystem(d, &ss);
+ if (r < 0)
+ return r;
+ if (!streq(ss, "block"))
return false;
- return streq(ss, "block");
-}
+ r = sd_device_get_sysattr_value(d, "partition", &v);
+ if (r == -ENOENT) /* Not a partition device */
+ return false;
+ if (r < 0)
+ return r;
+ r = safe_atoi(v, &partno);
+ if (r < 0)
+ return r;
-static int enumerator_for_parent(sd_device *d, sd_device_enumerator **ret) {
- _cleanup_(sd_device_enumerator_unrefp) sd_device_enumerator *e = NULL;
- int r;
+ errno = 0;
+ bpartno = blkid_partition_get_partno(pp);
+ if (bpartno < 0)
+ return errno_or_else(EIO);
- assert(d);
- assert(ret);
+ if (partno != bpartno)
+ return false;
- r = sd_device_enumerator_new(&e);
+ r = sd_device_get_sysattr_value(d, "start", &v);
if (r < 0)
return r;
-
- r = sd_device_enumerator_allow_uninitialized(e);
+ r = safe_atou64(v, &start);
if (r < 0)
return r;
- r = sd_device_enumerator_add_match_parent(e, d);
+ errno = 0;
+ bstart = blkid_partition_get_start(pp);
+ if (bstart < 0)
+ return errno_or_else(EIO);
+
+ if (start != (uint64_t) bstart)
+ return false;
+
+ r = sd_device_get_sysattr_value(d, "size", &v);
+ if (r < 0)
+ return r;
+ r = safe_atou64(v, &size);
if (r < 0)
return r;
- *ret = TAKE_PTR(e);
- return 0;
+ errno = 0;
+ bsize = blkid_partition_get_size(pp);
+ if (bsize < 0)
+ return errno_or_else(EIO);
+
+ if (size != (uint64_t) bsize)
+ return false;
+
+ return true;
}
-static int wait_for_partitions_to_appear(
- int fd,
- sd_device *d,
- unsigned num_partitions,
- DissectImageFlags flags,
- sd_device_enumerator **ret_enumerator) {
+static int find_partition(
+ sd_device *parent,
+ blkid_partition pp,
+ sd_device **ret) {
_cleanup_(sd_device_enumerator_unrefp) sd_device_enumerator *e = NULL;
sd_device *q;
- unsigned n;
int r;
- assert(fd >= 0);
- assert(d);
- assert(ret_enumerator);
+ assert(parent);
+ assert(pp);
+ assert(ret);
- r = enumerator_for_parent(d, &e);
+ r = enumerator_for_parent(parent, &e);
if (r < 0)
return r;
- /* Count the partitions enumerated by the kernel */
- n = 0;
FOREACH_DEVICE(e, q) {
- if (sd_device_get_devnum(q, NULL) < 0)
- continue;
- if (!device_is_block(q))
- continue;
- if (device_is_mmc_special_partition(q))
- continue;
-
- if (!FLAGS_SET(flags, DISSECT_IMAGE_NO_UDEV)) {
- r = device_wait_for_initialization(q, "block", USEC_INFINITY, NULL);
- if (r < 0)
- return r;
+ r = device_is_partition(q, pp);
+ if (r < 0)
+ return r;
+ if (r > 0) {
+ *ret = sd_device_ref(q);
+ return 0;
}
-
- n++;
}
- if (n == num_partitions + 1) {
- *ret_enumerator = TAKE_PTR(e);
- return 0; /* success! */
- }
- if (n > num_partitions + 1)
- return log_debug_errno(SYNTHETIC_ERRNO(EIO),
- "blkid and kernel partition lists do not match.");
+ return -ENXIO;
+}
- /* The kernel has probed fewer partitions than blkid? Maybe the kernel prober is still running or it
- * got EBUSY because udev already opened the device. Let's reprobe the device, which is a synchronous
- * call that waits until probing is complete. */
+struct wait_data {
+ sd_device *parent_device;
+ blkid_partition blkidp;
+ sd_device *found;
+};
- for (unsigned j = 0; ; j++) {
- if (j++ > 20)
- return -EBUSY;
+static inline void wait_data_done(struct wait_data *d) {
+ sd_device_unref(d->found);
+}
- if (ioctl(fd, BLKRRPART, 0) >= 0)
- break;
- r = -errno;
- if (r == -EINVAL) {
- /* If we are running on a block device that has partition scanning off, return an
- * explicit recognizable error about this, so that callers can generate a proper
- * message explaining the situation. */
+static int device_monitor_handler(sd_device_monitor *monitor, sd_device *device, void *userdata) {
+ const char *parent1_path, *parent2_path;
+ struct wait_data *w = userdata;
+ sd_device *pp;
+ int r;
- r = blockdev_partscan_enabled(fd);
- if (r < 0)
- return r;
- if (r == 0)
- return log_debug_errno(SYNTHETIC_ERRNO(EPROTONOSUPPORT),
- "Device is a loop device and partition scanning is off!");
+ assert(w);
- return -EINVAL; /* original error */
- }
- if (r != -EBUSY)
- return r;
+ if (device_for_action(device, DEVICE_ACTION_REMOVE))
+ return 0;
- /* If something else has the device open, such as an udev rule, the ioctl will return
- * EBUSY. Since there's no way to wait until it isn't busy anymore, let's just wait a bit,
- * and try again.
- *
- * This is really something they should fix in the kernel! */
- (void) usleep(50 * USEC_PER_MSEC);
+ r = sd_device_get_parent(device, &pp);
+ if (r < 0)
+ return 0; /* Doesn't have a parent? No relevant to us */
- }
+ r = sd_device_get_syspath(pp, &parent1_path); /* Check parent of device of this action */
+ if (r < 0)
+ goto finish;
+
+ r = sd_device_get_syspath(w->parent_device, &parent2_path); /* Check parent of device we are looking for */
+ if (r < 0)
+ goto finish;
+
+ if (!path_equal(parent1_path, parent2_path))
+ return 0; /* Has a different parent than what we need, not interesting to us */
+
+ r = device_is_partition(device, w->blkidp);
+ if (r < 0)
+ goto finish;
+ if (r == 0) /* Not the one we need */
+ return 0;
+
+ /* It's the one we need! Yay! */
+ assert(!w->found);
+ w->found = sd_device_ref(device);
+ r = 0;
- return -EAGAIN; /* no success yet, try again */
+finish:
+ return sd_event_exit(sd_device_monitor_get_event(monitor), r);
}
-static int loop_wait_for_partitions_to_appear(
- int fd,
- sd_device *d,
- unsigned num_partitions,
- DissectImageFlags flags,
- sd_device_enumerator **ret_enumerator) {
- _cleanup_(sd_device_unrefp) sd_device *device = NULL;
+static int wait_for_partition_device(
+ sd_device *parent,
+ blkid_partition pp,
+ usec_t deadline,
+ sd_device **ret) {
+
+ _cleanup_(sd_event_source_unrefp) sd_event_source *timeout_source = NULL;
+ _cleanup_(sd_device_monitor_unrefp) sd_device_monitor *monitor = NULL;
+ _cleanup_(sd_event_unrefp) sd_event *event = NULL;
int r;
- assert(fd >= 0);
- assert(d);
- assert(ret_enumerator);
+ assert(parent);
+ assert(pp);
+ assert(ret);
- log_debug("Waiting for device (parent + %d partitions) to appear...", num_partitions);
+ r = find_partition(parent, pp, ret);
+ if (r != -ENXIO)
+ return r;
- if (!FLAGS_SET(flags, DISSECT_IMAGE_NO_UDEV)) {
- r = device_wait_for_initialization(d, "block", USEC_INFINITY, &device);
- if (r < 0)
- return r;
- } else
- device = sd_device_ref(d);
+ r = sd_event_new(&event);
+ if (r < 0)
+ return r;
- for (unsigned i = 0; i < N_DEVICE_NODE_LIST_ATTEMPTS; i++) {
- r = wait_for_partitions_to_appear(fd, device, num_partitions, flags, ret_enumerator);
- if (r != -EAGAIN)
+ r = sd_device_monitor_new(&monitor);
+ if (r < 0)
+ return r;
+
+ r = sd_device_monitor_filter_add_match_subsystem_devtype(monitor, "block", "partition");
+ if (r < 0)
+ return r;
+
+ r = sd_device_monitor_attach_event(monitor, event);
+ if (r < 0)
+ return r;
+
+ _cleanup_(wait_data_done) struct wait_data w = {
+ .parent_device = parent,
+ .blkidp = pp,
+ };
+
+ r = sd_device_monitor_start(monitor, device_monitor_handler, &w);
+ if (r < 0)
+ return r;
+
+ /* Check again, the partition might have appeared in the meantime */
+ r = find_partition(parent, pp, ret);
+ if (r != -ENXIO)
+ return r;
+
+ if (deadline != USEC_INFINITY) {
+ r = sd_event_add_time(
+ event, &timeout_source,
+ CLOCK_MONOTONIC, deadline, 0,
+ NULL, INT_TO_PTR(-ETIMEDOUT));
+ if (r < 0)
return r;
}
- return log_debug_errno(SYNTHETIC_ERRNO(ENXIO),
- "Kernel partitions dit not appear within %d attempts",
- N_DEVICE_NODE_LIST_ATTEMPTS);
+ r = sd_event_loop(event);
+ if (r < 0)
+ return r;
+
+ assert(w.found);
+ *ret = TAKE_PTR(w.found);
+ return 0;
}
static void check_partition_flags(
}
}
+static int device_wait_for_initialization_harder(
+ sd_device *device,
+ const char *subsystem,
+ usec_t deadline,
+ sd_device **ret) {
+
+ _cleanup_free_ char *uevent = NULL;
+ usec_t start, left, retrigger_timeout;
+ int r;
+
+ start = now(CLOCK_MONOTONIC);
+ left = usec_sub_unsigned(deadline, start);
+
+ if (DEBUG_LOGGING) {
+ char buf[FORMAT_TIMESPAN_MAX];
+ const char *sn = NULL;
+
+ (void) sd_device_get_sysname(device, &sn);
+ log_debug("Waiting for device '%s' to initialize for %s.", strna(sn), format_timespan(buf, sizeof(buf), left, 0));
+ }
+
+ if (left != USEC_INFINITY)
+ retrigger_timeout = CLAMP(left / 4, 1 * USEC_PER_SEC, 5 * USEC_PER_SEC); /* A fourth of the total timeout, but let's clamp to 1s…5s range */
+ else
+ retrigger_timeout = 2 * USEC_PER_SEC;
+
+ for (;;) {
+ usec_t local_deadline, n;
+ bool last_try;
+
+ n = now(CLOCK_MONOTONIC);
+ assert(n >= start);
+
+ /* Find next deadline, when we'll retrigger */
+ local_deadline = start +
+ DIV_ROUND_UP(n - start, retrigger_timeout) * retrigger_timeout;
+
+ if (deadline != USEC_INFINITY && deadline <= local_deadline) {
+ local_deadline = deadline;
+ last_try = true;
+ } else
+ last_try = false;
+
+ r = device_wait_for_initialization(device, subsystem, local_deadline, ret);
+ if (r >= 0 && DEBUG_LOGGING) {
+ char buf[FORMAT_TIMESPAN_MAX];
+ const char *sn = NULL;
+
+ (void) sd_device_get_sysname(device, &sn);
+ log_debug("Successfully waited for device '%s' to initialize for %s.", strna(sn), format_timespan(buf, sizeof(buf), usec_sub_unsigned(now(CLOCK_MONOTONIC), start), 0));
+
+ }
+ if (r != -ETIMEDOUT || last_try)
+ return r;
+
+ if (!uevent) {
+ const char *syspath;
+
+ r = sd_device_get_syspath(device, &syspath);
+ if (r < 0)
+ return r;
+
+ uevent = path_join(syspath, "uevent");
+ if (!uevent)
+ return -ENOMEM;
+ }
+
+ if (DEBUG_LOGGING) {
+ char buf[FORMAT_TIMESPAN_MAX];
+
+ log_debug("Device didn't initialize within %s, assuming lost event. Retriggering device through %s.",
+ format_timespan(buf, sizeof(buf), usec_sub_unsigned(now(CLOCK_MONOTONIC), start), 0),
+ uevent);
+ }
+
+ r = write_string_file(uevent, "change", WRITE_STRING_FILE_DISABLE_BUFFER);
+ if (r < 0)
+ return r;
+ }
+}
#endif
+#define DEVICE_TIMEOUT_USEC (45 * USEC_PER_SEC)
+
int dissect_image(
int fd,
const VeritySettings *verity,
#if HAVE_BLKID
sd_id128_t root_uuid = SD_ID128_NULL, root_verity_uuid = SD_ID128_NULL,
usr_uuid = SD_ID128_NULL, usr_verity_uuid = SD_ID128_NULL;
- _cleanup_(sd_device_enumerator_unrefp) sd_device_enumerator *e = NULL;
bool is_gpt, is_mbr, generic_rw, multiple_generic = false;
_cleanup_(sd_device_unrefp) sd_device *d = NULL;
_cleanup_(dissected_image_unrefp) DissectedImage *m = NULL;
sd_id128_t generic_uuid = SD_ID128_NULL;
const char *pttype = NULL;
blkid_partlist pl;
- int r, generic_nr;
+ int r, generic_nr, n_partitions;
struct stat st;
- sd_device *q;
+ usec_t deadline;
assert(fd >= 0);
assert(ret);
if (!S_ISBLK(st.st_mode))
return -ENOTBLK;
+ r = sd_device_new_from_devnum(&d, 'b', st.st_rdev);
+ if (r < 0)
+ return r;
+
+ if (!FLAGS_SET(flags, DISSECT_IMAGE_NO_UDEV)) {
+ _cleanup_(sd_device_unrefp) sd_device *initialized = NULL;
+
+ /* If udev support is enabled, then let's wait for the device to be initialized before we doing anything. */
+
+ r = device_wait_for_initialization_harder(
+ d,
+ "block",
+ usec_add(now(CLOCK_MONOTONIC), DEVICE_TIMEOUT_USEC),
+ &initialized);
+ if (r < 0)
+ return r;
+
+ sd_device_unref(d);
+ d = TAKE_PTR(initialized);
+ }
+
b = blkid_new_probe();
if (!b)
return -ENOMEM;
if (!m)
return -ENOMEM;
- r = sd_device_new_from_devnum(&d, 'b', st.st_rdev);
- if (r < 0)
- return r;
-
if ((!(flags & DISSECT_IMAGE_GPT_ONLY) &&
(flags & DISSECT_IMAGE_REQUIRE_ROOT)) ||
(flags & DISSECT_IMAGE_NO_PARTITION_TABLE)) {
(void) blkid_probe_lookup_value(b, "USAGE", &usage, NULL);
if (STRPTR_IN_SET(usage, "filesystem", "crypto")) {
+ const char *fstype = NULL, *options = NULL, *devname = NULL;
_cleanup_free_ char *t = NULL, *n = NULL, *o = NULL;
- const char *fstype = NULL, *options = NULL;
/* OK, we have found a file system, that's our root partition then. */
(void) blkid_probe_lookup_value(b, "TYPE", &fstype, NULL);
return -ENOMEM;
}
- r = device_path_make_major_minor(st.st_mode, st.st_rdev, &n);
+ r = sd_device_get_devname(d, &devname);
if (r < 0)
return r;
+ n = strdup(devname);
+ if (!n)
+ return -ENOMEM;
+
m->single_file_system = true;
m->verity = verity && verity->root_hash && verity->data_path && (verity->designator < 0 || verity->designator == PARTITION_ROOT);
m->can_verity = verity && verity->data_path;
m->encrypted = streq_ptr(fstype, "crypto_LUKS");
- /* Even on a single partition we need to wait for udev to create the
- * /dev/block/X:Y symlink to /dev/loopZ */
- r = loop_wait_for_partitions_to_appear(fd, d, 0, flags, &e);
- if (r < 0)
- return r;
*ret = TAKE_PTR(m);
-
return 0;
}
}
if (!is_gpt && ((flags & DISSECT_IMAGE_GPT_ONLY) || !is_mbr))
return -ENOPKG;
+ /* Safety check: refuse block devices that carry a partition table but for which the kernel doesn't
+ * do partition scanning. */
+ r = blockdev_partscan_enabled(fd);
+ if (r < 0)
+ return r;
+ if (r == 0)
+ return -EPROTONOSUPPORT;
+
errno = 0;
pl = blkid_probe_get_partitions(b);
if (!pl)
return errno_or_else(ENOMEM);
- r = loop_wait_for_partitions_to_appear(fd, d, blkid_partlist_numof_partitions(pl), flags, &e);
- if (r < 0)
- return r;
+ errno = 0;
+ n_partitions = blkid_partlist_numof_partitions(pl);
+ if (n_partitions < 0)
+ return errno_or_else(EIO);
- FOREACH_DEVICE(e, q) {
+ deadline = usec_add(now(CLOCK_MONOTONIC), DEVICE_TIMEOUT_USEC);
+ for (int i = 0; i < n_partitions; i++) {
+ _cleanup_(sd_device_unrefp) sd_device *q = NULL;
unsigned long long pflags;
blkid_partition pp;
const char *node;
- dev_t qn;
int nr;
- r = sd_device_get_devnum(q, &qn);
- if (r < 0)
- continue;
-
- if (st.st_rdev == qn)
- continue;
-
- if (!device_is_block(q))
- continue;
+ errno = 0;
+ pp = blkid_partlist_get_partition(pl, i);
+ if (!pp)
+ return errno_or_else(EIO);
- if (device_is_mmc_special_partition(q))
- continue;
+ r = wait_for_partition_device(d, pp, deadline, &q);
+ if (r < 0)
+ return r;
r = sd_device_get_devname(q, &node);
if (r < 0)
- continue;
-
- pp = blkid_partlist_devno_to_partition(pl, qn);
- if (!pp)
- continue;
+ return r;
pflags = blkid_partition_get_flags(pp);
+ errno = 0;
nr = blkid_partition_get_partno(pp);
if (nr < 0)
- continue;
+ return errno_or_else(EIO);
if (is_gpt) {
PartitionDesignator designator = _PARTITION_DESIGNATOR_INVALID;
if (r == 0) {
/* devmapper might say that the device exists, but the devlink might not yet have been
* created. Check and wait for the udev event in that case. */
- r = device_wait_for_devlink(node, "block", 100 * USEC_PER_MSEC, NULL);
+ r = device_wait_for_devlink(node, "block", usec_add(now(CLOCK_MONOTONIC), 100 * USEC_PER_MSEC), NULL);
/* Fallback to activation with a unique device if it's taking too long */
if (r == -ETIMEDOUT)
break;
if (verity->root_hash && !verity->root_hash_sig) {
if (root_hash_sig_path) {
- r = read_full_file_full(AT_FDCWD, root_hash_sig_path, 0, (char**) &root_hash_sig, &root_hash_sig_size);
+ r = read_full_file_full(AT_FDCWD, root_hash_sig_path, 0, NULL, (char**) &root_hash_sig, &root_hash_sig_size);
if (r < 0 && r != -ENOENT)
return r;
if (!p)
return -ENOMEM;
- r = read_full_file_full(AT_FDCWD, p, 0, (char**) &root_hash_sig, &root_hash_sig_size);
+ r = read_full_file_full(AT_FDCWD, p, 0, NULL, (char**) &root_hash_sig, &root_hash_sig_size);
if (r < 0 && r != -ENOENT)
return r;
if (r >= 0)
if (!p)
return -ENOMEM;
- r = read_full_file_full(AT_FDCWD, p, 0, (char**) &root_hash_sig, &root_hash_sig_size);
+ r = read_full_file_full(AT_FDCWD, p, 0, NULL, (char**) &root_hash_sig, &root_hash_sig_size);
if (r < 0 && r != -ENOENT)
return r;
if (r >= 0)
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <stdbool.h>
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
+
#include <fcntl.h>
#include <linux/dm-ioctl.h>
#include <sys/ioctl.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
int dm_deferred_remove_cancel(const char *name);
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <endian.h>
#include <netinet/in.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <errno.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <errno.h>
#include <stdarg.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include "hashmap.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <stdlib.h>
#include <sys/stat.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include "efivars.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include "mempool.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <sys/stat.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
/* These functions are split out of fileio.h (and not for example just flags to the functions they wrap) in order to
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <net/if.h>
#include <sys/ioctl.h>
int ethtool_get_driver(int *ethtool_fd, const char *ifname, char **ret) {
struct ethtool_drvinfo ecmd = {
- .cmd = ETHTOOL_GDRVINFO
+ .cmd = ETHTOOL_GDRVINFO,
};
struct ifreq ifr = {
- .ifr_data = (void*) &ecmd
+ .ifr_data = (void*) &ecmd,
};
char *d;
int r;
+ assert(ethtool_fd);
+ assert(ifname);
+ assert(ret);
+
if (*ethtool_fd < 0) {
r = ethtool_connect_or_warn(ethtool_fd, true);
if (r < 0)
if (r < 0)
return -errno;
+ if (isempty(ecmd.driver))
+ return -ENODATA;
+
d = strdup(ecmd.driver);
if (!d)
return -ENOMEM;
return 0;
}
-int ethtool_get_link_info(int *ethtool_fd, const char *ifname,
- int *ret_autonegotiation, uint64_t *ret_speed,
- Duplex *ret_duplex, NetDevPort *ret_port) {
+int ethtool_get_link_info(
+ int *ethtool_fd,
+ const char *ifname,
+ int *ret_autonegotiation,
+ uint64_t *ret_speed,
+ Duplex *ret_duplex,
+ NetDevPort *ret_port) {
+
struct ethtool_cmd ecmd = {
.cmd = ETHTOOL_GSET,
};
};
int r;
+ assert(ethtool_fd);
+ assert(ifname);
+
if (*ethtool_fd < 0) {
r = ethtool_connect_or_warn(ethtool_fd, false);
if (r < 0)
int ethtool_set_speed(int *ethtool_fd, const char *ifname, unsigned speed, Duplex duplex) {
struct ethtool_cmd ecmd = {
- .cmd = ETHTOOL_GSET
+ .cmd = ETHTOOL_GSET,
};
struct ifreq ifr = {
- .ifr_data = (void*) &ecmd
+ .ifr_data = (void*) &ecmd,
};
bool need_update = false;
int r;
+ assert(ethtool_fd);
+ assert(ifname);
+
if (speed == 0 && duplex == _DUP_INVALID)
return 0;
int ethtool_set_wol(int *ethtool_fd, const char *ifname, WakeOnLan wol) {
struct ethtool_wolinfo ecmd = {
- .cmd = ETHTOOL_GWOL
+ .cmd = ETHTOOL_GWOL,
};
struct ifreq ifr = {
- .ifr_data = (void*) &ecmd
+ .ifr_data = (void*) &ecmd,
};
bool need_update = false;
int r;
+ assert(ethtool_fd);
+ assert(ifname);
+
if (wol == _WOL_INVALID)
return 0;
int ethtool_set_nic_buffer_size(int *ethtool_fd, const char *ifname, const netdev_ring_param *ring) {
struct ethtool_ringparam ecmd = {
- .cmd = ETHTOOL_GRINGPARAM
+ .cmd = ETHTOOL_GRINGPARAM,
};
struct ifreq ifr = {
- .ifr_data = (void*) &ecmd
+ .ifr_data = (void*) &ecmd,
};
bool need_update = false;
int r;
+ assert(ethtool_fd);
+ assert(ifname);
+ assert(ring);
+
if (*ethtool_fd < 0) {
r = ethtool_connect_or_warn(ethtool_fd, true);
if (r < 0)
return 0;
}
-static int get_stringset(int ethtool_fd, struct ifreq *ifr, int stringset_id, struct ethtool_gstrings **gstrings) {
+static int get_stringset(int ethtool_fd, struct ifreq *ifr, int stringset_id, struct ethtool_gstrings **ret) {
_cleanup_free_ struct ethtool_gstrings *strings = NULL;
struct {
struct ethtool_sset_info info;
unsigned len;
int r;
+ assert(ethtool_fd >= 0);
+ assert(ifr);
+ assert(ret);
+
ifr->ifr_data = (void *) &buffer.info;
r = ioctl(ethtool_fd, SIOCETHTOOL, ifr);
if (r < 0)
return -errno;
- *gstrings = TAKE_PTR(strings);
+ *ret = TAKE_PTR(strings);
return 0;
}
struct ifreq ifr = {};
int i, r;
+ assert(ethtool_fd);
+ assert(ifname);
+ assert(features);
+
if (*ethtool_fd < 0) {
r = ethtool_connect_or_warn(ethtool_fd, true);
if (r < 0)
return 0;
}
-static int get_glinksettings(int fd, struct ifreq *ifr, struct ethtool_link_usettings **g) {
+static int get_glinksettings(int fd, struct ifreq *ifr, struct ethtool_link_usettings **ret) {
struct ecmd {
struct ethtool_link_settings req;
__u32 link_mode_data[3 * ETHTOOL_LINK_MODE_MASK_MAX_KERNEL_NU32];
unsigned offset;
int r;
+ assert(fd >= 0);
+ assert(ifr);
+ assert(ret);
+
/* The interaction user/kernel via the new API requires a small ETHTOOL_GLINKSETTINGS
handshake first to agree on the length of the link mode bitmaps. If kernel doesn't
agree with user, it returns the bitmap length it is expecting from user as a negative
offset += ecmd.req.link_mode_masks_nwords;
memcpy(u->link_modes.lp_advertising, &ecmd.link_mode_data[offset], 4 * ecmd.req.link_mode_masks_nwords);
- *g = u;
+ *ret = u;
return 0;
}
-static int get_gset(int fd, struct ifreq *ifr, struct ethtool_link_usettings **u) {
+static int get_gset(int fd, struct ifreq *ifr, struct ethtool_link_usettings **ret) {
struct ethtool_link_usettings *e;
struct ethtool_cmd ecmd = {
.cmd = ETHTOOL_GSET,
};
int r;
+ assert(fd >= 0);
+ assert(ifr);
+ assert(ret);
+
ifr->ifr_data = (void *) &ecmd;
r = ioctl(fd, SIOCETHTOOL, ifr);
.link_modes.lp_advertising[0] = ecmd.lp_advertising,
};
- *u = e;
+ *ret = e;
return 0;
}
unsigned offset;
int r;
+ assert(fd >= 0);
+ assert(ifr);
+ assert(u);
+
if (u->base.cmd != ETHTOOL_GLINKSETTINGS || u->base.link_mode_masks_nwords <= 0)
return -EINVAL;
};
int r;
+ assert(fd >= 0);
+ assert(ifr);
+ assert(u);
+
if (u->base.cmd != ETHTOOL_GSET || u->base.link_mode_masks_nwords <= 0)
return -EINVAL;
uint64_t speed,
Duplex duplex,
NetDevPort port) {
+
_cleanup_free_ struct ethtool_link_usettings *u = NULL;
struct ifreq ifr = {};
int r;
+ assert(fd);
+ assert(ifname);
assert(advertise);
if (autonegotiation != AUTONEG_DISABLE && memeqzero(advertise, sizeof(uint32_t) * N_ADVERTISE)) {
int ethtool_set_channels(int *fd, const char *ifname, const netdev_channels *channels) {
struct ethtool_channels ecmd = {
- .cmd = ETHTOOL_GCHANNELS
+ .cmd = ETHTOOL_GCHANNELS,
};
struct ifreq ifr = {
- .ifr_data = (void*) &ecmd
+ .ifr_data = (void*) &ecmd,
};
-
bool need_update = false;
int r;
+ assert(fd);
+ assert(ifname);
+ assert(channels);
+
if (*fd < 0) {
r = ethtool_connect_or_warn(fd, true);
if (r < 0)
int ethtool_set_flow_control(int *fd, const char *ifname, int rx, int tx, int autoneg) {
struct ethtool_pauseparam ecmd = {
- .cmd = ETHTOOL_GPAUSEPARAM
+ .cmd = ETHTOOL_GPAUSEPARAM,
};
struct ifreq ifr = {
- .ifr_data = (void*) &ecmd
+ .ifr_data = (void*) &ecmd,
};
-
bool need_update = false;
int r;
+ assert(fd);
+ assert(ifname);
+
if (*fd < 0) {
r = ethtool_connect_or_warn(fd, true);
if (r < 0)
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <macro.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <dirent.h>
#include <errno.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <stdbool.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <signal.h>
#include <stdlib.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <stdbool.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <errno.h>
#include <fcntl.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <stdbool.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <sys/stat.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <stdio.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
/* Temporary work-around for broken glibc vs. linux kernel header definitions
* This is already fixed upstream, remove this when distributions have updated.
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <stdbool.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <ctype.h>
#include <net/if.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <stdbool.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
/* exit codes as defined in fsck(8) */
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <errno.h>
#include <stdio.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <stdbool.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <errno.h>
#include <unistd.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <stdio.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include "geneve-util.h"
#include "string-table.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <linux/if_link.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include "gpt.h"
#include "string-util.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <endian.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include "group-record.h"
#include "strv.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include "json.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <stdio.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#if HAVE_LIBIDN2
# include <idn2.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#if HAVE_LIBIDN2
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <unistd.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <stdbool.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <errno.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <stdbool.h>
+/* SPDX-License-Identifier: LGPL-2+ */
/*
* initreq.h Interface to talk to init through /dev/initctl.
*
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <errno.h>
#include <stdio.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include "install.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <errno.h>
#include <fcntl.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
typedef enum UnitFilePresetMode UnitFilePresetMode;
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <errno.h>
#include <netinet/in.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
const char *ip_protocol_to_name(int id);
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <net/if.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <netinet/in.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <errno.h>
#include <unistd.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include "acl-util.h"
#include "fs-util.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <stdbool.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <errno.h>
#include <locale.h>
if (f)
r = read_full_stream(f, &text, NULL);
else if (path)
- r = read_full_file_full(dir_fd, path, 0, &text, NULL);
+ r = read_full_file_full(dir_fd, path, 0, NULL, &text, NULL);
else
return -EINVAL;
if (r < 0)
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <fcntl.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#if HAVE_CRYPT_H
/* libxcrypt is a replacement for glibc's libcrypt, and libcrypt might be
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <stdbool.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <stdio.h>
+/* SPDX-License-Identifier: MIT */
+
#ifndef __LINUX_NL80211_H
#define __LINUX_NL80211_H
/*
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include "sd-netlink.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include "sd-netlink.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <errno.h>
#include <fcntl.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
typedef struct LockFile {
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include "log.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <errno.h>
#include <fcntl.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <stdbool.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#if HAVE_VALGRIND_MEMCHECK_H
#include <valgrind/memcheck.h>
#include <sys/ioctl.h>
#include <unistd.h>
+#include "sd-device.h"
+
#include "alloc-util.h"
#include "blockdev-util.h"
+#include "device-util.h"
#include "errno-util.h"
#include "fd-util.h"
#include "fileio.h"
#include "loop-util.h"
#include "missing_loop.h"
#include "parse-util.h"
+#include "random-util.h"
#include "stat-util.h"
#include "stdio-util.h"
#include "string-util.h"
+#include "tmpfile-util.h"
static void cleanup_clear_loop_close(int *fd) {
if (*fd < 0)
(void) safe_close(*fd);
}
-static int loop_configure(int fd, const struct loop_config *c) {
+static int loop_is_bound(int fd) {
+ struct loop_info64 info;
+
+ assert(fd >= 0);
+
+ if (ioctl(fd, LOOP_GET_STATUS64, &info) < 0) {
+ if (errno == ENXIO)
+ return false; /* not bound! */
+
+ return -errno;
+ }
+
+ return true; /* bound! */
+}
+
+static int device_has_block_children(sd_device *d) {
+ _cleanup_(sd_device_enumerator_unrefp) sd_device_enumerator *e = NULL;
+ const char *main_sn, *main_ss;
+ sd_device *q;
+ int r;
+
+ assert(d);
+
+ /* Checks if the specified device currently has block device children (i.e. partition block
+ * devices). */
+
+ r = sd_device_get_sysname(d, &main_sn);
+ if (r < 0)
+ return r;
+
+ r = sd_device_get_subsystem(d, &main_ss);
+ if (r < 0)
+ return r;
+
+ if (!streq(main_ss, "block"))
+ return -EINVAL;
+
+ r = sd_device_enumerator_new(&e);
+ if (r < 0)
+ return r;
+
+ r = sd_device_enumerator_allow_uninitialized(e);
+ if (r < 0)
+ return r;
+
+ r = sd_device_enumerator_add_match_parent(e, d);
+ if (r < 0)
+ return r;
+
+ FOREACH_DEVICE(e, q) {
+ const char *ss, *sn;
+
+ r = sd_device_get_subsystem(q, &ss);
+ if (r < 0)
+ continue;
+
+ if (!streq(ss, "block"))
+ continue;
+
+ r = sd_device_get_sysname(q, &sn);
+ if (r < 0)
+ continue;
+
+ if (streq(sn, main_sn))
+ continue;
+
+ return 1; /* we have block device children */
+ }
+
+ return 0;
+}
+
+static int loop_configure(
+ int fd,
+ int nr,
+ const struct loop_config *c,
+ bool *try_loop_configure) {
+
+ _cleanup_(sd_device_unrefp) sd_device *d = NULL;
+ _cleanup_free_ char *sysname = NULL;
+ _cleanup_close_ int lock_fd = -1;
int r;
assert(fd >= 0);
+ assert(nr >= 0);
assert(c);
+ assert(try_loop_configure);
- if (ioctl(fd, LOOP_CONFIGURE, c) < 0) {
- /* Do fallback only if LOOP_CONFIGURE is not supported, propagate all other errors. Note that
- * the kernel is weird: non-existing ioctls currently return EINVAL rather than ENOTTY on
- * loopback block devices. They should fix that in the kernel, but in the meantime we accept
- * both here. */
- if (!ERRNO_IS_NOT_SUPPORTED(errno) && errno != EINVAL)
- return -errno;
- } else {
- bool good = true;
+ if (asprintf(&sysname, "loop%i", nr) < 0)
+ return -ENOMEM;
- if (c->info.lo_sizelimit != 0) {
- /* Kernel 5.8 vanilla doesn't properly propagate the size limit into the block
- * device. If it's used, let's immediately check if it had the desired effect
- * hence. And if not use classic LOOP_SET_STATUS64. */
- uint64_t z;
+ r = sd_device_new_from_subsystem_sysname(&d, "block", sysname);
+ if (r < 0)
+ return r;
- if (ioctl(fd, BLKGETSIZE64, &z) < 0) {
- r = -errno;
- goto fail;
- }
+ /* Let's lock the device before we do anything. We take the BSD lock on a second, separately opened
+ * fd for the device. udev after all watches for close() events (specifically IN_CLOSE_WRITE) on
+ * block devices to reprobe them, hence by having a separate fd we will later close() we can ensure
+ * we trigger udev after everything is done. If we'd lock our own fd instead and keep it open for a
+ * long time udev would possibly never run on it again, even though the fd is unlocked, simply
+ * because we never close() it. It also has the nice benefit we can use the _cleanup_close_ logic to
+ * automatically release the lock, after we are done. */
+ lock_fd = fd_reopen(fd, O_RDWR|O_CLOEXEC|O_NONBLOCK|O_NOCTTY);
+ if (lock_fd < 0)
+ return lock_fd;
+ if (flock(lock_fd, LOCK_EX) < 0)
+ return -errno;
+
+ /* Let's see if the device is really detached, i.e. currently has no associated partition block
+ * devices. On various kernels (such as 5.8) it is possible to have a loopback block device that
+ * superficially is detached but still has partition block devices associated for it. They only go
+ * away when the device is reattached. (Yes, LOOP_CLR_FD doesn't work then, because officially
+ * nothing is attached and LOOP_CTL_REMOVE doesn't either, since it doesn't care about partition
+ * block devices. */
+ r = device_has_block_children(d);
+ if (r < 0)
+ return r;
+ if (r > 0) {
+ r = loop_is_bound(fd);
+ if (r < 0)
+ return r;
+ if (r > 0)
+ return -EBUSY;
+
+ return -EUCLEAN; /* Bound but children? Tell caller to reattach something so that the
+ * partition block devices are gone too. */
+ }
- if (z != c->info.lo_sizelimit) {
- log_debug("LOOP_CONFIGURE is broken, doesn't honour .lo_sizelimit. Falling back to LOOP_SET_STATUS64.");
- good = false;
+ if (*try_loop_configure) {
+ if (ioctl(fd, LOOP_CONFIGURE, c) < 0) {
+ /* Do fallback only if LOOP_CONFIGURE is not supported, propagate all other
+ * errors. Note that the kernel is weird: non-existing ioctls currently return EINVAL
+ * rather than ENOTTY on loopback block devices. They should fix that in the kernel,
+ * but in the meantime we accept both here. */
+ if (!ERRNO_IS_NOT_SUPPORTED(errno) && errno != EINVAL)
+ return -errno;
+
+ *try_loop_configure = false;
+ } else {
+ bool good = true;
+
+ if (c->info.lo_sizelimit != 0) {
+ /* Kernel 5.8 vanilla doesn't properly propagate the size limit into the
+ * block device. If it's used, let's immediately check if it had the desired
+ * effect hence. And if not use classic LOOP_SET_STATUS64. */
+ uint64_t z;
+
+ if (ioctl(fd, BLKGETSIZE64, &z) < 0) {
+ r = -errno;
+ goto fail;
+ }
+
+ if (z != c->info.lo_sizelimit) {
+ log_debug("LOOP_CONFIGURE is broken, doesn't honour .lo_sizelimit. Falling back to LOOP_SET_STATUS64.");
+ good = false;
+ }
}
- }
- if (FLAGS_SET(c->info.lo_flags, LO_FLAGS_PARTSCAN)) {
- /* Kernel 5.8 vanilla doesn't properly propagate the partition scanning flag into the
- * block device. Let's hence verify if things work correctly here before
- * returning. */
+ if (FLAGS_SET(c->info.lo_flags, LO_FLAGS_PARTSCAN)) {
+ /* Kernel 5.8 vanilla doesn't properly propagate the partition scanning flag
+ * into the block device. Let's hence verify if things work correctly here
+ * before returning. */
+
+ r = blockdev_partscan_enabled(fd);
+ if (r < 0)
+ goto fail;
+ if (r == 0) {
+ log_debug("LOOP_CONFIGURE is broken, doesn't honour LO_FLAGS_PARTSCAN. Falling back to LOOP_SET_STATUS64.");
+ good = false;
+ }
+ }
- r = blockdev_partscan_enabled(fd);
- if (r < 0)
+ if (!good) {
+ /* LOOP_CONFIGURE doesn't work. Remember that. */
+ *try_loop_configure = false;
+
+ /* We return EBUSY here instead of retrying immediately with LOOP_SET_FD,
+ * because LOOP_CLR_FD is async: if the operation cannot be executed right
+ * away it just sets the autoclear flag on the device. This means there's a
+ * good chance we cannot actually reuse the loopback device right-away. Hence
+ * let's assume it's busy, avoid the trouble and let the calling loop call us
+ * again with a new, likely unused device. */
+ r = -EBUSY;
goto fail;
- if (r == 0) {
- log_debug("LOOP_CONFIGURE is broken, doesn't honour LO_FLAGS_PARTSCAN. Falling back to LOOP_SET_STATUS64.");
- good = false;
}
- }
- if (good)
return 0;
-
- /* Otherwise, undo the attachment and use the old APIs */
- (void) ioctl(fd, LOOP_CLR_FD);
+ }
}
+ /* Since kernel commit 5db470e229e22b7eda6e23b5566e532c96fb5bc3 (kernel v5.0) the LOOP_SET_STATUS64
+ * ioctl can return EAGAIN in case we change the lo_offset field, if someone else is accessing the
+ * block device while we try to reconfigure it. This is a pretty common case, since udev might
+ * instantly start probing the device as soon as we attach an fd to it. Hence handle it in two ways:
+ * first, let's take the BSD lock that that ensures that udev will not step in between the point in
+ * time where we attach the fd and where we reconfigure the device. Secondly, let's wait 50ms on
+ * EAGAIN and retry. The former should be an efficient mechanism to avoid we have to wait 50ms
+ * needlessly if we are just racing against udev. The latter is protection against all other cases,
+ * i.e. peers that do not take the BSD lock. */
+
if (ioctl(fd, LOOP_SET_FD, c->fd) < 0)
return -errno;
- if (ioctl(fd, LOOP_SET_STATUS64, &c->info) < 0) {
- r = -errno;
- goto fail;
+ for (unsigned n_attempts = 0;;) {
+ if (ioctl(fd, LOOP_SET_STATUS64, &c->info) >= 0)
+ break;
+ if (errno != EAGAIN || ++n_attempts >= 64) {
+ r = log_debug_errno(errno, "Failed to configure loopback device: %m");
+ goto fail;
+ }
+
+ /* Sleep some random time, but at least 10ms, at most 250ms. Increase the delay the more
+ * failed attempts we see */
+ (void) usleep(UINT64_C(10) * USEC_PER_MSEC +
+ random_u64() % (UINT64_C(240) * USEC_PER_MSEC * n_attempts/64));
}
return 0;
return r;
}
+static int attach_empty_file(int loop, int nr) {
+ _cleanup_close_ int fd = -1;
+
+ /* So here's the thing: on various kernels (5.8 at least) loop block devices might enter a state
+ * where they are detached but nonetheless have partitions, when used heavily. Accessing these
+ * partitions results in immediatey IO errors. There's no pretty way to get rid of them
+ * again. Neither LOOP_CLR_FD nor LOOP_CTL_REMOVE suffice (see above). What does work is to
+ * reassociate them with a new fd however. This is what we do here hence: we associate the devices
+ * with an empty file (i.e. an image that definitely has no partitions). We then immediately clear it
+ * again. This suffices to make the partitions go away. Ugly but appears to work. */
+
+ log_debug("Found unattached loopback block device /dev/loop%i with partitions. Attaching empty file to remove them.", nr);
+
+ fd = open_tmpfile_unlinkable(NULL, O_RDONLY);
+ if (fd < 0)
+ return fd;
+
+ if (flock(loop, LOCK_EX) < 0)
+ return -errno;
+
+ if (ioctl(loop, LOOP_SET_FD, fd) < 0)
+ return -errno;
+
+ if (ioctl(loop, LOOP_SET_STATUS64, &(struct loop_info64) {
+ .lo_flags = LO_FLAGS_READ_ONLY|
+ LO_FLAGS_AUTOCLEAR|
+ LO_FLAGS_PARTSCAN, /* enable partscan, so that the partitions really go away */
+ }) < 0)
+ return -errno;
+
+ if (ioctl(loop, LOOP_CLR_FD) < 0)
+ return -errno;
+
+ /* The caller is expected to immediately close the loopback device after this, so that the BSD lock
+ * is released, and udev sees the changes. */
+ return 0;
+}
+
int loop_device_make(
int fd,
int open_flags,
LoopDevice **ret) {
_cleanup_free_ char *loopdev = NULL;
+ bool try_loop_configure = true;
struct loop_config config;
LoopDevice *d = NULL;
struct stat st;
if (!IN_SET(errno, ENOENT, ENXIO))
return -errno;
} else {
- r = loop_configure(loop, &config);
+ r = loop_configure(loop, nr, &config, &try_loop_configure);
if (r >= 0) {
loop_with_fd = TAKE_FD(loop);
break;
}
- if (r != -EBUSY)
+ if (r == -EUCLEAN) {
+ /* Make left-over partition disappear hack (see above) */
+ r = attach_empty_file(loop, nr);
+ if (r < 0 && r != -EBUSY)
+ return r;
+ } else if (r != -EBUSY)
return r;
}
return -EBUSY;
loopdev = mfree(loopdev);
+
+ /* Wait some random time, to make collision less likely. Let's pick a random time in the
+ * range 0ms…250ms, linearly scaled by the number of failed attempts. */
+ (void) usleep(random_u64() % (UINT64_C(10) * USEC_PER_MSEC +
+ UINT64_C(240) * USEC_PER_MSEC * n_attempts/64));
}
d = new(LoopDevice, 1);
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include "macro.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <errno.h>
#include <fcntl.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <stdbool.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <errno.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <stdint.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include "conf-parser.h"
#include "macvlan-util.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <linux/if_link.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <stdlib.h>
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
shared_sources = files('''
acl-util.h
ptyfwd.h
pwquality-util.c
pwquality-util.h
+ qrcode-util.c
+ qrcode-util.h
reboot-util.c
reboot-util.h
resize-fs.c
'''.split())
endif
-if conf.get('HAVE_QRENCODE') == 1
- shared_sources += files('''
- qrcode-util.c
- qrcode-util.h
-'''.split())
-endif
-
generate_ip_protocol_list = find_program('generate-ip-protocol-list.sh')
ip_protocol_list_txt = custom_target(
'ip-protocol-list.txt',
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include "id128-util.h"
#include "mkfs-util.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <stdbool.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <errno.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <libkmod.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <errno.h>
#include <stdlib.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <mntent.h>
int mode_to_inaccessible_node(const char *runtime_dir, mode_t mode, char **dest);
/* Useful for usage with _cleanup_(), unmounts, removes a directory and frees the pointer */
-static inline void umount_and_rmdir_and_free(char *p) {
+static inline char* umount_and_rmdir_and_free(char *p) {
PROTECT_ERRNO;
(void) umount_recursive(p, 0);
(void) rmdir(p);
free(p);
+ return NULL;
}
DEFINE_TRIVIAL_CLEANUP_FUNC(char*, umount_and_rmdir_and_free);
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include "alloc-util.h"
#include "netif-naming-scheme.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <stdbool.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <sys/poll.h>
#include "fd-util.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
int nscd_flush_cache(char **databases);
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <errno.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include "missing_sched.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <errno.h>
#include <sched.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include "cpu-set-util.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include "fd-util.h"
#include "fs-util.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <sys/types.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#if HAVE_OPENSSL
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include "alloc-util.h"
#include "env-file.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <stdio.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include "output-mode.h"
#include "string-table.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include "json.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <errno.h>
#include <stddef.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <stdbool.h>
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
+
#include <security/pam_ext.h>
#include <syslog.h>
#include <stdlib.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <security/pam_modules.h>
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
+
#pragma once
#include <inttypes.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <fcntl.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <stdbool.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <sys/utsname.h>
#include <errno.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
void print_separator(void);
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <stdio.h>
#include <unistd.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <stdbool.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <errno.h>
#include <fcntl.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <stdbool.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <unistd.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include "macro.h"
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
+
#include "qrcode-util.h"
+
+#if HAVE_QRENCODE
+#include <qrencode.h>
+
+#include "dlfcn-util.h"
+#include "locale-util.h"
#include "terminal-util.h"
#define ANSI_WHITE_ON_BLACK "\033[40;37;1m"
static void print_border(FILE *output, unsigned width) {
- unsigned x, y;
-
/* Four rows of border */
- for (y = 0; y < 4; y += 2) {
+ for (unsigned y = 0; y < 4; y += 2) {
fputs(ANSI_WHITE_ON_BLACK, output);
- for (x = 0; x < 4 + width + 4; x++)
+ for (unsigned x = 0; x < 4 + width + 4; x++)
fputs("\342\226\210", output);
fputs(ANSI_NORMAL "\n", output);
}
}
-void write_qrcode(FILE *output, QRcode *qr) {
- unsigned x, y;
-
+static void write_qrcode(FILE *output, QRcode *qr) {
assert(qr);
if (!output)
print_border(output, qr->width);
- for (y = 0; y < (unsigned) qr->width; y += 2) {
- const uint8_t *row1, *row2;
-
- row1 = qr->data + qr->width * y;
- row2 = row1 + qr->width;
+ for (unsigned y = 0; y < (unsigned) qr->width; y += 2) {
+ const uint8_t *row1 = qr->data + qr->width * y;
+ const uint8_t *row2 = row1 + qr->width;
fputs(ANSI_WHITE_ON_BLACK, output);
- for (x = 0; x < 4; x++)
+ for (unsigned x = 0; x < 4; x++)
fputs("\342\226\210", output);
- for (x = 0; x < (unsigned) qr->width; x ++) {
+ for (unsigned x = 0; x < (unsigned) qr->width; x++) {
bool a, b;
a = row1[x] & 1;
fputs("\342\226\210", output);
}
- for (x = 0; x < 4; x++)
+ for (unsigned x = 0; x < 4; x++)
fputs("\342\226\210", output);
fputs(ANSI_NORMAL "\n", output);
}
print_border(output, qr->width);
fflush(output);
}
+
+int print_qrcode(FILE *out, const char *header, const char *string) {
+ QRcode* (*sym_QRcode_encodeString)(const char *string, int version, QRecLevel level, QRencodeMode hint, int casesensitive);
+ void (*sym_QRcode_free)(QRcode *qrcode);
+ _cleanup_(dlclosep) void *dl = NULL;
+ QRcode* qr;
+ int r;
+
+ /* If this is not an UTF-8 system or ANSI colors aren't supported/disabled don't print any QR
+ * codes */
+ if (!is_locale_utf8() || !colors_enabled())
+ return -EOPNOTSUPP;
+
+ dl = dlopen("libqrencode.so.4", RTLD_LAZY);
+ if (!dl)
+ return log_debug_errno(SYNTHETIC_ERRNO(EOPNOTSUPP),
+ "QRCODE support is not installed: %s", dlerror());
+
+ r = dlsym_many_and_warn(
+ dl,
+ LOG_DEBUG,
+ &sym_QRcode_encodeString, "QRcode_encodeString",
+ &sym_QRcode_free, "QRcode_free",
+ NULL);
+ if (r < 0)
+ return r;
+
+ qr = sym_QRcode_encodeString(string, 0, QR_ECLEVEL_L, QR_MODE_8, 0);
+ if (!qr)
+ return -ENOMEM;
+
+ if (header)
+ fprintf(out, "\n%s:\n\n", header);
+
+ write_qrcode(out, qr);
+
+ fputc('\n', out);
+
+ sym_QRcode_free(qr);
+ return 0;
+}
+#endif
-/* SPDX-License-Identifier: LGPL-2.1+ */
-#pragma once
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
-#if HAVE_QRENCODE
-#include <qrencode.h>
+#pragma once
#include <stdio.h>
+#include <errno.h>
-void write_qrcode(FILE *output, QRcode *qr);
+#if HAVE_QRENCODE
+int print_qrcode(FILE *out, const char *header, const char *string);
+#else
+static inline int print_qrcode(FILE *out, const char *header, const char *string) {
+ return -EOPNOTSUPP;
+}
#endif
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <errno.h>
#include <unistd.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
int update_reboot_parameter_and_warn(const char *parameter, bool keep);
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <linux/btrfs.h>
#include <linux/magic.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <inttypes.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include "conf-parser.h"
#include "resolve-util.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include "conf-parser.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <errno.h>
#include <fcntl.h>
bool is_seccomp_available(void) {
static int cached_enabled = -1;
- if (cached_enabled < 0)
- cached_enabled =
- is_basic_seccomp_available() &&
- is_seccomp_filter_available();
+ if (cached_enabled < 0) {
+ int b;
+
+ b = getenv_bool_secure("SYSTEMD_SECCOMP");
+ if (b != 0) {
+ if (b < 0 && b != -ENXIO) /* ENXIO: env var unset */
+ log_debug_errno(b, "Failed to parse $SYSTEMD_SECCOMP value, ignoring.");
+
+ cached_enabled =
+ is_basic_seccomp_available() &&
+ is_seccomp_filter_available();
+ } else
+ cached_enabled = false;
+ }
return cached_enabled;
}
"clock_settime\0"
"clock_settime64\0"
"settimeofday\0"
- "stime\0"
},
[SYSCALL_FILTER_SET_CPU_EMULATION] = {
.name = "@cpu-emulation",
"security\0"
"sgetmask\0"
"ssetmask\0"
+ "stime\0"
"stty\0"
"sysfs\0"
"tuxcall\0"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <seccomp.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <errno.h>
#include <stdio.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include "missing_securebits.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <fcntl.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <stdio.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <getopt.h>
#include <stdio.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include "bus-object.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
/***
Copyright © 2018 Dell Inc.
***/
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <linux/fiemap.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <arpa/inet.h>
#include <errno.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include "sd-netlink.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <signal.h>
#include <stdlib.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <stdbool.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <errno.h>
#include <poll.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <stdbool.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <errno.h>
#include <stdbool.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include "string-util.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <errno.h>
#include <fcntl.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <stdbool.h>
preadv
preadv2
prlimit64
+process_madvise
process_vm_readv
process_vm_writev
pselect6
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <errno.h>
#include <fcntl.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <stdbool.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <stdio.h>
#include <stdlib.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <sched.h>
#include <signal.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <stdbool.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <sys/stat.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <stdio.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <unistd.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <stdbool.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <errno.h>
#include <unistd.h>
#include "alloc-util.h"
#include "device-util.h"
#include "env-file.h"
+#include "escape.h"
#include "log.h"
+#include "macro.h"
#include "parse-util.h"
#include "path-util.h"
#include "signal-util.h"
#include "string-table.h"
#include "string-util.h"
#include "udev-util.h"
+#include "utf8.h"
static const char* const resolve_name_timing_table[_RESOLVE_NAME_TIMING_MAX] = {
[RESOLVE_NAME_NEVER] = "never",
sd_device *_device,
const char *devlink,
const char *subsystem,
- usec_t timeout,
+ usec_t deadline,
sd_device **ret) {
+
_cleanup_(sd_device_monitor_unrefp) sd_device_monitor *monitor = NULL;
_cleanup_(sd_event_source_unrefp) sd_event_source *timeout_source = NULL;
_cleanup_(sd_event_unrefp) sd_event *event = NULL;
if (r < 0)
return log_error_errno(r, "Failed to start device monitor: %m");
- if (timeout != USEC_INFINITY) {
- r = sd_event_add_time_relative(
+ if (deadline != USEC_INFINITY) {
+ r = sd_event_add_time(
event, &timeout_source,
- CLOCK_MONOTONIC, timeout, 0,
+ CLOCK_MONOTONIC, deadline, 0,
NULL, INT_TO_PTR(-ETIMEDOUT));
if (r < 0)
return log_error_errno(r, "Failed to add timeout event source: %m");
return 0;
}
-int device_wait_for_initialization(sd_device *device, const char *subsystem, usec_t timeout, sd_device **ret) {
- return device_wait_for_initialization_internal(device, NULL, subsystem, timeout, ret);
+int device_wait_for_initialization(sd_device *device, const char *subsystem, usec_t deadline, sd_device **ret) {
+ return device_wait_for_initialization_internal(device, NULL, subsystem, deadline, ret);
}
-int device_wait_for_devlink(const char *devlink, const char *subsystem, usec_t timeout, sd_device **ret) {
- return device_wait_for_initialization_internal(NULL, devlink, subsystem, timeout, ret);
+int device_wait_for_devlink(const char *devlink, const char *subsystem, usec_t deadline, sd_device **ret) {
+ return device_wait_for_initialization_internal(NULL, devlink, subsystem, deadline, ret);
}
int device_is_renaming(sd_device *dev) {
return a == action;
}
+
+int udev_rule_parse_value(char *str, char **ret_value, char **ret_endpos) {
+ char *i, *j;
+ int r;
+ bool is_escaped;
+
+ /* value must be double quotated */
+ is_escaped = str[0] == 'e';
+ str += is_escaped;
+ if (str[0] != '"')
+ return -EINVAL;
+ str++;
+
+ if (!is_escaped) {
+ /* unescape double quotation '\"'->'"' */
+ for (i = j = str; *i != '"'; i++, j++) {
+ if (*i == '\0')
+ return -EINVAL;
+ if (i[0] == '\\' && i[1] == '"')
+ i++;
+ *j = *i;
+ }
+ j[0] = '\0';
+ } else {
+ _cleanup_free_ char *unescaped = NULL;
+
+ /* find the end position of value */
+ for (i = str; *i != '"'; i++) {
+ if (i[0] == '\\')
+ i++;
+ if (*i == '\0')
+ return -EINVAL;
+ }
+ i[0] = '\0';
+
+ r = cunescape_length(str, i - str, 0, &unescaped);
+ if (r < 0)
+ return r;
+ assert(r <= i - str);
+ memcpy(str, unescaped, r + 1);
+ }
+
+ *ret_value = str;
+ *ret_endpos = i + 1;
+ return 0;
+}
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include "sd-device.h"
return udev_parse_config_full(NULL, NULL, NULL, NULL, NULL);
}
-int device_wait_for_initialization(sd_device *device, const char *subsystem, usec_t timeout, sd_device **ret);
-int device_wait_for_devlink(const char *path, const char *subsystem, usec_t timeout, sd_device **ret);
+int device_wait_for_initialization(sd_device *device, const char *subsystem, usec_t deadline, sd_device **ret);
+int device_wait_for_devlink(const char *path, const char *subsystem, usec_t deadline, sd_device **ret);
int device_is_renaming(sd_device *dev);
bool device_for_action(sd_device *dev, DeviceAction action);
+
+int udev_rule_parse_value(char *str, char **ret_value, char **ret_endpos);
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <errno.h>
#include <stdlib.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <stdbool.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include "sd-id128.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <stdbool.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include "errno-util.h"
#include "format-util.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <grp.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include "format-util.h"
#include "fs-util.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include "user-record.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <sys/mount.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <inttypes.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <sys/auxv.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <sys/socket.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <errno.h>
#include <fcntl.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <stdbool.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <sys/poll.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include "sd-event.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <errno.h>
#include <getopt.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <stdbool.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include "conf-parser.h"
#include "parse-util.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <stdbool.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <errno.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
typedef enum VolatileMode {
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <errno.h>
#include <fcntl.h>
#include <unistd.h>
#include <linux/watchdog.h>
+#include "errno-util.h"
#include "fd-util.h"
#include "log.h"
#include "string-util.h"
static usec_t watchdog_last_ping = USEC_INFINITY;
static int update_timeout(void) {
- int r;
-
if (watchdog_fd < 0)
return 0;
-
if (watchdog_timeout == USEC_INFINITY)
return 0;
- else if (watchdog_timeout == 0) {
+
+ if (watchdog_timeout == 0) {
int flags;
flags = WDIOS_DISABLECARD;
- r = ioctl(watchdog_fd, WDIOC_SETOPTIONS, &flags);
- if (r < 0)
+ if (ioctl(watchdog_fd, WDIOC_SETOPTIONS, &flags) < 0)
return log_warning_errno(errno, "Failed to disable hardware watchdog: %m");
} else {
- int sec, flags;
char buf[FORMAT_TIMESPAN_MAX];
+ int sec, flags;
+ usec_t t;
- sec = (int) DIV_ROUND_UP(watchdog_timeout, USEC_PER_SEC);
- r = ioctl(watchdog_fd, WDIOC_SETTIMEOUT, &sec);
- if (r < 0)
+ t = DIV_ROUND_UP(watchdog_timeout, USEC_PER_SEC);
+ sec = (int) t >= INT_MAX ? INT_MAX : t; /* Saturate */
+ if (ioctl(watchdog_fd, WDIOC_SETTIMEOUT, &sec) < 0)
return log_warning_errno(errno, "Failed to set timeout to %is: %m", sec);
watchdog_timeout = (usec_t) sec * USEC_PER_SEC;
log_info("Set hardware watchdog to %s.", format_timespan(buf, sizeof(buf), watchdog_timeout, 0));
flags = WDIOS_ENABLECARD;
- r = ioctl(watchdog_fd, WDIOC_SETOPTIONS, &flags);
- if (r < 0) {
+ if (ioctl(watchdog_fd, WDIOC_SETOPTIONS, &flags) < 0) {
/* ENOTTY means the watchdog is always enabled so we're fine */
- log_full(errno == ENOTTY ? LOG_DEBUG : LOG_WARNING,
+ log_full(ERRNO_IS_NOT_SUPPORTED(errno) ? LOG_DEBUG : LOG_WARNING,
"Failed to enable hardware watchdog: %m");
- if (errno != ENOTTY)
+ if (!ERRNO_IS_NOT_SUPPORTED(errno))
return -errno;
}
- r = ioctl(watchdog_fd, WDIOC_KEEPALIVE, 0);
- if (r < 0)
+ if (ioctl(watchdog_fd, WDIOC_KEEPALIVE, 0) < 0)
return log_warning_errno(errno, "Failed to ping hardware watchdog: %m");
watchdog_last_ping = now(clock_boottime_or_monotonic());
static int open_watchdog(void) {
struct watchdog_info ident;
+ const char *fn;
if (watchdog_fd >= 0)
return 0;
- watchdog_fd = open(watchdog_device ?: "/dev/watchdog",
- O_WRONLY|O_CLOEXEC);
+ fn = watchdog_device ?: "/dev/watchdog";
+ watchdog_fd = open(fn, O_WRONLY|O_CLOEXEC);
if (watchdog_fd < 0)
- return -errno;
+ return log_debug_errno(errno, "Failed to open watchdog device %s: %m", fn);
- if (ioctl(watchdog_fd, WDIOC_GETSUPPORT, &ident) >= 0)
- log_info("Hardware watchdog '%s', version %x",
+ if (ioctl(watchdog_fd, WDIOC_GETSUPPORT, &ident) < 0)
+ log_debug_errno(errno, "Hardware watchdog %s does not support WDIOC_GETSUPPORT ioctl: %m", fn);
+ else
+ log_info("Using hardware watchdog '%s', version %x, device %s",
ident.identity,
- ident.firmware_version);
+ ident.firmware_version,
+ fn);
return update_timeout();
}
watchdog_timeout = *usec;
- /* If we didn't open the watchdog yet and didn't get any
- * explicit timeout value set, don't do anything */
+ /* If we didn't open the watchdog yet and didn't get any explicit timeout value set, don't do
+ * anything */
if (watchdog_fd < 0 && watchdog_timeout == USEC_INFINITY)
return 0;
r = update_timeout();
*usec = watchdog_timeout;
-
return r;
}
usec_t watchdog_runtime_wait(void) {
- usec_t rtwait;
- usec_t ntime;
+ usec_t rtwait, ntime;
if (!timestamp_is_set(watchdog_timeout))
return USEC_INFINITY;
return r;
}
- r = ioctl(watchdog_fd, WDIOC_KEEPALIVE, 0);
- if (r < 0)
+ if (ioctl(watchdog_fd, WDIOC_KEEPALIVE, 0) < 0)
return log_warning_errno(errno, "Failed to ping hardware watchdog: %m");
watchdog_last_ping = ntime;
-
return 0;
}
void watchdog_close(bool disarm) {
- int r;
-
if (watchdog_fd < 0)
return;
/* Explicitly disarm it */
flags = WDIOS_DISABLECARD;
- r = ioctl(watchdog_fd, WDIOC_SETOPTIONS, &flags);
- if (r < 0)
+ if (ioctl(watchdog_fd, WDIOC_SETOPTIONS, &flags) < 0)
log_warning_errno(errno, "Failed to disable hardware watchdog: %m");
/* To be sure, use magic close logic, too */
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <stdbool.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <stdbool.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <stdbool.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <net/ethernet.h>
#include <linux/nl80211.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <errno.h>
#include <stddef.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
enum {
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
/***
Copyright © 2010 ProFUSION embedded systems
***/
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
/***
Copyright © 2010 ProFUSION embedded systems
***/
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
/***
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
/***
Copyright © 2010-2017 Canonical
Copyright © 2018 Dell Inc.
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <errno.h>
#include <fcntl.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <errno.h>
#include <getopt.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
/***
Copyright © 2017 Felipe Sateler
***/
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <errno.h>
#include <getopt.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <errno.h>
#include <unistd.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include "bus-error.h"
#include "bus-locator.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
int add_dependency(int argc, char *argv[], void *userdata);
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include "bus-error.h"
#include "bus-locator.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
int cancel_job(int argc, char *argv[], void *userdata);
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include "bus-error.h"
#include "bus-locator.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
int clean_or_freeze_unit(int argc, char *argv[], void *userdata);
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <getopt.h>
#include <unistd.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
int halt_parse_argv(int argc, char *argv[]);
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <getopt.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
int runlevel_parse_argv(int argc, char *argv[]);
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <getopt.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
int shutdown_parse_argv(int argc, char *argv[]);
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <getopt.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
int telinit_parse_argv(int argc, char *argv[]);
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include "bus-error.h"
#include "bus-locator.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
int daemon_reload(int argc, char *argv[], void *userdata);
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include "bus-error.h"
#include "copy.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
int cat(int argc, char *argv[], void *userdata);
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include "bus-error.h"
#include "bus-locator.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
int enable_unit(int argc, char *argv[], void *userdata);
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include "bus-error.h"
#include "bus-locator.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
int check_unit_active(int argc, char *argv[], void *userdata);
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include "bus-error.h"
#include "bus-locator.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
int unit_is_enabled(int argc, char *argv[], void *userdata);
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include "sd-event.h"
#include "sd-daemon.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
int is_system_running(int argc, char *argv[], void *userdata);
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include "bus-error.h"
#include "bus-locator.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
int kill_unit(int argc, char *argv[], void *userdata);
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include "locale-util.h"
#include "sort-util.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
int list_dependencies(int argc, char *argv[], void *userdata);
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include "bus-error.h"
#include "bus-locator.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
int list_jobs(int argc, char *argv[], void *userdata);
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <unistd.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <inttypes.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include "bus-error.h"
#include "bus-locator.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
int list_unit_files(int argc, char *argv[], void *userdata);
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include "sd-login.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
int list_units(int argc, char *argv[], void *userdata);
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include "bus-error.h"
#include "bus-locator.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
int log_setting(int argc, char *argv[], void *userdata);
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <unistd.h>
ACTION_KEXEC) ? "shutdown" : "sleep"))
continue;
- get_process_comm(pid, &comm);
+ (void) get_process_comm(pid, &comm);
user = uid_to_name(uid);
log_warning("Operation inhibited by \"%s\" (PID "PID_FMT" \"%s\", user %s), reason is \"%s\".",
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include "systemctl.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include "bus-error.h"
#include "bus-locator.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
int preset_all(int argc, char *argv[], void *userdata);
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include "bus-error.h"
#include "bus-locator.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
int reset_failed(int argc, char *argv[], void *userdata);
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include "bus-error.h"
#include "bus-locator.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
int service_watchdogs(int argc, char *argv[], void *userdata);
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include "bus-error.h"
#include "bus-locator.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
int get_default(int argc, char *argv[], void *userdata);
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include "bus-error.h"
#include "bus-locator.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
int show_environment(int argc, char *argv[], void *userdata);
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include "bus-error.h"
#include "bus-locator.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
int set_property(int argc, char *argv[], void *userdata);
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <sys/mount.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
int show(int argc, char *argv[], void *userdata);
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include "bootspec.h"
#include "bus-error.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
int start_special(int argc, char *argv[], void *userdata);
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include "sd-bus.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include "systemctl.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include "bus-error.h"
#include "bus-locator.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
int switch_root(int argc, char *argv[], void *userdata);
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <fcntl.h>
#include <sys/stat.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include "time-util.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include "bus-error.h"
#include "bus-locator.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
int trivial_method(int argc, char *argv[], void *userdata);
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <sys/reboot.h>
#include <unistd.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include "sd-bus.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <getopt.h>
#include <locale.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <stdbool.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#ifndef foosdcommonhfoo
#define foosdcommonhfoo
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
_systemd_headers = '''
sd-bus.h
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#ifndef foosdbusprotocolhfoo
#define foosdbusprotocolhfoo
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#ifndef foosdbusvtablehfoo
#define foosdbusvtablehfoo
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#ifndef foosdbushfoo
#define foosdbushfoo
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#ifndef foosddaemonhfoo
#define foosddaemonhfoo
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#ifndef foosddevicehfoo
#define foosddevicehfoo
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#ifndef foosddhcpclienthfoo
#define foosddhcpclienthfoo
int sd_dhcp_client_set_mac(
sd_dhcp_client *client,
const uint8_t *addr,
+ const uint8_t *bcast_addr,
size_t addr_len,
uint16_t arp_type);
int sd_dhcp_client_set_client_id(
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#ifndef foosddhcpleasehfoo
#define foosddhcpleasehfoo
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#ifndef foosddhcpoptionhfoo
#define foosddhcpoptionhfoo
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#ifndef foosddhcpserverhfoo
#define foosddhcpserverhfoo
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#ifndef foosddhcp6clienthfoo
#define foosddhcp6clienthfoo
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#ifndef foosddhcp6leasehfoo
#define foosddhcp6leasehfoo
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#ifndef foosddhcp6optionhfoo
#define foosddhcp6optionhfoo
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#ifndef foosdeventhfoo
#define foosdeventhfoo
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#ifndef foosdhwdbhfoo
#define foosdhwdbhfoo
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#ifndef foosdid128hfoo
#define foosdid128hfoo
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#ifndef foosdipv4acdfoo
#define foosdipv4acdfoo
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#ifndef foosdipv4llfoo
#define foosdipv4llfoo
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#ifndef foosdjournalhfoo
#define foosdjournalhfoo
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#ifndef foosdlldphfoo
#define foosdlldphfoo
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#ifndef foosdloginhfoo
#define foosdloginhfoo
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#ifndef foosdmessageshfoo
#define foosdmessageshfoo
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#ifndef foosdndiscfoo
#define foosdndiscfoo
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#ifndef foosdnetlinkhfoo
#define foosdnetlinkhfoo
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#ifndef foosdnetworkhfoo
#define foosdnetworkhfoo
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#ifndef foosdpathhfoo
#define foosdpathhfoo
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#ifndef foosdradvfoo
#define foosdradvfoo
int sd_radv_set_mac(sd_radv *ra, const struct ether_addr *mac_addr);
int sd_radv_set_mtu(sd_radv *ra, uint32_t mtu);
int sd_radv_set_hop_limit(sd_radv *ra, uint8_t hop_limit);
-int sd_radv_set_router_lifetime(sd_radv *ra, uint32_t router_lifetime);
+int sd_radv_set_router_lifetime(sd_radv *ra, uint16_t router_lifetime);
int sd_radv_set_managed_information(sd_radv *ra, int managed);
int sd_radv_set_other_information(sd_radv *ra, int other);
int sd_radv_set_preference(sd_radv *ra, unsigned preference);
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#ifndef foosdresolvehfoo
#define foosdresolvehfoo
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#ifndef foosdutf8hfoo
#define foosdutf8hfoo
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <getopt.h>
#include <utmp.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <errno.h>
#include <stdio.h>
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
awkscript = 'test-hashmap-ordered.awk'
test_hashmap_ordered_c = custom_target(
[],
[]],
+ [['src/test/test-loop-block.c'],
+ [libcore,
+ libshared],
+ [threads,
+ libblkid],
+ '',
+ '',
+ [],
+ includes,
+ false],
+
[['src/test/test-selinux.c'],
[],
[]],
libselinux],
'', 'manual', '-DLOG_REALM=LOG_REALM_UDEV'],
+ [['src/test/test-udev-util.c'],
+ [],
+ []],
+
[['src/test/test-id128.c'],
[],
[]],
[['src/test/test-psi-util.c'],
[],
[]],
+
+ [['src/test/test-qrcode-util.c'],
+ [libshared],
+ [libdl]],
]
############################################################
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <fcntl.h>
#include <stdlib.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <sys/socket.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <malloc.h>
#include <stdint.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include "architecture.h"
#include "log.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <linux/if_arp.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include "ask-password-api.h"
#include "strv.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <fcntl.h>
#include <unistd.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
/*
* IPC barrier tests
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include "bitmap.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <sys/types.h>
#include <unistd.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <sys/resource.h>
#include <sys/time.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <linux/bpf_insn.h>
#include <string.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <fcntl.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include "bus-util.h"
#include "log.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include "alloc-util.h"
#include "calendarspec.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <stdio.h>
#include <sys/prctl.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <netinet/in.h>
#include <pwd.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include "cgroup.h"
#include "log.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <stdio.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <unistd.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <stdio.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include "alloc-util.h"
#include "build.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <unistd.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <getopt.h>
#include "fd-util.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <sys/xattr.h>
#include <unistd.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
/***
Copyright © 2016 Canonical Ltd.
***/
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <stdio.h>
#include <sys/types.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
/***
Copyright © 2014 Michael Marineau
***/
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include "conf-parser.h"
#include "fd-util.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <sys/xattr.h>
#include <unistd.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include "alloc-util.h"
#include "coredump-util.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include "alloc-util.h"
#include "cpu-set-util.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <unistd.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include "alloc-util.h"
#include "string-util.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include "capability-util.h"
#include "dev-setup.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <sys/types.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <dlfcn.h>
#include <stdlib.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include "alloc-util.h"
#include "dns-domain.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <stdio.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include "emergency-action.h"
#include "tests.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <errno.h>
#include <stdio.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include "env-file.h"
#include "fd-util.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include "env-util.h"
#include "fd-util.h"
assert_se(streq(e[0], "FOOBAR=WALDO"));
assert_se(streq(e[1], "X="));
assert_se(streq(e[2], "F=F"));
- assert_se(streq(e[3], "0000=000"));
- assert_se(streq(e[4], "abcd=äöüß"));
- assert_se(streq(e[5], "xyz=xyz\n"));
- assert_se(streq(e[6], "another=final one"));
- assert_se(streq(e[7], "BASH_FUNC_foo%%=() { echo foo\n}"));
- assert_se(e[8] == NULL);
+ assert_se(streq(e[3], "abcd=äöüß"));
+ assert_se(streq(e[4], "xyz=xyz\n"));
+ assert_se(streq(e[5], "another=final one"));
+ assert_se(e[6] == NULL);
}
static void test_env_name_is_valid(void) {
assert_se(!env_name_is_valid("xxx\a"));
assert_se(!env_name_is_valid("xxx\007b"));
assert_se(!env_name_is_valid("\007\009"));
- assert_se( env_name_is_valid("5_starting_with_a_number_is_unexpected_but_valid"));
+ assert_se(!env_name_is_valid("5_starting_with_a_number_is_wrong"));
assert_se(!env_name_is_valid("#¤%&?_only_numbers_letters_and_underscore_allowed"));
- assert_se( env_name_is_valid("BASH_FUNC_foo%%"));
- assert_se(!env_name_is_valid("with spaces%%"));
- assert_se(!env_name_is_valid("with\nnewline%%"));
}
static void test_env_value_is_valid(void) {
assert_se(!env_assignment_is_valid("a b="));
assert_se(!env_assignment_is_valid("a ="));
assert_se(!env_assignment_is_valid(" b="));
- /* Names with dots and dashes makes those variables inaccessible as bash variables (as the syntax
- * simply does not allow such variable names, see http://tldp.org/LDP/abs/html/gotchas.html). They
- * are still valid variables according to POSIX though. */
- assert_se( env_assignment_is_valid("a.b="));
- assert_se( env_assignment_is_valid("a-b="));
- /* Those are not ASCII, so not valid according to POSIX (though zsh does allow unicode variable
- * names…). */
+ /* no dots or dashes: http://tldp.org/LDP/abs/html/gotchas.html */
+ assert_se(!env_assignment_is_valid("a.b="));
+ assert_se(!env_assignment_is_valid("a-b="));
assert_se(!env_assignment_is_valid("\007=głąb kapuściany"));
assert_se(!env_assignment_is_valid("c\009=\007\009\011"));
assert_se(!env_assignment_is_valid("głąb=printf \"\x1b]0;<mock-chroot>\x07<mock-chroot>\""));
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include "alloc-util.h"
#include "escape.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <errno.h>
#include <sys/stat.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <stdio.h>
#include <sys/prctl.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include "exit-status.h"
#include "string-util.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <errno.h>
#include <stdlib.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <fcntl.h>
#include <unistd.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <fcntl.h>
#include <unistd.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <fcntl.h>
#include <limits.h>
#include "io-util.h"
#include "parse-util.h"
#include "process-util.h"
+#include "random-util.h"
#include "rm-rf.h"
#include "socket-util.h"
#include "string-util.h"
static void test_read_full_file_socket(void) {
_cleanup_(rm_rf_physical_and_freep) char *z = NULL;
_cleanup_close_ int listener = -1;
- _cleanup_free_ char *data = NULL;
+ _cleanup_free_ char *data = NULL, *clientname = NULL;
union sockaddr_union sa;
const char *j;
size_t size;
assert_se(bind(listener, &sa.sa, SOCKADDR_UN_LEN(sa.un)) >= 0);
assert_se(listen(listener, 1) >= 0);
+ /* Bind the *client* socket to some randomized name, to verify that this works correctly. */
+ assert_se(asprintf(&clientname, "@%" PRIx64 "/test-bindname", random_u64()) >= 0);
+
r = safe_fork("(server)", FORK_DEATHSIG|FORK_LOG, &pid);
assert_se(r >= 0);
if (r == 0) {
+ union sockaddr_union peer = {};
+ socklen_t peerlen = sizeof(peer);
_cleanup_close_ int rfd = -1;
/* child */
rfd = accept4(listener, NULL, 0, SOCK_CLOEXEC);
assert_se(rfd >= 0);
+ assert_se(getpeername(rfd, &peer.sa, &peerlen) >= 0);
+
+ assert_se(peer.un.sun_family == AF_UNIX);
+ assert_se(peerlen > offsetof(struct sockaddr_un, sun_path));
+ assert_se(peer.un.sun_path[0] == 0);
+ assert_se(streq(peer.un.sun_path + 1, clientname + 1));
+
#define TEST_STR "This is a test\nreally."
assert_se(write(rfd, TEST_STR, strlen(TEST_STR)) == strlen(TEST_STR));
_exit(EXIT_SUCCESS);
}
- assert_se(read_full_file_full(AT_FDCWD, j, 0, &data, &size) == -ENXIO);
- assert_se(read_full_file_full(AT_FDCWD, j, READ_FULL_FILE_CONNECT_SOCKET, &data, &size) >= 0);
+ assert_se(read_full_file_full(AT_FDCWD, j, 0, NULL, &data, &size) == -ENXIO);
+ assert_se(read_full_file_full(AT_FDCWD, j, READ_FULL_FILE_CONNECT_SOCKET, clientname, &data, &size) >= 0);
assert_se(size == strlen(TEST_STR));
assert_se(streq(data, TEST_STR));
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include "firewall-util.h"
#include "log.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <unistd.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include "format-util.h"
#include "macro.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <unistd.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <stdio.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include "alloc-util.h"
#include "gcrypt-util.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <fcntl.h>
#include <sys/stat.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <errno.h>
#include <stdio.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include "alloc-util.h"
#include "hashmap.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include "hashmap.h"
#include "string-util.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <errno.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <unistd.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include "hostname-setup.h"
#include "util.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <fcntl.h>
#include <sys/types.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <fnmatch.h>
#include <netinet/in.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <unistd.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <stdio.h>
#include <string.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <fcntl.h>
#include <stdlib.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <netinet/in.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include "clean-ipc.h"
#include "errno-util.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <stdio.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <sys/types.h>
#include <sys/stat.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <math.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#if HAVE_CRYPT_H
# include <crypt.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include "alloc-util.h"
#include "fd-util.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <errno.h>
#include <getopt.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
/***
Copyright © 2013 Jan Janssen
***/
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <fcntl.h>
#include <stddef.h>
"PassEnvironment", 0, "'invalid name' 'normal_name' A=1 'special_name$$' \\",
&passenv, NULL);
assert_se(r >= 0);
- assert_se(strv_length(passenv) == 2);
+ assert_se(strv_length(passenv) == 1);
assert_se(streq(passenv[0], "normal_name"));
- assert_se(streq(passenv[1], "special_name$$"));
}
static void test_unit_dump_config_items(void) {
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <stdio.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include "kbd-util.h"
#include "locale-util.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <stddef.h>
#include <unistd.h>
--- /dev/null
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
+
+#include <fcntl.h>
+#include <linux/loop.h>
+#include <pthread.h>
+
+#include "alloc-util.h"
+#include "dissect-image.h"
+#include "fd-util.h"
+#include "fileio.h"
+#include "fs-util.h"
+#include "gpt.h"
+#include "missing_loop.h"
+#include "mkfs-util.h"
+#include "mount-util.h"
+#include "namespace-util.h"
+#include "string-util.h"
+#include "strv.h"
+#include "tests.h"
+#include "tmpfile-util.h"
+#include "user-util.h"
+#include "virt.h"
+
+#define N_THREADS 5
+#define N_ITERATIONS 3
+
+static usec_t end = 0;
+
+static void* thread_func(void *ptr) {
+ int fd = PTR_TO_FD(ptr);
+ int r;
+
+ for (unsigned i = 0; i < N_ITERATIONS; i++) {
+ _cleanup_(loop_device_unrefp) LoopDevice *loop = NULL;
+ _cleanup_(umount_and_rmdir_and_freep) char *mounted = NULL;
+ _cleanup_(dissected_image_unrefp) DissectedImage *dissected = NULL;
+
+ if (now(CLOCK_MONOTONIC) >= end) {
+ log_notice("Time's up, exiting thread's loop");
+ break;
+ }
+
+ log_notice("> Thread iteration #%u.", i);
+
+ assert_se(mkdtemp_malloc(NULL, &mounted) >= 0);
+
+ r = loop_device_make(fd, O_RDONLY, 0, UINT64_MAX, LO_FLAGS_PARTSCAN, &loop);
+ if (r < 0)
+ log_error_errno(r, "Failed to allocate loopback device: %m");
+ assert_se(r >= 0);
+
+ log_notice("Acquired loop device %s, will mount on %s", loop->node, mounted);
+
+ r = dissect_image(loop->fd, NULL, NULL, DISSECT_IMAGE_READ_ONLY, &dissected);
+ if (r < 0)
+ log_error_errno(r, "Failed dissect loopback device %s: %m", loop->node);
+ assert_se(r >= 0);
+
+ log_info("Dissected loop device %s", loop->node);
+
+ for (PartitionDesignator d = 0; d < _PARTITION_DESIGNATOR_MAX; d++) {
+ if (!dissected->partitions[d].found)
+ continue;
+
+ log_notice("Found node %s fstype %s designator %s",
+ dissected->partitions[d].node,
+ dissected->partitions[d].fstype,
+ partition_designator_to_string(d));
+ }
+
+ assert_se(dissected->partitions[PARTITION_ESP].found);
+ assert_se(dissected->partitions[PARTITION_ESP].node);
+ assert_se(dissected->partitions[PARTITION_XBOOTLDR].found);
+ assert_se(dissected->partitions[PARTITION_XBOOTLDR].node);
+ assert_se(dissected->partitions[PARTITION_ROOT].found);
+ assert_se(dissected->partitions[PARTITION_ROOT].node);
+ assert_se(dissected->partitions[PARTITION_HOME].found);
+ assert_se(dissected->partitions[PARTITION_HOME].node);
+
+ r = dissected_image_mount(dissected, mounted, UID_INVALID, DISSECT_IMAGE_READ_ONLY);
+ log_notice_errno(r, "Mounted %s → %s: %m", loop->node, mounted);
+ assert_se(r >= 0);
+
+ log_notice("Unmounting %s", mounted);
+ mounted = umount_and_rmdir_and_free(mounted);
+
+ log_notice("Unmounted.");
+
+ dissected = dissected_image_unref(dissected);
+
+ log_notice("Detaching loop device %s", loop->node);
+ loop = loop_device_unref(loop);
+ log_notice("Detached loop device.");
+ }
+
+ log_notice("Leaving thread");
+
+ return NULL;
+}
+
+static bool have_root_gpt_type(void) {
+#ifdef GPT_ROOT_NATIVE
+ return true;
+#else
+ return false;
+#endif
+}
+
+int main(int argc, char *argv[]) {
+ _cleanup_free_ char *p = NULL, *cmd = NULL;
+ _cleanup_(pclosep) FILE *sfdisk = NULL;
+ _cleanup_(loop_device_unrefp) LoopDevice *loop = NULL;
+ _cleanup_close_ int fd = -1;
+ _cleanup_(dissected_image_unrefp) DissectedImage *dissected = NULL;
+ _cleanup_(umount_and_rmdir_and_freep) char *mounted = NULL;
+ pthread_t threads[N_THREADS];
+ const char *fs;
+ sd_id128_t id;
+ int r;
+
+ test_setup_logging(LOG_DEBUG);
+ log_show_tid(true);
+ log_show_time(true);
+
+ if (!have_root_gpt_type()) {
+ log_tests_skipped("No root partition GPT defined for this architecture, exiting.");
+ return EXIT_TEST_SKIP;
+ }
+
+ if (detect_container() > 0) {
+ log_tests_skipped("Test not supported in a container, requires udev/uevent notifications.");
+ return EXIT_TEST_SKIP;
+ }
+
+ if (strstr_ptr(ci_environment(), "autopkgtest")) {
+ // FIXME: we should reenable this one day
+ log_tests_skipped("Skipping test on Ubuntu autopkgtest CI, test too slow and installed udev too flakey.");
+ return EXIT_TEST_SKIP;
+ }
+
+ /* This is a test for the loopback block device setup code and it's use by the image dissection
+ * logic: since the kernel APIs are hard use and prone to races, let's test this in a heavy duty
+ * test: we open a bunch of threads and repeatedly allocate and deallocate loopback block devices in
+ * them in parallel, with an image file with a number of partitions. */
+
+ r = detach_mount_namespace();
+ if (ERRNO_IS_PRIVILEGE(r)) {
+ log_tests_skipped("Lacking privileges");
+ return EXIT_TEST_SKIP;
+ }
+
+ FOREACH_STRING(fs, "vfat", "ext4") {
+ r = mkfs_exists(fs);
+ assert_se(r >= 0);
+ if (!r) {
+ log_tests_skipped("mkfs.{vfat|ext4} not installed");
+ return EXIT_TEST_SKIP;
+ }
+ }
+
+ assert_se(r >= 0);
+
+ assert_se(tempfn_random_child("/var/tmp", "sfdisk", &p) >= 0);
+ fd = open(p, O_CREAT|O_EXCL|O_RDWR|O_CLOEXEC|O_NOFOLLOW, 0666);
+ assert_se(fd >= 0);
+ assert_se(ftruncate(fd, 256*1024*1024) >= 0);
+
+ assert_se(cmd = strjoin("sfdisk ", p));
+ assert_se(sfdisk = popen(cmd, "we"));
+
+ /* A reasonably complex partition table that fits on a 64K disk */
+ fputs("label: gpt\n"
+ "size=32M, type=C12A7328-F81F-11D2-BA4B-00A0C93EC93B\n"
+ "size=32M, type=BC13C2FF-59E6-4262-A352-B275FD6F7172\n"
+ "size=32M, type=0657FD6D-A4AB-43C4-84E5-0933C84B4F4F\n"
+ "size=32M, type=", sfdisk);
+
+#ifdef GPT_ROOT_NATIVE
+ fprintf(sfdisk, SD_ID128_UUID_FORMAT_STR, SD_ID128_FORMAT_VAL(GPT_ROOT_NATIVE));
+#else
+ fprintf(sfdisk, SD_ID128_UUID_FORMAT_STR, SD_ID128_FORMAT_VAL(GPT_ROOT_X86_64));
+#endif
+
+ fputs("\n"
+ "size=32M, type=933AC7E1-2EB4-4F13-B844-0E14E2AEF915\n", sfdisk);
+
+ assert_se(pclose(sfdisk) == 0);
+ sfdisk = NULL;
+
+ assert_se(loop_device_make(fd, O_RDWR, 0, UINT64_MAX, LO_FLAGS_PARTSCAN, &loop) >= 0);
+ assert_se(dissect_image(loop->fd, NULL, NULL, 0, &dissected) >= 0);
+
+ assert_se(dissected->partitions[PARTITION_ESP].found);
+ assert_se(dissected->partitions[PARTITION_ESP].node);
+ assert_se(dissected->partitions[PARTITION_XBOOTLDR].found);
+ assert_se(dissected->partitions[PARTITION_XBOOTLDR].node);
+ assert_se(dissected->partitions[PARTITION_ROOT].found);
+ assert_se(dissected->partitions[PARTITION_ROOT].node);
+ assert_se(dissected->partitions[PARTITION_HOME].found);
+ assert_se(dissected->partitions[PARTITION_HOME].node);
+
+ assert_se(sd_id128_randomize(&id) >= 0);
+ assert_se(make_filesystem(dissected->partitions[PARTITION_ESP].node, "vfat", "EFI", id, true) >= 0);
+
+ assert_se(sd_id128_randomize(&id) >= 0);
+ assert_se(make_filesystem(dissected->partitions[PARTITION_XBOOTLDR].node, "vfat", "xbootldr", id, true) >= 0);
+
+ assert_se(sd_id128_randomize(&id) >= 0);
+ assert_se(make_filesystem(dissected->partitions[PARTITION_ROOT].node, "ext4", "root", id, true) >= 0);
+
+ assert_se(sd_id128_randomize(&id) >= 0);
+ assert_se(make_filesystem(dissected->partitions[PARTITION_HOME].node, "ext4", "home", id, true) >= 0);
+
+ dissected = dissected_image_unref(dissected);
+ assert_se(dissect_image(loop->fd, NULL, NULL, 0, &dissected) >= 0);
+
+ assert_se(mkdtemp_malloc(NULL, &mounted) >= 0);
+
+ /* This first (writable) mount will initialize the mount point dirs, so that the subsequent read-only ones can work */
+ assert_se(dissected_image_mount(dissected, mounted, UID_INVALID, 0) >= 0);
+
+ assert_se(umount_recursive(mounted, 0) >= 0);
+ loop = loop_device_unref(loop);
+
+ log_notice("Threads are being started now");
+
+ /* Let's make sure we run for 10s on slow systems at max */
+ end = usec_add(now(CLOCK_MONOTONIC),
+ slow_tests_enabled() ? 5 * USEC_PER_SEC :
+ 1 * USEC_PER_SEC);
+
+ for (unsigned i = 0; i < N_THREADS; i++)
+ assert_se(pthread_create(threads + i, NULL, thread_func, FD_TO_PTR(fd)) == 0);
+
+ log_notice("All threads started now.");
+
+ for (unsigned i = 0; i < N_THREADS; i++) {
+ log_notice("Joining thread #%u.", i);
+
+ void *k;
+ assert_se(pthread_join(threads[i], &k) == 0);
+ assert_se(k == NULL);
+
+ log_notice("Joined thread #%u.", i);
+ }
+
+ log_notice("Threads are all terminated now.");
+
+ return 0;
+}
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <stdio.h>
#include <string.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <sys/mount.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <sched.h>
#include <sys/mount.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <fcntl.h>
#include <sys/socket.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <arpa/inet.h>
#include <linux/if_tunnel.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <errno.h>
#include <stdlib.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include "main-func.h"
#include "nscd-flush.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <dlfcn.h>
#include <net/if.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <getopt.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <stdio.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <errno.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <errno.h>
#include <linux/loadavg.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <stdlib.h>
#include <sys/stat.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <stdio.h>
#include <unistd.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <stdbool.h>
#include <sys/stat.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <stdio.h>
#include <sys/stat.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <stdlib.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include "alloc-util.h"
#include "env-util.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <fcntl.h>
#include <sys/mount.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <errno.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <linux/loadavg.h>
--- /dev/null
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
+
+#include "locale-util.h"
+#include "main-func.h"
+#include "qrcode-util.h"
+#include "tests.h"
+
+static int run(int argc, char **argv) {
+ int r;
+
+ test_setup_logging(LOG_DEBUG);
+
+ assert_se(setenv("SYSTEMD_COLORS", "1", 1) == 0); /* Force the qrcode to be printed */
+
+ r = print_qrcode(stdout, "This should say \"TEST\"", "TEST");
+ if (r == -EOPNOTSUPP)
+ return log_tests_skipped("not supported");
+ if (r < 0)
+ return log_error_errno(r, "Failed to print QR code: %m");
+ return 0;
+}
+
+DEFINE_MAIN_FUNCTION(run);
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include "hexdecoct.h"
#include "random-util.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <unistd.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <stdio.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <sys/resource.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <unistd.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
/***
Copyright © 2012 Holger Hans Peter Freyther
***/
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
+
#include "sd-hwdb.h"
#include "alloc-util.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include "sd-path.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <fcntl.h>
#include <poll.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <sys/stat.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include "escape.h"
#include "fd-util.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <pthread.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include "set.h"
#include "strv.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <fcntl.h>
#include <sys/mman.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <unistd.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include "memory-util.h"
#include "siphash24.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <sched.h>
#include <stdio.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <fcntl.h>
#include <inttypes.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include "alloc-util.h"
#include "missing_network.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <fcntl.h>
#include <grp.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include "alloc-util.h"
#include "log.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <fcntl.h>
#include <linux/magic.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include "alloc-util.h"
#include "static-destruct.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <stdlib.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include "alloc-util.h"
#include "locale-util.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <stdio.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include "alloc-util.h"
#include "escape.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <stdio.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include "strv.h"
#include "sysctl-util.h"
#!/usr/bin/env python3
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# systemd is free software; you can redistribute it and/or modify it
# under the terms of the GNU Lesser General Public License as published by
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include "architecture.h"
#include "automount.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <fcntl.h>
#include <stdbool.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include "random-util.h"
#include "serialize.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <fcntl.h>
#include <stdio.h>
--- /dev/null
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
+
+#include <stdlib.h>
+#include <string.h>
+
+#include "macro.h"
+#include "string-util.h"
+#include "udev-util.h"
+
+static void test_udev_rule_parse_value_one(const char *in, const char *expected_value, int expected_retval) {
+ _cleanup_free_ char *str = NULL;
+ char *value = UINT_TO_PTR(0x12345678U);
+ char *endpos = UINT_TO_PTR(0x87654321U);
+
+ assert_se(str = strdup(in));
+ assert_se(udev_rule_parse_value(str, &value, &endpos) == expected_retval);
+ if (expected_retval < 0) {
+ /* not modified on failure */
+ assert_se(value == UINT_TO_PTR(0x12345678U));
+ assert_se(endpos == UINT_TO_PTR(0x87654321U));
+ } else {
+ assert_se(streq_ptr(value, expected_value));
+ assert_se(endpos == str + strlen(in));
+ }
+}
+
+static void test_parse_value(void) {
+ /* input: "valid operand"
+ * parsed: valid operand
+ * use the following command to help generate textual C strings:
+ * python3 -c 'import json; print(json.dumps(input()))' */
+ test_udev_rule_parse_value_one(
+ "\"valid operand\"",
+ "valid operand",
+ 0
+ );
+}
+
+static void test_parse_value_with_backslashes(void) {
+ /* input: "va'l\'id\"op\"erand"
+ * parsed: va'l\'id"op"erand */
+ test_udev_rule_parse_value_one(
+ "\"va'l\\'id\\\"op\\\"erand\"",
+ "va'l\\'id\"op\"erand",
+ 0
+ );
+}
+
+static void test_parse_value_no_quotes(void) {
+ test_udev_rule_parse_value_one(
+ "no quotes",
+ 0,
+ -EINVAL
+ );
+}
+
+static void test_parse_value_noescape(void) {
+ test_udev_rule_parse_value_one(
+ "\"\\\\a\\b\\x\\y\"",
+ "\\\\a\\b\\x\\y",
+ 0
+ );
+}
+
+static void test_parse_value_nul(void) {
+ test_udev_rule_parse_value_one(
+ "\"reject\0nul\"",
+ 0,
+ -EINVAL
+ );
+}
+
+static void test_parse_value_escape_nothing(void) {
+ /* input: e"" */
+ test_udev_rule_parse_value_one(
+ "e\"\"",
+ "",
+ 0
+ );
+}
+
+static void test_parse_value_escape_nothing2(void) {
+ /* input: e"1234" */
+ test_udev_rule_parse_value_one(
+ "e\"1234\"",
+ "1234",
+ 0
+ );
+}
+
+static void test_parse_value_escape_double_quote(void) {
+ /* input: e"\"" */
+ test_udev_rule_parse_value_one(
+ "e\"\\\"\"",
+ "\"",
+ 0
+ );
+}
+
+static void test_parse_value_escape_backslash(void) {
+ /* input: e"\ */
+ test_udev_rule_parse_value_one(
+ "e\"\\",
+ 0,
+ -EINVAL
+ );
+ /* input: e"\" */
+ test_udev_rule_parse_value_one(
+ "e\"\\\"",
+ 0,
+ -EINVAL
+ );
+ /* input: e"\\" */
+ test_udev_rule_parse_value_one(
+ "e\"\\\\\"",
+ "\\",
+ 0
+ );
+ /* input: e"\\\" */
+ test_udev_rule_parse_value_one(
+ "e\"\\\\\\\"",
+ 0,
+ -EINVAL
+ );
+ /* input: e"\\\"" */
+ test_udev_rule_parse_value_one(
+ "e\"\\\\\\\"\"",
+ "\\\"",
+ 0
+ );
+ /* input: e"\\\\" */
+ test_udev_rule_parse_value_one(
+ "e\"\\\\\\\\\"",
+ "\\\\",
+ 0
+ );
+}
+
+static void test_parse_value_newline(void) {
+ /* input: e"operand with newline\n" */
+ test_udev_rule_parse_value_one(
+ "e\"operand with newline\\n\"",
+ "operand with newline\n",
+ 0
+ );
+}
+
+static void test_parse_value_escaped(void) {
+ /* input: e"single\rcharacter\t\aescape\bsequence" */
+ test_udev_rule_parse_value_one(
+ "e\"single\\rcharacter\\t\\aescape\\bsequence\"",
+ "single\rcharacter\t\aescape\bsequence",
+ 0
+ );
+}
+
+static void test_parse_value_invalid_escape(void) {
+ /* input: e"reject\invalid escape sequence" */
+ test_udev_rule_parse_value_one(
+ "e\"reject\\invalid escape sequence",
+ 0,
+ -EINVAL
+ );
+}
+
+static void test_parse_value_invalid_termination(void) {
+ /* input: e"\ */
+ test_udev_rule_parse_value_one(
+ "e\"\\",
+ 0,
+ -EINVAL
+ );
+}
+
+static void test_parse_value_unicode(void) {
+ /* input: "s\u1d1c\u1d04\u029c \u1d1c\u0274\u026a\u1d04\u1d0f\u1d05\u1d07 \U0001d568\U0001d560\U0001d568" */
+ test_udev_rule_parse_value_one(
+ "e\"s\\u1d1c\\u1d04\\u029c \\u1d1c\\u0274\\u026a\\u1d04\\u1d0f\\u1d05\\u1d07 \\U0001d568\\U0001d560\\U0001d568\"",
+ "s\xe1\xb4\x9c\xe1\xb4\x84\xca\x9c \xe1\xb4\x9c\xc9\xb4\xc9\xaa\xe1\xb4\x84\xe1\xb4\x8f\xe1\xb4\x85\xe1\xb4\x87 \xf0\x9d\x95\xa8\xf0\x9d\x95\xa0\xf0\x9d\x95\xa8",
+ 0
+ );
+}
+
+int main(int argc, char **argv) {
+ test_parse_value();
+ test_parse_value_with_backslashes();
+ test_parse_value_no_quotes();
+ test_parse_value_nul();
+ test_parse_value_noescape();
+
+ test_parse_value_escape_nothing();
+ test_parse_value_escape_nothing2();
+ test_parse_value_escape_double_quote();
+ test_parse_value_escape_backslash();
+ test_parse_value_newline();
+ test_parse_value_escaped();
+ test_parse_value_invalid_escape();
+ test_parse_value_invalid_termination();
+ test_parse_value_unicode();
+
+ return EXIT_SUCCESS;
+}
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
/***
Copyright © 2003-2004 Greg Kroah-Hartman <greg@kroah.com>
***/
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <stddef.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include "tests.h"
#include "umask-util.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include "alloc-util.h"
#include "errno-util.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include "memory-util.h"
#include "sparse-endian.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include "path-lookup.h"
#include "set.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <stdio.h>
#include <stdlib.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <unistd.h>
#include <sys/types.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include "alloc-util.h"
#include "format-util.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include "alloc-util.h"
#include "string-util.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <errno.h>
#include <sys/wait.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <fcntl.h>
#include <poll.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <getopt.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include "log.h"
#include "manager.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <string.h>
#include <unistd.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include "macro.h"
#include "web-util.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <errno.h>
#include <fcntl.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include "alloc-util.h"
#include "fd-util.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <stdarg.h>
-/*
- * systemd service to wait until kernel realtime clock is synchronized
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
- * USA
- */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
+/* systemd service to wait until kernel realtime clock is synchronized */
#include <errno.h>
#include <stdbool.h>
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
if conf.get('ENABLE_TIMEDATED') == 1
install_data('org.freedesktop.timedate1.conf',
"http://www.freedesktop.org/standards/dbus/1.0/busconfig.dtd">
<!--
- SPDX-License-Identifier: LGPL-2.1+
+ SPDX-License-Identifier: LGPL-2.1-or-later
This file is part of systemd.
"http://www.freedesktop.org/standards/PolicyKit/1/policyconfig.dtd">
<!--
- SPDX-License-Identifier: LGPL-2.1+
+ SPDX-License-Identifier: LGPL-2.1-or-later
This file is part of systemd.
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <getopt.h>
#include <locale.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <errno.h>
#include <sys/stat.h>
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
systemd_timesyncd_sources = files('''
timesyncd.c
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
/* Some unit tests for the helper functions in timesyncd. */
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include "sd-bus.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include "timesyncd-manager.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include "alloc-util.h"
#include "def.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include "conf-parser.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <errno.h>
#include <math.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <sys/timex.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include "sparse-endian.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include "alloc-util.h"
#include "timesyncd-server.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include "list.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <sys/stat.h>
#include <sys/types.h>
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
systemd_tmpfiles_sources = [
'src/tmpfiles/tmpfiles.c',
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <errno.h>
#include <fcntl.h>
strna(t), pretty);
r = acl_set_file(path, type, dup);
- if (r < 0)
- /* Return positive to indicate we already warned */
- return -log_error_errno(errno,
- "Setting %s ACL \"%s\" on %s failed: %m",
- type == ACL_TYPE_ACCESS ? "access" : "default",
- strna(t), pretty);
-
+ if (r < 0) {
+ if (ERRNO_IS_NOT_SUPPORTED(errno))
+ /* No error if filesystem doesn't support ACLs. Return negative. */
+ return -errno;
+ else
+ /* Return positive to indicate we already warned */
+ return -log_error_errno(errno,
+ "Setting %s ACL \"%s\" on %s failed: %m",
+ type == ACL_TYPE_ACCESS ? "access" : "default",
+ strna(t), pretty);
+ }
return 0;
}
#endif
if (r == 0 && item->acl_default && S_ISDIR(st->st_mode))
r = path_set_acl(procfs_path, path, ACL_TYPE_DEFAULT, item->acl_default, item->append_or_force);
+ if (ERRNO_IS_NOT_SUPPORTED(r)) {
+ log_debug_errno(r, "ACLs not supported by file system at %s", path);
+ return 0;
+ }
+
if (r > 0)
return -r; /* already warned */
if (r == -ENOENT && proc_mounted() == 0)
r = -ENOSYS;
- if (r == -EOPNOTSUPP) {
- log_debug_errno(r, "ACLs not supported by file system at %s", path);
- return 0;
- }
if (r < 0)
return log_error_errno(r, "ACL operation on \"%s\" failed: %m", path);
#endif
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
/***
Copyright © 2015 Werner Fink
***/
-/* SPDX-License-Identifier: GPL-2.0+ */
+/* SPDX-License-Identifier: GPL-2.0-or-later */
/*
* ata_id - reads product/serial number from ATA drives
*
-/* SPDX-License-Identifier: GPL-2.0+ */
+/* SPDX-License-Identifier: GPL-2.0-or-later */
/*
* cdrom_id - optical drive and media information prober
*/
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
/*
* Identifies FIDO CTAP1 ("U2F")/CTAP2 security tokens based on the usage declared in their report
* descriptor and outputs suitable environment variables.
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
/* Inspired by Andrew Lutomirski's 'u2f-hidraw-policy.c' */
#include <errno.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <linux/hid.h>
#include <stdbool.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <stdint.h>
#include <stdlib.h>
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
udevadm_sources = files('''
udevadm.c
-/* SPDX-License-Identifier: GPL-2.0+ */
+/* SPDX-License-Identifier: GPL-2.0-or-later */
/*
* Copyright © 2010 - Maxim Levitsky
*
-/* SPDX-License-Identifier: GPL-2.0+ */
+/* SPDX-License-Identifier: GPL-2.0-or-later */
#pragma once
/*
-/* SPDX-License-Identifier: GPL-2.0+ */
+/* SPDX-License-Identifier: GPL-2.0-or-later */
/*
* Copyright © 2010 - Maxim Levitsky
*
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include "fd-util.h"
#include "fs-util.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <linux/netdevice.h>
#include <netinet/ether.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include "sd-device.h"
-/* SPDX-License-Identifier: GPL-2.0+ */
+/* SPDX-License-Identifier: GPL-2.0-or-later */
#pragma once
/*
-/* SPDX-License-Identifier: GPL-2.0+ */
+/* SPDX-License-Identifier: GPL-2.0-or-later */
/*
* Copyright © IBM Corp. 2003
* Copyright © SUSE Linux Products GmbH, 2006
-/* SPDX-License-Identifier: GPL-2.0+ */
+/* SPDX-License-Identifier: GPL-2.0-or-later */
#pragma once
/*
-/* SPDX-License-Identifier: GPL-2.0+ */
+/* SPDX-License-Identifier: GPL-2.0-or-later */
/*
* Copyright © IBM Corp. 2003
*
-/* SPDX-License-Identifier: GPL-2.0+ */
+/* SPDX-License-Identifier: GPL-2.0-or-later */
/*
* probe disks for filesystems and partitions
*
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <fcntl.h>
#include <linux/btrfs.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <errno.h>
#include <fnmatch.h>
-/* SPDX-License-Identifier: GPL-2.0+ */
+/* SPDX-License-Identifier: GPL-2.0-or-later */
/*
* expose input properties via udev
*
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <errno.h>
#include <fcntl.h>
-/* SPDX-License-Identifier: GPL-2.0+ */
+/* SPDX-License-Identifier: GPL-2.0-or-later */
/*
* load kernel modules
*
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
/*
* Predictable network interface device names based on:
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include "device-util.h"
#include "alloc-util.h"
return log_device_error_errno(dev, SYNTHETIC_ERRNO(EINVAL), "This program takes no arguments.");
r = link_get_driver(ctx, dev, &driver);
- if (r >= 0)
+ if (r < 0)
+ log_device_full_errno(dev, r == -EOPNOTSUPP ? LOG_DEBUG : LOG_WARNING,
+ r, "Failed to query device driver: %m");
+ else
udev_builtin_add_property(dev, test, "ID_NET_DRIVER", driver);
r = link_config_get(ctx, dev, &link);
-/* SPDX-License-Identifier: GPL-2.0+ */
+/* SPDX-License-Identifier: GPL-2.0-or-later */
/*
* compose persistent device path
*
-/* SPDX-License-Identifier: GPL-2.0+ */
+/* SPDX-License-Identifier: GPL-2.0-or-later */
/*
* manage device node user ACL
*/
-/* SPDX-License-Identifier: GPL-2.0+ */
+/* SPDX-License-Identifier: GPL-2.0-or-later */
/*
* USB device properties and persistent device path
*
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <getopt.h>
#include <stdio.h>
-/* SPDX-License-Identifier: GPL-2.0+ */
+/* SPDX-License-Identifier: GPL-2.0-or-later */
#pragma once
#include <stdbool.h>
-/* SPDX-License-Identifier: LGPL-2.1+
+/* SPDX-License-Identifier: LGPL-2.1-or-later
*
* libudev - interface to udev device information
*
-/* SPDX-License-Identifier: GPL-2.0+ */
+/* SPDX-License-Identifier: GPL-2.0-or-later */
#pragma once
#include "sd-event.h"
-/* SPDX-License-Identifier: GPL-2.0+ */
+/* SPDX-License-Identifier: GPL-2.0-or-later */
#include <ctype.h>
#include <errno.h>
if (r < 0)
return log_device_debug_errno(dev, r, "Failed to update database under /run/udev/data/: %m");
+ /* Yes, we run update_devnode() twice, because in the first invocation, that is before update of udev database,
+ * it could happen that two contenders are replacing each other's symlink. Hence we run it again to make sure
+ * symlinks point to devices that claim them with the highest priority. */
+ r = update_devnode(event);
+ if (r < 0)
+ return r;
+
device_set_is_initialized(dev);
return 0;
-/* SPDX-License-Identifier: GPL-2.0+ */
+/* SPDX-License-Identifier: GPL-2.0-or-later */
#pragma once
/*
-/* SPDX-License-Identifier: GPL-2.0+ */
+/* SPDX-License-Identifier: GPL-2.0-or-later */
#include <errno.h>
#include <fcntl.h>
#include "path-util.h"
#include "selinux-util.h"
#include "smack-util.h"
+#include "stat-util.h"
#include "stdio-util.h"
#include "string-util.h"
#include "strxcpyx.h"
#include "udev-node.h"
#include "user-util.h"
+#define LINK_UPDATE_MAX_RETRIES 128
+
static int node_symlink(sd_device *dev, const char *node, const char *slink) {
_cleanup_free_ char *slink_dirname = NULL, *target = NULL;
const char *id_filename, *slink_tmp;
if (rename(slink_tmp, slink) < 0) {
r = log_device_error_errno(dev, errno, "Failed to rename '%s' to '%s': %m", slink_tmp, slink);
(void) unlink(slink_tmp);
- }
+ } else
+ /* Tell caller that we replaced already existing symlink. */
+ r = 1;
return r;
}
_cleanup_free_ char *target = NULL, *filename = NULL, *dirname = NULL;
char name_enc[PATH_MAX];
const char *id_filename;
- int r;
+ int i, r, retries;
assert(dev);
assert(slink);
if (!add && unlink(filename) == 0)
(void) rmdir(dirname);
- r = link_find_prioritized(dev, add, dirname, &target);
- if (r < 0) {
- log_device_debug(dev, "No reference left, removing '%s'", slink);
- if (unlink(slink) == 0)
- (void) rmdir_parents(slink, "/");
- } else
- (void) node_symlink(dev, target, slink);
-
if (add)
do {
_cleanup_close_ int fd = -1;
r = -errno;
} while (r == -ENOENT);
- return r;
+ /* If the database entry is not written yet we will just do one iteration and possibly wrong symlink
+ * will be fixed in the second invocation. */
+ retries = sd_device_get_is_initialized(dev) > 0 ? LINK_UPDATE_MAX_RETRIES : 1;
+
+ for (i = 0; i < retries; i++) {
+ struct stat st1 = {}, st2 = {};
+
+ r = stat(dirname, &st1);
+ if (r < 0 && errno != ENOENT)
+ return -errno;
+
+ r = link_find_prioritized(dev, add, dirname, &target);
+ if (r == -ENOENT) {
+ log_device_debug(dev, "No reference left, removing '%s'", slink);
+ if (unlink(slink) == 0)
+ (void) rmdir_parents(slink, "/");
+
+ break;
+ } else if (r < 0)
+ return log_device_error_errno(dev, r, "Failed to determine highest priority symlink: %m");
+
+ r = node_symlink(dev, target, slink);
+ if (r < 0) {
+ (void) unlink(filename);
+ break;
+ } else if (r == 1)
+ /* We have replaced already existing symlink, possibly there is some other device trying
+ * to claim the same symlink. Let's do one more iteration to give us a chance to fix
+ * the error if other device actually claims the symlink with higher priority. */
+ continue;
+
+ /* Skip the second stat() if the first failed, stat_inode_unmodified() would return false regardless. */
+ if ((st1.st_mode & S_IFMT) != 0) {
+ r = stat(dirname, &st2);
+ if (r < 0 && errno != ENOENT)
+ return -errno;
+
+ if (stat_inode_unmodified(&st1, &st2))
+ break;
+ }
+ }
+
+ return i < LINK_UPDATE_MAX_RETRIES ? 0 : -ELOOP;
}
int udev_node_update_old_links(sd_device *dev, sd_device *dev_old) {
(void) node_symlink(dev, devnode, filename);
/* create/update symlinks, add symlinks to name index */
- FOREACH_DEVICE_DEVLINK(dev, devlink)
- (void) link_update(dev, devlink, true);
+ FOREACH_DEVICE_DEVLINK(dev, devlink) {
+ r = link_update(dev, devlink, true);
+ if (r < 0)
+ log_device_info_errno(dev, r, "Failed to update device symlinks: %m");
+ }
return 0;
}
assert(dev);
/* remove/update symlinks, remove symlinks from name index */
- FOREACH_DEVICE_DEVLINK(dev, devlink)
- (void) link_update(dev, devlink, false);
+ FOREACH_DEVICE_DEVLINK(dev, devlink) {
+ r = link_update(dev, devlink, false);
+ if (r < 0)
+ log_device_info_errno(dev, r, "Failed to update device symlinks: %m");
+ }
r = xsprintf_dev_num_path_from_sd_device(dev, &filename);
if (r < 0)
-/* SPDX-License-Identifier: GPL-2.0+ */
+/* SPDX-License-Identifier: GPL-2.0-or-later */
#pragma once
#include <stdbool.h>
-/* SPDX-License-Identifier: GPL-2.0+ */
+/* SPDX-License-Identifier: GPL-2.0-or-later */
#include <ctype.h>
}
static int parse_line(char **line, char **ret_key, char **ret_attr, UdevRuleOperatorType *ret_op, char **ret_value) {
- char *key_begin, *key_end, *attr, *tmp, *value, *i, *j;
+ char *key_begin, *key_end, *attr, *tmp;
UdevRuleOperatorType op;
+ int r;
assert(line);
assert(*line);
key_end[0] = '\0';
tmp += op == OP_ASSIGN ? 1 : 2;
- value = skip_leading_chars(tmp, NULL);
-
- /* value must be double quotated */
- if (value[0] != '"')
- return -EINVAL;
- value++;
-
- /* unescape double quotation '\"' -> '"' */
- for (i = j = value; ; i++, j++) {
- if (*i == '"')
- break;
- if (*i == '\0')
- return -EINVAL;
- if (i[0] == '\\' && i[1] == '"')
- i++;
- *j = *i;
- }
- j[0] = '\0';
+ tmp = skip_leading_chars(tmp, NULL);
+ r = udev_rule_parse_value(tmp, ret_value, line);
+ if (r < 0)
+ return r;
- *line = i+1;
*ret_key = key_begin;
*ret_attr = attr;
*ret_op = op;
- *ret_value = value;
return 1;
}
-/* SPDX-License-Identifier: GPL-2.0+ */
+/* SPDX-License-Identifier: GPL-2.0-or-later */
#pragma once
#include "hashmap.h"
-/* SPDX-License-Identifier: GPL-2.0+ */
+/* SPDX-License-Identifier: GPL-2.0-or-later */
/*
* Copyright © 2009 Canonical Ltd.
* Copyright © 2009 Scott James Remnant <scott@netsplit.com>
-/* SPDX-License-Identifier: GPL-2.0+ */
+/* SPDX-License-Identifier: GPL-2.0-or-later */
#pragma once
#include "sd-device.h"
-/* SPDX-License-Identifier: GPL-2.0+ */
+/* SPDX-License-Identifier: GPL-2.0-or-later */
/*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <getopt.h>
-/* SPDX-License-Identifier: GPL-2.0+ */
+/* SPDX-License-Identifier: GPL-2.0-or-later */
#include <ctype.h>
#include <errno.h>
if (arg_wait_for_initialization_timeout > 0) {
sd_device *d;
- r = device_wait_for_initialization(device, NULL, arg_wait_for_initialization_timeout, &d);
+ r = device_wait_for_initialization(
+ device,
+ NULL,
+ usec_add(now(CLOCK_MONOTONIC), arg_wait_for_initialization_timeout),
+ &d);
if (r < 0)
return r;
-/* SPDX-License-Identifier: GPL-2.0+ */
+/* SPDX-License-Identifier: GPL-2.0-or-later */
#include <errno.h>
#include <getopt.h>
-/* SPDX-License-Identifier: GPL-2.0+ */
+/* SPDX-License-Identifier: GPL-2.0-or-later */
/*
* Copyright © 2009 Canonical Ltd.
* Copyright © 2009 Scott James Remnant <scott@netsplit.com>
-/* SPDX-License-Identifier: GPL-2.0+ */
+/* SPDX-License-Identifier: GPL-2.0-or-later */
#include <errno.h>
#include <getopt.h>
-/* SPDX-License-Identifier: GPL-2.0+ */
+/* SPDX-License-Identifier: GPL-2.0-or-later */
/*
* Copyright © 2003-2004 Greg Kroah-Hartman <greg@kroah.com>
*/
-/* SPDX-License-Identifier: GPL-2.0+ */
+/* SPDX-License-Identifier: GPL-2.0-or-later */
#include <errno.h>
#include <getopt.h>
-/* SPDX-License-Identifier: GPL-2.0+ */
+/* SPDX-License-Identifier: GPL-2.0-or-later */
#include <errno.h>
-/* SPDX-License-Identifier: GPL-2.0+ */
+/* SPDX-License-Identifier: GPL-2.0-or-later */
#pragma once
#include "sd-device.h"
-/* SPDX-License-Identifier: GPL-2.0+ */
+/* SPDX-License-Identifier: GPL-2.0-or-later */
#include <errno.h>
#include <getopt.h>
-/* SPDX-License-Identifier: GPL-2.0+ */
+/* SPDX-License-Identifier: GPL-2.0-or-later */
#pragma once
#include <stdio.h>
-/* SPDX-License-Identifier: GPL-2.0+ */
+/* SPDX-License-Identifier: GPL-2.0-or-later */
/*
* Copyright © 2004 Chris Friesen <chris_friesen@sympatico.ca>
* Copyright © 2009 Canonical Ltd.
-/* SPDX-License-Identifier: GPL-2.0+ */
+/* SPDX-License-Identifier: GPL-2.0-or-later */
#pragma once
int run_udevd(int argc, char *argv[]);
-/* SPDX-License-Identifier: GPL-2.0+ */
+/* SPDX-License-Identifier: GPL-2.0-or-later */
/*
* Copyright (c) 2009 Filippo Argiolas <filippo.argiolas@gmail.com>
*
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <sys/stat.h>
#include <sys/types.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <errno.h>
#include <sys/stat.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <errno.h>
#include <fcntl.h>
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
systemd_userwork_sources = files('''
userwork.c
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <getopt.h>
#include <utmp.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <sys/wait.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include "sd-bus.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <sys/stat.h>
#include <sys/types.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <poll.h>
#include <sys/wait.h>
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
if conf.get('ENABLE_VCONSOLE') == 1
vconsole_rules = configure_file(
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
/***
Copyright © 2016 Michal Soltys <soltys@ziu.info>
***/
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <errno.h>
#include <stdbool.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <errno.h>
#include <stdio.h>
if (r < 0)
return log_error_errno(r, "Failed to parse root hash signature '%s': %m", argv[6]);
} else {
- r = read_full_file_full(AT_FDCWD, argv[6], READ_FULL_FILE_CONNECT_SOCKET, &hash_sig, &hash_sig_size);
+ r = read_full_file_full(AT_FDCWD, argv[6], READ_FULL_FILE_CONNECT_SOCKET, NULL, &hash_sig, &hash_sig_size);
if (r < 0)
return log_error_errno(r, "Failed to read root hash signature: %m");
}
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <sys/mount.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include "main-func.h"
#include "strv.h"
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <errno.h>
#include <stdio.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <errno.h>
#include <stdio.h>
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include "macro.h"
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
install_data(
'50-default.conf',
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
in_files = ['basic.conf']
--- /dev/null
+../TEST-01-BASIC/Makefile
\ No newline at end of file
--- /dev/null
+#!/usr/bin/env bash
+set -e
+TEST_DESCRIPTION="systemd-oomd Memory Pressure Test"
+
+. $TEST_BASE_DIR/test-functions
+
+check_result_nspawn() {
+ local ret=1
+ local journald_report=""
+ local pids=""
+ [[ -e $1/testok ]] && ret=0
+ if [[ -e $1/skipped ]]; then
+ echo "TEST-56-OOMD was skipped:"
+ cat $1/skipped
+ ret=0
+ fi
+ [[ -f $1/failed ]] && cp -a $1/failed $TESTDIR
+ save_journal $1/var/log/journal
+ [[ -f $TESTDIR/failed ]] && cat $TESTDIR/failed
+ echo $JOURNAL_LIST
+ test -s $TESTDIR/failed && ret=$(($ret+1))
+ [ -n "$TIMED_OUT" ] && ret=$(($ret+1))
+ check_asan_reports "$1" || ret=$(($ret+1))
+ _umount_dir $initdir
+ return $ret
+}
+
+check_result_qemu() {
+ local ret=1
+ mount_initdir
+ [[ -e $initdir/testok ]] && ret=0
+ if [[ -e $initdir/skipped ]]; then
+ echo "TEST-56-OOMD was skipped:"
+ cat $initdir/skipped
+ ret=0
+ fi
+ [[ -f $initdir/failed ]] && cp -a $initdir/failed $TESTDIR
+ save_journal $initdir/var/log/journal
+ check_asan_reports "$initdir" || ret=$(($ret+1))
+ _umount_dir $initdir
+ [[ -f $TESTDIR/failed ]] && cat $TESTDIR/failed
+ echo $JOURNAL_LIST
+ test -s $TESTDIR/failed && ret=$(($ret+1))
+ [ -n "$TIMED_OUT" ] && ret=$(($ret+1))
+ return $ret
+}
+
+do_test "$@" 56
#!/usr/bin/env python3
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
OUTFILE_HEADER = """#!/usr/bin/env python3
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# create-sys-script.py
#
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
# Message catalog for systemd's own messages
# Polish translation
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
Priority=
PropagatesReloadTo=
RandomizedDelaySec=
+FixedRandomDelay=
RebootArgument=
ReceiveBuffer=
RefuseManualStart=
slice
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
automount
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
socket
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
path
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
service
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
service
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
timer
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
[Unit]
Description=Daily Cleanup of Temporary Directories
Documentation=man:tmpfiles.d(5) man:systemd-tmpfiles(8)
Persistent=true
AccuracySec=24h
RandomizedDelaySec=234234234
+FixedRandomDelay=true
Persistent=no
Unit=foo.service
target
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
mount
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
# The 'optimization' option was introduced in meson 0.48.0, so let's keep
# the code compatible with older versions as well
#!/bin/sh
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# Call built systemd-hwdb update on our hwdb files to ensure that they parse
# without error
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
if install_tests
testdata_dir = testsdir + '/testdata/'
#!/usr/bin/env python3
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# networkd integration test
# This uses temporary configuration in /run and temporary veth devices, and
#!/usr/bin/env python3
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# Simple udev rules syntax checker
#
--- /dev/null
+#!/usr/bin/env python3
+# SPDX-License-Identifier: LGPL-2.1+
+#
+# sd-script.py: create LOTS of sd device entries in fake sysfs
+#
+# (C) 2018 Martin Wilck, SUSE Linux GmbH
+#
+# Run after sys-script.py
+# Usage: sd-script.py <directory> <num>
+# <num> is the number of device nodes (disks + partititions)
+# to create in addition to what sys-script.py already did.
+# The script can be run several times in a row if <num> is increased,
+# adding yet more device entries.
+# Tested up to 1000 entries, more are possible.
+# Note that sys-script.py already creates 10 sd device nodes
+# (sda+sdb and partitions). This script starts with sdc.
+
+import re
+import os
+import errno
+import sys
+
+def d(path, mode):
+ os.mkdir(path, mode)
+
+def l(path, src):
+ os.symlink(src, path)
+
+def f(path, mode, contents):
+ with open(path, "wb") as f:
+ f.write(contents)
+ os.chmod(path, mode)
+
+class SD(object):
+
+ sd_major = [8] + list(range(65, 72)) + list(range(128, 136))
+ _name_re = re.compile(r'sd(?P<f>[a-z]*)$')
+
+ def _init_from_name(self, name):
+ mt = self._name_re.match(name)
+ if mt is None:
+ raise RuntimeError("invalid name %s" % name)
+ nm = mt.group("f")
+ base = 1
+ ls = nm[-1]
+ nm = nm[:-1]
+ n = base * (ord(ls)-ord('a'))
+ while len(nm) > 0:
+ ls = nm[-1]
+ nm = nm[:-1]
+ base *= 26
+ n += base * (1 + ord(ls)-ord('a'))
+ self._num = n
+
+ def _init_from_dev(self, dev):
+ maj, min = dev.split(":")
+ maj = self.sd_major.index(int(maj, 10))
+ min = int(min, 10)
+ num = int(min / 16)
+ self._num = 16*maj + num%16 + 256*int(num/16)
+
+ @staticmethod
+ def _disk_num(a, b):
+ n = ord(a)-ord('a')
+ if b != '':
+ n = 26 * (n+1) + ord(b)-ord('a')
+ return n
+
+ @staticmethod
+ def _get_major(n):
+ return SD.sd_major[(n%256)//16]
+ @staticmethod
+ def _get_minor(n):
+ return 16 * (n % 16 + 16 * n//256)
+
+ @staticmethod
+ def _get_name(n):
+ # see sd_format_disk_name() (sd.c)
+ s = chr(n % 26 + ord('a'))
+ n = n // 26 - 1
+ while n >= 0:
+ s = chr(n % 26 + ord('a')) + s
+ n = n // 26 - 1
+ return "sd" + s
+
+ @staticmethod
+ def _get_dev_t(n):
+ maj = SD._get_major(n)
+ min = SD._get_minor(n)
+ return (maj << 20) + min
+
+ def __init__(self, arg):
+ if type(arg) is type(0):
+ self._num = arg
+ elif arg.startswith("sd"):
+ self._init_from_name(arg)
+ else:
+ self._init_from_dev(arg)
+
+ def __cmp__(self, other):
+ return cmp(self._num, other._num)
+
+ def __hash__(self):
+ return hash(self._num)
+
+ def __str__(self):
+ return "%s/%s" % (
+ self.devstr(),
+ self._get_name(self._num))
+
+ def major(self):
+ return self._get_major(self._num)
+
+ def minor(self):
+ return self._get_minor(self._num)
+
+ def devstr(self):
+ return "%d:%d" % (self._get_major(self._num),
+ self._get_minor(self._num))
+
+ def namestr(self):
+ return self._get_name(self._num)
+
+ def longstr(self):
+ return "%d\t%s\t%s\t%08x" % (self._num,
+ self.devstr(),
+ self.namestr(),
+ self._get_dev_t(self._num))
+
+class MySD(SD):
+ def subst(self, first_sg):
+ disk = {
+ "lun": self._num,
+ "major": self.major(),
+ "devnode": self.namestr(),
+ "disk_minor": self.minor(),
+ "sg_minor": first_sg + self._num,
+ }
+ return disk
+
+disk_template = r"""\
+l('sys/bus/scsi/drivers/sd/7:0:0:{lun}', '../../../../devices/pci0000:00/0000:00:1d.7/usb5/5-1/5-1:1.0/host7/target7:0:0/7:0:0:{lun}')
+l('sys/bus/scsi/devices/7:0:0:{lun}', '../../../devices/pci0000:00/0000:00:1d.7/usb5/5-1/5-1:1.0/host7/target7:0:0/7:0:0:{lun}')
+l('sys/dev/char/254:{sg_minor}', '../../devices/pci0000:00/0000:00:1d.7/usb5/5-1/5-1:1.0/host7/target7:0:0/7:0:0:{lun}/bsg/7:0:0:{lun}')
+l('sys/dev/char/21:{sg_minor}', '../../devices/pci0000:00/0000:00:1d.7/usb5/5-1/5-1:1.0/host7/target7:0:0/7:0:0:{lun}/scsi_generic/sg{sg_minor}')
+l('sys/class/scsi_disk/7:0:0:{lun}', '../../devices/pci0000:00/0000:00:1d.7/usb5/5-1/5-1:1.0/host7/target7:0:0/7:0:0:{lun}/scsi_disk/7:0:0:{lun}')
+l('sys/class/scsi_generic/sg{sg_minor}', '../../devices/pci0000:00/0000:00:1d.7/usb5/5-1/5-1:1.0/host7/target7:0:0/7:0:0:{lun}/scsi_generic/sg{sg_minor}')
+l('sys/class/bsg/7:0:0:{lun}', '../../devices/pci0000:00/0000:00:1d.7/usb5/5-1/5-1:1.0/host7/target7:0:0/7:0:0:{lun}/bsg/7:0:0:{lun}')
+l('sys/class/scsi_device/7:0:0:{lun}', '../../devices/pci0000:00/0000:00:1d.7/usb5/5-1/5-1:1.0/host7/target7:0:0/7:0:0:{lun}/scsi_device/7:0:0:{lun}')
+d('sys/devices/pci0000:00/0000:00:1d.7/usb5/5-1/5-1:1.0/host7/target7:0:0/7:0:0:{lun}', 0o755)
+l('sys/devices/pci0000:00/0000:00:1d.7/usb5/5-1/5-1:1.0/host7/target7:0:0/7:0:0:{lun}/generic', 'scsi_generic/sg{sg_minor}')
+l('sys/devices/pci0000:00/0000:00:1d.7/usb5/5-1/5-1:1.0/host7/target7:0:0/7:0:0:{lun}/subsystem', '../../../../../../../../../bus/scsi')
+l('sys/devices/pci0000:00/0000:00:1d.7/usb5/5-1/5-1:1.0/host7/target7:0:0/7:0:0:{lun}/driver', '../../../../../../../../../bus/scsi/drivers/sd')
+f('sys/devices/pci0000:00/0000:00:1d.7/usb5/5-1/5-1:1.0/host7/target7:0:0/7:0:0:{lun}/iodone_cnt', 0o644, b'0xc3\n')
+f('sys/devices/pci0000:00/0000:00:1d.7/usb5/5-1/5-1:1.0/host7/target7:0:0/7:0:0:{lun}/device_blocked', 0o644, b'0\n')
+f('sys/devices/pci0000:00/0000:00:1d.7/usb5/5-1/5-1:1.0/host7/target7:0:0/7:0:0:{lun}/max_sectors', 0o644, b'240\n')
+f('sys/devices/pci0000:00/0000:00:1d.7/usb5/5-1/5-1:1.0/host7/target7:0:0/7:0:0:{lun}/modalias', 0o644, b'scsi:t-0x00\n')
+f('sys/devices/pci0000:00/0000:00:1d.7/usb5/5-1/5-1:1.0/host7/target7:0:0/7:0:0:{lun}/scsi_level', 0o644, b'3\n')
+f('sys/devices/pci0000:00/0000:00:1d.7/usb5/5-1/5-1:1.0/host7/target7:0:0/7:0:0:{lun}/queue_depth', 0o644, b'1\n')
+f('sys/devices/pci0000:00/0000:00:1d.7/usb5/5-1/5-1:1.0/host7/target7:0:0/7:0:0:{lun}/rev', 0o644, b'1.00\n')
+f('sys/devices/pci0000:00/0000:00:1d.7/usb5/5-1/5-1:1.0/host7/target7:0:0/7:0:0:{lun}/type', 0o644, b'0\n')
+f('sys/devices/pci0000:00/0000:00:1d.7/usb5/5-1/5-1:1.0/host7/target7:0:0/7:0:0:{lun}/iocounterbits', 0o644, b'32\n')
+f('sys/devices/pci0000:00/0000:00:1d.7/usb5/5-1/5-1:1.0/host7/target7:0:0/7:0:0:{lun}/vendor', 0o644, b'Generic \n')
+f('sys/devices/pci0000:00/0000:00:1d.7/usb5/5-1/5-1:1.0/host7/target7:0:0/7:0:0:{lun}/state', 0o644, b'running\n')
+f('sys/devices/pci0000:00/0000:00:1d.7/usb5/5-1/5-1:1.0/host7/target7:0:0/7:0:0:{lun}/queue_type', 0o644, b'none\n')
+f('sys/devices/pci0000:00/0000:00:1d.7/usb5/5-1/5-1:1.0/host7/target7:0:0/7:0:0:{lun}/iorequest_cnt', 0o644, b'0xc3\n')
+f('sys/devices/pci0000:00/0000:00:1d.7/usb5/5-1/5-1:1.0/host7/target7:0:0/7:0:0:{lun}/evt_media_change', 0o644, b'0\n')
+f('sys/devices/pci0000:00/0000:00:1d.7/usb5/5-1/5-1:1.0/host7/target7:0:0/7:0:0:{lun}/model', 0o644, b'USB Flash Drive \n')
+f('sys/devices/pci0000:00/0000:00:1d.7/usb5/5-1/5-1:1.0/host7/target7:0:0/7:0:0:{lun}/ioerr_cnt', 0o644, b'0x2\n')
+f('sys/devices/pci0000:00/0000:00:1d.7/usb5/5-1/5-1:1.0/host7/target7:0:0/7:0:0:{lun}/uevent', 0o644, b'''DEVTYPE=scsi_device
+DRIVER=sd
+MODALIAS=scsi:t-0x00
+''')
+f('sys/devices/pci0000:00/0000:00:1d.7/usb5/5-1/5-1:1.0/host7/target7:0:0/7:0:0:{lun}/timeout', 0o644, b'60\n')
+d('sys/devices/pci0000:00/0000:00:1d.7/usb5/5-1/5-1:1.0/host7/target7:0:0/7:0:0:{lun}/scsi_disk', 0o755)
+d('sys/devices/pci0000:00/0000:00:1d.7/usb5/5-1/5-1:1.0/host7/target7:0:0/7:0:0:{lun}/scsi_disk/7:0:0:{lun}', 0o755)
+l('sys/devices/pci0000:00/0000:00:1d.7/usb5/5-1/5-1:1.0/host7/target7:0:0/7:0:0:{lun}/scsi_disk/7:0:0:{lun}/subsystem', '../../../../../../../../../../../class/scsi_disk')
+l('sys/devices/pci0000:00/0000:00:1d.7/usb5/5-1/5-1:1.0/host7/target7:0:0/7:0:0:{lun}/scsi_disk/7:0:0:{lun}/device', '../../../7:0:0:{lun}')
+f('sys/devices/pci0000:00/0000:00:1d.7/usb5/5-1/5-1:1.0/host7/target7:0:0/7:0:0:{lun}/scsi_disk/7:0:0:{lun}/app_tag_own', 0o644, b'0\n')
+f('sys/devices/pci0000:00/0000:00:1d.7/usb5/5-1/5-1:1.0/host7/target7:0:0/7:0:0:{lun}/scsi_disk/7:0:0:{lun}/FUA', 0o644, b'0\n')
+f('sys/devices/pci0000:00/0000:00:1d.7/usb5/5-1/5-1:1.0/host7/target7:0:0/7:0:0:{lun}/scsi_disk/7:0:0:{lun}/cache_type', 0o644, b'write through\n')
+f('sys/devices/pci0000:00/0000:00:1d.7/usb5/5-1/5-1:1.0/host7/target7:0:0/7:0:0:{lun}/scsi_disk/7:0:0:{lun}/protection_type', 0o644, b'0\n')
+f('sys/devices/pci0000:00/0000:00:1d.7/usb5/5-1/5-1:1.0/host7/target7:0:0/7:0:0:{lun}/scsi_disk/7:0:0:{lun}/manage_start_stop', 0o644, b'0\n')
+f('sys/devices/pci0000:00/0000:00:1d.7/usb5/5-1/5-1:1.0/host7/target7:0:0/7:0:0:{lun}/scsi_disk/7:0:0:{lun}/allow_restart', 0o644, b'1\n')
+f('sys/devices/pci0000:00/0000:00:1d.7/usb5/5-1/5-1:1.0/host7/target7:0:0/7:0:0:{lun}/scsi_disk/7:0:0:{lun}/uevent', 0o644, b'')
+d('sys/devices/pci0000:00/0000:00:1d.7/usb5/5-1/5-1:1.0/host7/target7:0:0/7:0:0:{lun}/scsi_disk/7:0:0:{lun}/power', 0o755)
+f('sys/devices/pci0000:00/0000:00:1d.7/usb5/5-1/5-1:1.0/host7/target7:0:0/7:0:0:{lun}/scsi_disk/7:0:0:{lun}/power/wakeup', 0o644, b'\n')
+d('sys/devices/pci0000:00/0000:00:1d.7/usb5/5-1/5-1:1.0/host7/target7:0:0/7:0:0:{lun}/power', 0o755)
+f('sys/devices/pci0000:00/0000:00:1d.7/usb5/5-1/5-1:1.0/host7/target7:0:0/7:0:0:{lun}/power/wakeup', 0o644, b'\n')
+d('sys/devices/pci0000:00/0000:00:1d.7/usb5/5-1/5-1:1.0/host7/target7:0:0/7:0:0:{lun}/scsi_generic', 0o755)
+d('sys/devices/pci0000:00/0000:00:1d.7/usb5/5-1/5-1:1.0/host7/target7:0:0/7:0:0:{lun}/scsi_generic/sg{sg_minor}', 0o755)
+l('sys/devices/pci0000:00/0000:00:1d.7/usb5/5-1/5-1:1.0/host7/target7:0:0/7:0:0:{lun}/scsi_generic/sg{sg_minor}/subsystem', '../../../../../../../../../../../class/scsi_generic')
+l('sys/devices/pci0000:00/0000:00:1d.7/usb5/5-1/5-1:1.0/host7/target7:0:0/7:0:0:{lun}/scsi_generic/sg{sg_minor}/device', '../../../7:0:0:{lun}')
+f('sys/devices/pci0000:00/0000:00:1d.7/usb5/5-1/5-1:1.0/host7/target7:0:0/7:0:0:{lun}/scsi_generic/sg{sg_minor}/dev', 0o644, b'21:{sg_minor}\n')
+f('sys/devices/pci0000:00/0000:00:1d.7/usb5/5-1/5-1:1.0/host7/target7:0:0/7:0:0:{lun}/scsi_generic/sg{sg_minor}/uevent', 0o644, b'''MAJOR=21
+MINOR={sg_minor}
+''')
+d('sys/devices/pci0000:00/0000:00:1d.7/usb5/5-1/5-1:1.0/host7/target7:0:0/7:0:0:{lun}/scsi_generic/sg{sg_minor}/power', 0o755)
+f('sys/devices/pci0000:00/0000:00:1d.7/usb5/5-1/5-1:1.0/host7/target7:0:0/7:0:0:{lun}/scsi_generic/sg{sg_minor}/power/wakeup', 0o644, b'\n')
+d('sys/devices/pci0000:00/0000:00:1d.7/usb5/5-1/5-1:1.0/host7/target7:0:0/7:0:0:{lun}/bsg', 0o755)
+d('sys/devices/pci0000:00/0000:00:1d.7/usb5/5-1/5-1:1.0/host7/target7:0:0/7:0:0:{lun}/bsg/7:0:0:{lun}', 0o755)
+l('sys/devices/pci0000:00/0000:00:1d.7/usb5/5-1/5-1:1.0/host7/target7:0:0/7:0:0:{lun}/bsg/7:0:0:{lun}/subsystem', '../../../../../../../../../../../class/bsg')
+l('sys/devices/pci0000:00/0000:00:1d.7/usb5/5-1/5-1:1.0/host7/target7:0:0/7:0:0:{lun}/bsg/7:0:0:{lun}/device', '../../../7:0:0:{lun}')
+f('sys/devices/pci0000:00/0000:00:1d.7/usb5/5-1/5-1:1.0/host7/target7:0:0/7:0:0:{lun}/bsg/7:0:0:{lun}/dev', 0o644, b'254:{sg_minor}\n')
+f('sys/devices/pci0000:00/0000:00:1d.7/usb5/5-1/5-1:1.0/host7/target7:0:0/7:0:0:{lun}/bsg/7:0:0:{lun}/uevent', 0o644, b'''MAJOR=254
+MINOR={sg_minor}
+''')
+d('sys/devices/pci0000:00/0000:00:1d.7/usb5/5-1/5-1:1.0/host7/target7:0:0/7:0:0:{lun}/bsg/7:0:0:{lun}/power', 0o755)
+f('sys/devices/pci0000:00/0000:00:1d.7/usb5/5-1/5-1:1.0/host7/target7:0:0/7:0:0:{lun}/bsg/7:0:0:{lun}/power/wakeup', 0o644, b'\n')
+d('sys/devices/pci0000:00/0000:00:1d.7/usb5/5-1/5-1:1.0/host7/target7:0:0/7:0:0:{lun}/block', 0o755)
+d('sys/devices/pci0000:00/0000:00:1d.7/usb5/5-1/5-1:1.0/host7/target7:0:0/7:0:0:{lun}/scsi_device', 0o755)
+d('sys/devices/pci0000:00/0000:00:1d.7/usb5/5-1/5-1:1.0/host7/target7:0:0/7:0:0:{lun}/scsi_device/7:0:0:{lun}', 0o755)
+l('sys/devices/pci0000:00/0000:00:1d.7/usb5/5-1/5-1:1.0/host7/target7:0:0/7:0:0:{lun}/scsi_device/7:0:0:{lun}/subsystem', '../../../../../../../../../../../class/scsi_device')
+l('sys/devices/pci0000:00/0000:00:1d.7/usb5/5-1/5-1:1.0/host7/target7:0:0/7:0:0:{lun}/scsi_device/7:0:0:{lun}/device', '../../../7:0:0:{lun}')
+f('sys/devices/pci0000:00/0000:00:1d.7/usb5/5-1/5-1:1.0/host7/target7:0:0/7:0:0:{lun}/scsi_device/7:0:0:{lun}/uevent', 0o644, b'')
+d('sys/devices/pci0000:00/0000:00:1d.7/usb5/5-1/5-1:1.0/host7/target7:0:0/7:0:0:{lun}/scsi_device/7:0:0:{lun}/power', 0o755)
+f('sys/devices/pci0000:00/0000:00:1d.7/usb5/5-1/5-1:1.0/host7/target7:0:0/7:0:0:{lun}/scsi_device/7:0:0:{lun}/power/wakeup', 0o644, b'\n')
+l('sys/dev/block/{major}:{disk_minor}', '../../devices/pci0000:00/0000:00:1d.7/usb5/5-1/5-1:1.0/host7/target7:0:0/7:0:0:{lun}/block/{devnode}')
+l('sys/class/block/{devnode}', '../../devices/pci0000:00/0000:00:1d.7/usb5/5-1/5-1:1.0/host7/target7:0:0/7:0:0:{lun}/block/{devnode}')
+l('sys/block/{devnode}', '../devices/pci0000:00/0000:00:1d.7/usb5/5-1/5-1:1.0/host7/target7:0:0/7:0:0:{lun}/block/{devnode}')
+d('sys/devices/pci0000:00/0000:00:1d.7/usb5/5-1/5-1:1.0/host7/target7:0:0/7:0:0:{lun}/block/{devnode}', 0o755)
+l('sys/devices/pci0000:00/0000:00:1d.7/usb5/5-1/5-1:1.0/host7/target7:0:0/7:0:0:{lun}/block/{devnode}/subsystem', '../../../../../../../../../../../class/block')
+l('sys/devices/pci0000:00/0000:00:1d.7/usb5/5-1/5-1:1.0/host7/target7:0:0/7:0:0:{lun}/block/{devnode}/bdi', '../../../../../../../../../../virtual/bdi/{major}:{disk_minor}')
+l('sys/devices/pci0000:00/0000:00:1d.7/usb5/5-1/5-1:1.0/host7/target7:0:0/7:0:0:{lun}/block/{devnode}/device', '../../../7:0:0:{lun}')
+f('sys/devices/pci0000:00/0000:00:1d.7/usb5/5-1/5-1:1.0/host7/target7:0:0/7:0:0:{lun}/block/{devnode}/capability', 0o644, b'13\n')
+f('sys/devices/pci0000:00/0000:00:1d.7/usb5/5-1/5-1:1.0/host7/target7:0:0/7:0:0:{lun}/block/{devnode}/ro', 0o644, b'0\n')
+f('sys/devices/pci0000:00/0000:00:1d.7/usb5/5-1/5-1:1.0/host7/target7:0:0/7:0:0:{lun}/block/{devnode}/make-it-fail', 0o644, b'0\n')
+f('sys/devices/pci0000:00/0000:00:1d.7/usb5/5-1/5-1:1.0/host7/target7:0:0/7:0:0:{lun}/block/{devnode}/size', 0o644, b'257024\n')
+f('sys/devices/pci0000:00/0000:00:1d.7/usb5/5-1/5-1:1.0/host7/target7:0:0/7:0:0:{lun}/block/{devnode}/dev', 0o644, b'{major}:{disk_minor}\n')
+f('sys/devices/pci0000:00/0000:00:1d.7/usb5/5-1/5-1:1.0/host7/target7:0:0/7:0:0:{lun}/block/{devnode}/range', 0o644, b'16\n')
+f('sys/devices/pci0000:00/0000:00:1d.7/usb5/5-1/5-1:1.0/host7/target7:0:0/7:0:0:{lun}/block/{devnode}/removable', 0o644, b'1\n')
+f('sys/devices/pci0000:00/0000:00:1d.7/usb5/5-1/5-1:1.0/host7/target7:0:0/7:0:0:{lun}/block/{devnode}/stat', 0o644, b' 117 409 2103 272 0 0 0 0 0 194 272\n')
+f('sys/devices/pci0000:00/0000:00:1d.7/usb5/5-1/5-1:1.0/host7/target7:0:0/7:0:0:{lun}/block/{devnode}/uevent', 0o644, b'''MAJOR={major}
+MINOR={disk_minor}
+DEVTYPE=disk
+DEVNAME={devnode}
+''')
+d('sys/devices/pci0000:00/0000:00:1d.7/usb5/5-1/5-1:1.0/host7/target7:0:0/7:0:0:{lun}/block/{devnode}/queue', 0o755)
+l('sys/devices/pci0000:00/0000:00:1d.7/usb5/5-1/5-1:1.0/host7/target7:0:0/7:0:0:{lun}/block/{devnode}/queue/bsg', '../../../bsg/7:0:0:{lun}')
+f('sys/devices/pci0000:00/0000:00:1d.7/usb5/5-1/5-1:1.0/host7/target7:0:0/7:0:0:{lun}/block/{devnode}/queue/nr_requests', 0o644, b'128\n')
+f('sys/devices/pci0000:00/0000:00:1d.7/usb5/5-1/5-1:1.0/host7/target7:0:0/7:0:0:{lun}/block/{devnode}/queue/nomerges', 0o644, b'0\n')
+f('sys/devices/pci0000:00/0000:00:1d.7/usb5/5-1/5-1:1.0/host7/target7:0:0/7:0:0:{lun}/block/{devnode}/queue/scheduler', 0o644, b'noop anticipatory deadline [cfq] \n')
+f('sys/devices/pci0000:00/0000:00:1d.7/usb5/5-1/5-1:1.0/host7/target7:0:0/7:0:0:{lun}/block/{devnode}/queue/hw_sector_size', 0o644, b'512\n')
+f('sys/devices/pci0000:00/0000:00:1d.7/usb5/5-1/5-1:1.0/host7/target7:0:0/7:0:0:{lun}/block/{devnode}/queue/max_hw_sectors_kb', 0o644, b'120\n')
+f('sys/devices/pci0000:00/0000:00:1d.7/usb5/5-1/5-1:1.0/host7/target7:0:0/7:0:0:{lun}/block/{devnode}/queue/read_ahead_kb', 0o644, b'128\n')
+f('sys/devices/pci0000:00/0000:00:1d.7/usb5/5-1/5-1:1.0/host7/target7:0:0/7:0:0:{lun}/block/{devnode}/queue/max_sectors_kb', 0o644, b'120\n')
+d('sys/devices/pci0000:00/0000:00:1d.7/usb5/5-1/5-1:1.0/host7/target7:0:0/7:0:0:{lun}/block/{devnode}/queue/iosched', 0o755)
+f('sys/devices/pci0000:00/0000:00:1d.7/usb5/5-1/5-1:1.0/host7/target7:0:0/7:0:0:{lun}/block/{devnode}/queue/iosched/slice_async_rq', 0o644, b'2\n')
+f('sys/devices/pci0000:00/0000:00:1d.7/usb5/5-1/5-1:1.0/host7/target7:0:0/7:0:0:{lun}/block/{devnode}/queue/iosched/back_seek_max', 0o644, b'16384\n')
+f('sys/devices/pci0000:00/0000:00:1d.7/usb5/5-1/5-1:1.0/host7/target7:0:0/7:0:0:{lun}/block/{devnode}/queue/iosched/slice_sync', 0o644, b'100\n')
+f('sys/devices/pci0000:00/0000:00:1d.7/usb5/5-1/5-1:1.0/host7/target7:0:0/7:0:0:{lun}/block/{devnode}/queue/iosched/slice_async', 0o644, b'40\n')
+f('sys/devices/pci0000:00/0000:00:1d.7/usb5/5-1/5-1:1.0/host7/target7:0:0/7:0:0:{lun}/block/{devnode}/queue/iosched/fifo_expire_sync', 0o644, b'125\n')
+f('sys/devices/pci0000:00/0000:00:1d.7/usb5/5-1/5-1:1.0/host7/target7:0:0/7:0:0:{lun}/block/{devnode}/queue/iosched/slice_idle', 0o644, b'8\n')
+f('sys/devices/pci0000:00/0000:00:1d.7/usb5/5-1/5-1:1.0/host7/target7:0:0/7:0:0:{lun}/block/{devnode}/queue/iosched/back_seek_penalty', 0o644, b'2\n')
+f('sys/devices/pci0000:00/0000:00:1d.7/usb5/5-1/5-1:1.0/host7/target7:0:0/7:0:0:{lun}/block/{devnode}/queue/iosched/fifo_expire_async', 0o644, b'250\n')
+f('sys/devices/pci0000:00/0000:00:1d.7/usb5/5-1/5-1:1.0/host7/target7:0:0/7:0:0:{lun}/block/{devnode}/queue/iosched/quantum', 0o644, b'4\n')
+d('sys/devices/pci0000:00/0000:00:1d.7/usb5/5-1/5-1:1.0/host7/target7:0:0/7:0:0:{lun}/block/{devnode}/power', 0o755)
+f('sys/devices/pci0000:00/0000:00:1d.7/usb5/5-1/5-1:1.0/host7/target7:0:0/7:0:0:{lun}/block/{devnode}/power/wakeup', 0o644, b'\n')
+"""
+
+part_template = r"""\
+l('sys/dev/block/{major}:{part_minor}', '../../devices/pci0000:00/0000:00:1d.7/usb5/5-1/5-1:1.0/host7/target7:0:0/7:0:0:{lun}/block/{devnode}/{devnode}{part_num}')
+l('sys/class/block/{devnode}{part_num}', '../../devices/pci0000:00/0000:00:1d.7/usb5/5-1/5-1:1.0/host7/target7:0:0/7:0:0:{lun}/block/{devnode}/{devnode}{part_num}')
+d('sys/devices/pci0000:00/0000:00:1d.7/usb5/5-1/5-1:1.0/host7/target7:0:0/7:0:0:{lun}/block/{devnode}/{devnode}{part_num}', 0o755)
+l('sys/devices/pci0000:00/0000:00:1d.7/usb5/5-1/5-1:1.0/host7/target7:0:0/7:0:0:{lun}/block/{devnode}/{devnode}{part_num}/subsystem', '../../../../../../../../../../../../class/block')
+f('sys/devices/pci0000:00/0000:00:1d.7/usb5/5-1/5-1:1.0/host7/target7:0:0/7:0:0:{lun}/block/{devnode}/{devnode}{part_num}/start', 0o644, b'32\n')
+f('sys/devices/pci0000:00/0000:00:1d.7/usb5/5-1/5-1:1.0/host7/target7:0:0/7:0:0:{lun}/block/{devnode}/{devnode}{part_num}/make-it-fail', 0o644, b'0\n')
+f('sys/devices/pci0000:00/0000:00:1d.7/usb5/5-1/5-1:1.0/host7/target7:0:0/7:0:0:{lun}/block/{devnode}/{devnode}{part_num}/size', 0o644, b'256992\n')
+f('sys/devices/pci0000:00/0000:00:1d.7/usb5/5-1/5-1:1.0/host7/target7:0:0/7:0:0:{lun}/block/{devnode}/{devnode}{part_num}/dev', 0o644, b'{major}:{part_minor}\n')
+f('sys/devices/pci0000:00/0000:00:1d.7/usb5/5-1/5-1:1.0/host7/target7:0:0/7:0:0:{lun}/block/{devnode}/{devnode}{part_num}/stat', 0o644, b' 109 392 1903 246 0 0 0 0 0 169 246\n')
+f('sys/devices/pci0000:00/0000:00:1d.7/usb5/5-1/5-1:1.0/host7/target7:0:0/7:0:0:{lun}/block/{devnode}/{devnode}{part_num}/uevent', 0o644, b'''MAJOR={major}
+MINOR={part_minor}
+DEVTYPE=partition
+DEVNAME={devnode}{part_num}
+''')
+"""
+
+if len(sys.argv) != 3:
+ exit("Usage: {} <target dir> <number>".format(sys.argv[0]))
+
+if not os.path.isdir(sys.argv[1]):
+ exit("Target dir {} not found".format(sys.argv[1]))
+
+def create_part_sysfs(disk, sd, prt):
+ part = disk
+ part.update ({
+ "part_num": prt,
+ "part_minor": disk["disk_minor"] + prt,
+ })
+
+ try:
+ exec(part_template.format(**part))
+ except OSError:
+ si = sys.exc_info()[1]
+ if (si.errno == errno.EEXIST):
+ print("sysfs structures for %s%d exist" % (sd.namestr(), prt))
+ else:
+ print("error for %s%d: %s" % (sd.namestr(), prt, si[1]))
+ raise
+ else:
+ print("sysfs structures for %s%d created" % (sd.namestr(), prt))
+
+def create_disk_sysfs(dsk, first_sg, n):
+ sd = MySD(dsk)
+ disk = sd.subst(first_sg)
+
+ try:
+ exec(disk_template.format(**disk))
+ except OSError:
+ si = sys.exc_info()[1]
+ if (si.errno == errno.EEXIST):
+ print("sysfs structures for %s exist" % sd.namestr())
+ elif (si.errno == errno.ENOENT):
+ print("error for %s: %s - have you run sys-script py first?" %
+ (sd.namestr(), si.strerror))
+ return -1
+ else:
+ print("error for %s: %s" % (sd.namestr(), si.strerror))
+ raise
+ else:
+ print("sysfs structures for %s created" % sd.namestr())
+
+ n += 1
+ if n >= last:
+ return n
+
+ for prt in range(1, 16):
+ create_part_sysfs(disk, sd, prt)
+ n += 1
+ if n >= last:
+ return n
+
+ return n
+
+os.chdir(sys.argv[1])
+n = 0
+last = int(sys.argv[2])
+first_sg = 2
+for dsk in range(2, 1000):
+ n = create_disk_sysfs(dsk, first_sg, n)
+ if n >= last or n == -1:
+ break
#!/usr/bin/env python3
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# sys-script.py
#
f('sys/devices/pci0000:00/0000:00:1d.7/usb5/5-1/5-1:1.0/host7/target7:0:0/7:0:0:0/block/sdb/uevent', 0o644, b'''MAJOR=8
MINOR=16
DEVTYPE=disk
+DEVNAME=sdb
''')
d('sys/devices/pci0000:00/0000:00:1d.7/usb5/5-1/5-1:1.0/host7/target7:0:0/7:0:0:0/block/sdb/queue', 0o755)
l('sys/devices/pci0000:00/0000:00:1d.7/usb5/5-1/5-1:1.0/host7/target7:0:0/7:0:0:0/block/sdb/queue/bsg', '../../../bsg/7:0:0:0')
f('sys/devices/pci0000:00/0000:00:1d.7/usb5/5-1/5-1:1.0/host7/target7:0:0/7:0:0:0/block/sdb/sdb1/uevent', 0o644, b'''MAJOR=8
MINOR=17
DEVTYPE=partition
+DEVNAME=sdb1
''')
d('sys/devices/pci0000:00/0000:00:1d.7/usb5/5-1/5-1:1.0/host7/target7:0:0/7:0:0:0/block/sdb/sdb1/power', 0o755)
f('sys/devices/pci0000:00/0000:00:1d.7/usb5/5-1/5-1:1.0/host7/target7:0:0/7:0:0:0/block/sdb/sdb1/power/wakeup', 0o644, b'\n')
f('sys/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda10/uevent', 0o644, b'''MAJOR=8
MINOR=10
DEVTYPE=partition
+DEVNAME=sda10
''')
d('sys/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda10/power', 0o755)
f('sys/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda10/power/wakeup', 0o644, b'\n')
f('sys/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda9/uevent', 0o644, b'''MAJOR=8
MINOR=9
DEVTYPE=partition
+DEVNAME=sda9
''')
d('sys/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda9/holders', 0o755)
l('sys/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda9/holders/md0', '../../../../../../../../../virtual/block/md0')
f('sys/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda7/uevent', 0o644, b'''MAJOR=8
MINOR=7
DEVTYPE=partition
+DEVNAME=sda7
''')
d('sys/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda7/power', 0o755)
f('sys/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda7/power/wakeup', 0o644, b'\n')
f('sys/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda8/uevent', 0o644, b'''MAJOR=8
MINOR=8
DEVTYPE=partition
+DEVNAME=sda8
''')
d('sys/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda8/power', 0o755)
f('sys/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda8/power/wakeup', 0o644, b'\n')
f('sys/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda6/uevent', 0o644, b'''MAJOR=8
MINOR=6
DEVTYPE=partition
+DEVNAME=sda6
''')
d('sys/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda6/power', 0o755)
f('sys/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda6/power/wakeup', 0o644, b'\n')
#!/usr/bin/env python3
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# systemd-sysv-generator integration test
#
#!/usr/bin/env python3
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# Copyright © 2017 Michal Sekletar <msekleta@redhat.com>
echo
env
false
+ getconf
getent
getfacl
grep
[Network]
IPv6AcceptRA=true
+
+[IPv6AcceptRA]
+UseDomains=yes
[IPv6SendRA]
DNS=_link_local 2002:da8:1:0::1
DNSLifetimeSec=1min
+Domains=hogehoge.test
[IPv6Prefix]
Prefix=2002:da8:1:0::/64
#!/usr/bin/env python3
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
# systemd-networkd tests
import argparse
self.assertRegex(output, 'via 2001:1234:5:8fff:ff:ff:ff:ff dev dummy98')
self.assertRegex(output, 'via 2001:1234:5:9fff:ff:ff:ff:ff dev dummy98')
+ copy_unit_to_networkd_unit_path('25-address-static.network')
+ check_output(*networkctl_cmd, 'reload', env=env)
+ self.wait_online(['dummy98:routable'])
+
+ # check all routes managed by Manager are removed
+ print('### ip route show type blackhole')
+ output = check_output('ip route show type blackhole')
+ print(output)
+ self.assertEqual(output, '')
+
+ print('### ip route show type unreachable')
+ output = check_output('ip route show type unreachable')
+ print(output)
+ self.assertEqual(output, '')
+
+ print('### ip route show type prohibit')
+ output = check_output('ip route show type prohibit')
+ print(output)
+ self.assertEqual(output, '')
+
+ remove_unit_from_networkd_path(['25-address-static.network'])
+ check_output(*networkctl_cmd, 'reload', env=env)
+ self.wait_online(['dummy98:routable'])
+
+ # check all routes managed by Manager are reconfigured
+ print('### ip route show type blackhole')
+ output = check_output('ip route show type blackhole')
+ print(output)
+ self.assertRegex(output, 'blackhole 202.54.1.2 proto static')
+
+ print('### ip route show type unreachable')
+ output = check_output('ip route show type unreachable')
+ print(output)
+ self.assertRegex(output, 'unreachable 202.54.1.3 proto static')
+
+ print('### ip route show type prohibit')
+ output = check_output('ip route show type prohibit')
+ print(output)
+ self.assertRegex(output, 'prohibit 202.54.1.4 proto static')
+
+ rc = call("ip link del dummy98")
+ self.assertEqual(rc, 0)
+ time.sleep(2)
+
+ # check all routes managed by Manager are removed
+ print('### ip route show type blackhole')
+ output = check_output('ip route show type blackhole')
+ print(output)
+ self.assertEqual(output, '')
+
+ print('### ip route show type unreachable')
+ output = check_output('ip route show type unreachable')
+ print(output)
+ self.assertEqual(output, '')
+
+ print('### ip route show type prohibit')
+ output = check_output('ip route show type prohibit')
+ print(output)
+ self.assertEqual(output, '')
+
@expectedFailureIfRTA_VIAIsNotSupported()
def test_route_via_ipv6(self):
copy_unit_to_networkd_unit_path('25-route-via-ipv6.network', '12-dummy.netdev')
self.assertRegex(output, 'fe80::')
self.assertRegex(output, '2002:da8:1::1')
+ output = check_output(*resolvectl_cmd, 'domain', 'veth99', env=env)
+ print(output)
+ self.assertIn('hogehoge.test', output)
+
output = check_output(*networkctl_cmd, '-n', '0', 'status', 'veth99', env=env)
print(output)
self.assertRegex(output, '2002:da8:1:0')
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
use warnings;
use strict;
+use POSIX qw(WIFEXITED WEXITSTATUS);
+use IPC::SysV qw(IPC_PRIVATE S_IRUSR S_IWUSR IPC_CREAT);
+use IPC::Semaphore;
+use Time::HiRes qw(usleep);
+use Cwd qw(getcwd abs_path);
my $udev_bin = "./test-udev";
my $valgrind = 0;
}
$rules_10k_tags_continuation .= "TAG+=\"test10000\"\\n";
+# Create a device list with all block devices under /sys
+# (except virtual devices and cd-roms)
+# the optional argument exp_func returns expected and non-expected
+# symlinks for the device.
+sub all_block_devs {
+ my ($exp_func) = @_;
+ my @devices;
+
+ foreach my $bd (glob "$udev_sys/dev/block/*") {
+ my $tgt = readlink($bd);
+ my ($exp, $notexp) = (undef, undef);
+
+ next if ($tgt =~ m!/virtual/! || $tgt =~ m!/sr[0-9]*$!);
+
+ $tgt =~ s!^\.\./\.\.!!;
+ ($exp, $notexp) = $exp_func->($tgt) if defined($exp_func);
+ my $device = {
+ devpath => $tgt,
+ exp_links => $exp,
+ not_exp_links => $notexp,
+ };
+ push(@devices, $device);
+ }
+ return \@devices;
+}
+
+# This generator returns a suitable exp_func for use with
+# all_block_devs().
+sub expect_for_some {
+ my ($pattern, $links, $donot) = @_;
+ my $_expect = sub {
+ my ($name) = @_;
+
+ if ($name =~ /$pattern/) {
+ return ($links, undef);
+ } elsif ($donot) {
+ return (undef, $links);
+ } else {
+ return (undef, undef);
+ }
+ };
+ return $_expect;
+}
+
my @tests = (
{
desc => "no rules",
- devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda",
- exp_name => "sda",
- exp_rem_error => "yes",
+ devices => [
+ {
+ devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda",
+ exp_rem_error => "yes",
+ },
+ {
+ devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda1",
+ exp_rem_error => "yes",
+ }],
rules => <<EOF
#
EOF
},
{
desc => "label test of scsi disc",
- devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda",
- exp_name => "boot_disk",
+ devices => [
+ {
+ devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda",
+ exp_links => ["boot_disk"],
+ }],
rules => <<EOF
SUBSYSTEMS=="scsi", ATTRS{vendor}=="ATA", SYMLINK+="boot_disk%n"
KERNEL=="ttyACM0", SYMLINK+="modem"
},
{
desc => "label test of scsi disc",
- devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda",
- exp_name => "boot_disk",
+ devices => [
+ {
+ devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda",
+ exp_links => ["boot_disk"],
+ }],
rules => <<EOF
SUBSYSTEMS=="scsi", ATTRS{vendor}=="ATA", SYMLINK+="boot_disk%n"
KERNEL=="ttyACM0", SYMLINK+="modem"
},
{
desc => "label test of scsi disc",
- devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda",
- exp_name => "boot_disk",
+ devices => [
+ {
+ devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda",
+ exp_links => ["boot_disk"],
+ }],
rules => <<EOF
SUBSYSTEMS=="scsi", ATTRS{vendor}=="ATA", SYMLINK+="boot_disk%n"
KERNEL=="ttyACM0", SYMLINK+="modem"
},
{
desc => "label test of scsi partition",
- devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda1",
- exp_name => "boot_disk1",
+ devices => [
+ {
+ devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda1",
+ exp_links => ["boot_disk1"],
+ }],
rules => <<EOF
SUBSYSTEMS=="scsi", ATTRS{vendor}=="ATA", SYMLINK+="boot_disk%n"
EOF
},
{
desc => "label test of pattern match",
- devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda1",
- exp_name => "boot_disk1",
+ devices => [
+ {
+ devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda1",
+ exp_links => ["boot_disk1", "boot_disk1-4", "boot_disk1-5"],
+ not_exp_links => ["boot_disk1-1", "boot_disk1-2", "boot_disk1-3"]
+ }],
rules => <<EOF
SUBSYSTEMS=="scsi", ATTRS{vendor}=="?ATA", SYMLINK+="boot_disk%n-1"
SUBSYSTEMS=="scsi", ATTRS{vendor}=="ATA?", SYMLINK+="boot_disk%n-2"
SUBSYSTEMS=="scsi", ATTRS{vendor}=="A??", SYMLINK+="boot_disk%n"
SUBSYSTEMS=="scsi", ATTRS{vendor}=="ATAS", SYMLINK+="boot_disk%n-3"
+SUBSYSTEMS=="scsi", ATTRS{vendor}=="AT?", SYMLINK+="boot_disk%n-4"
+SUBSYSTEMS=="scsi", ATTRS{vendor}=="??A", SYMLINK+="boot_disk%n-5"
EOF
},
{
desc => "label test of multiple sysfs files",
- devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda1",
- exp_name => "boot_disk1",
+ devices => [
+ {
+ devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda1",
+ exp_links => ["boot_disk1"],
+ not_exp_links => ["boot_diskX1"],
+ }],
rules => <<EOF
SUBSYSTEMS=="scsi", ATTRS{vendor}=="ATA", ATTRS{model}=="ST910021AS X ", SYMLINK+="boot_diskX%n"
SUBSYSTEMS=="scsi", ATTRS{vendor}=="ATA", ATTRS{model}=="ST910021AS", SYMLINK+="boot_disk%n"
},
{
desc => "label test of max sysfs files (skip invalid rule)",
- devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda1",
- exp_name => "boot_disk1",
+ devices => [
+ {
+ devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda1",
+ exp_links => ["boot_disk1", "boot_diskXY1"],
+ not_exp_links => ["boot_diskXX1"],
+ }],
rules => <<EOF
SUBSYSTEMS=="scsi", ATTRS{vendor}=="ATA", ATTRS{model}=="ST910021AS", ATTRS{scsi_level}=="6", ATTRS{rev}=="4.06", ATTRS{type}=="0", ATTRS{queue_depth}=="32", SYMLINK+="boot_diskXX%n"
+SUBSYSTEMS=="scsi", ATTRS{vendor}=="ATA", ATTRS{model}=="ST910021AS", ATTRS{scsi_level}=="6", ATTRS{rev}=="4.06", ATTRS{type}=="0", ATTRS{queue_depth}=="1", SYMLINK+="boot_diskXY%n"
SUBSYSTEMS=="scsi", ATTRS{vendor}=="ATA", ATTRS{model}=="ST910021AS", ATTRS{scsi_level}=="6", ATTRS{rev}=="4.06", ATTRS{type}=="0", SYMLINK+="boot_disk%n"
EOF
},
{
desc => "catch device by *",
- devpath => "/devices/pci0000:00/0000:00:1d.7/usb5/5-2/5-2:1.0/tty/ttyACM0",
- exp_name => "modem/0",
+ devices => [
+ {
+ devpath => "/devices/pci0000:00/0000:00:1d.7/usb5/5-2/5-2:1.0/tty/ttyACM0",
+ exp_links => ["modem/0", "catch-all"],
+ }],
rules => <<EOF
KERNEL=="ttyACM*", SYMLINK+="modem/%n"
+KERNEL=="*", SYMLINK+="catch-all"
EOF
},
+ # 10
{
desc => "catch device by * - take 2",
- devpath => "/devices/pci0000:00/0000:00:1d.7/usb5/5-2/5-2:1.0/tty/ttyACM0",
- exp_name => "modem/0",
+ devices => [
+ {
+ devpath => "/devices/pci0000:00/0000:00:1d.7/usb5/5-2/5-2:1.0/tty/ttyACM0",
+ exp_links => ["modem/0"],
+ not_exp_links => ["bad"],
+ }],
rules => <<EOF
KERNEL=="*ACM1", SYMLINK+="bad"
KERNEL=="*ACM0", SYMLINK+="modem/%n"
},
{
desc => "catch device by ?",
- devpath => "/devices/pci0000:00/0000:00:1d.7/usb5/5-2/5-2:1.0/tty/ttyACM0",
- exp_name => "modem/0",
+ devices => [
+ {
+ devpath => "/devices/pci0000:00/0000:00:1d.7/usb5/5-2/5-2:1.0/tty/ttyACM0",
+ exp_links => ["modem/0"],
+ not_exp_links => ["modem/0-1", "modem/0-2"],
+ }],
rules => <<EOF
KERNEL=="ttyACM??*", SYMLINK+="modem/%n-1"
KERNEL=="ttyACM??", SYMLINK+="modem/%n-2"
},
{
desc => "catch device by character class",
- devpath => "/devices/pci0000:00/0000:00:1d.7/usb5/5-2/5-2:1.0/tty/ttyACM0",
- exp_name => "modem/0",
+ devices => [
+ {
+ devpath => "/devices/pci0000:00/0000:00:1d.7/usb5/5-2/5-2:1.0/tty/ttyACM0",
+ exp_links => ["modem/0"],
+ not_exp_links => ["modem/0-1", "modem/0-2"],
+ }],
rules => <<EOF
KERNEL=="ttyACM[A-Z]*", SYMLINK+="modem/%n-1"
KERNEL=="ttyACM?[0-9]", SYMLINK+="modem/%n-2"
EOF
},
{
- desc => "replace kernel name",
- devpath => "/devices/pci0000:00/0000:00:1d.7/usb5/5-2/5-2:1.0/tty/ttyACM0",
- exp_name => "modem",
+ desc => "don't replace kernel name",
+ devices => [
+ {
+ devpath => "/devices/pci0000:00/0000:00:1d.7/usb5/5-2/5-2:1.0/tty/ttyACM0",
+ exp_links => ["modem"],
+ }],
rules => <<EOF
KERNEL=="ttyACM0", SYMLINK+="modem"
EOF
},
{
- desc => "Handle comment lines in config file (and replace kernel name)",
- devpath => "/devices/pci0000:00/0000:00:1d.7/usb5/5-2/5-2:1.0/tty/ttyACM0",
- exp_name => "modem",
+ desc => "Handle comment lines in config file (and don't replace kernel name)",
+ devices => [
+ {
+ devpath => "/devices/pci0000:00/0000:00:1d.7/usb5/5-2/5-2:1.0/tty/ttyACM0",
+ exp_links => ["modem"],
+ }],
rules => <<EOF
# this is a comment
KERNEL=="ttyACM0", SYMLINK+="modem"
EOF
},
{
- desc => "Handle comment lines in config file with whitespace (and replace kernel name)",
- devpath => "/devices/pci0000:00/0000:00:1d.7/usb5/5-2/5-2:1.0/tty/ttyACM0",
- exp_name => "modem",
+ desc => "Handle comment lines in config file with whitespace (and don't replace kernel name)",
+ devices => [
+ {
+ devpath => "/devices/pci0000:00/0000:00:1d.7/usb5/5-2/5-2:1.0/tty/ttyACM0",
+ exp_links => ["modem"],
+ }],
rules => <<EOF
# this is a comment with whitespace before the comment
KERNEL=="ttyACM0", SYMLINK+="modem"
EOF
},
{
- desc => "Handle whitespace only lines (and replace kernel name)",
- devpath => "/devices/pci0000:00/0000:00:1d.7/usb5/5-2/5-2:1.0/tty/ttyACM0",
- exp_name => "whitespace",
+ desc => "Handle whitespace only lines (and don't replace kernel name)",
+ devices => [
+ {
+ devpath => "/devices/pci0000:00/0000:00:1d.7/usb5/5-2/5-2:1.0/tty/ttyACM0",
+ exp_links => ["whitespace"],
+ }],
rules => <<EOF
EOF
},
{
- desc => "Handle empty lines in config file (and replace kernel name)",
- devpath => "/devices/pci0000:00/0000:00:1d.7/usb5/5-2/5-2:1.0/tty/ttyACM0",
- exp_name => "modem",
+ desc => "Handle empty lines in config file (and don't replace kernel name)",
+ devices => [
+ {
+ devpath => "/devices/pci0000:00/0000:00:1d.7/usb5/5-2/5-2:1.0/tty/ttyACM0",
+ exp_links => ["modem"],
+ }],
rules => <<EOF
KERNEL=="ttyACM0", SYMLINK+="modem"
EOF
},
{
- desc => "Handle backslashed multi lines in config file (and replace kernel name)",
- devpath => "/devices/pci0000:00/0000:00:1d.7/usb5/5-2/5-2:1.0/tty/ttyACM0",
- exp_name => "modem",
+ desc => "Handle backslashed multi lines in config file (and don't replace kernel name)",
+ devices => [
+ {
+ devpath => "/devices/pci0000:00/0000:00:1d.7/usb5/5-2/5-2:1.0/tty/ttyACM0",
+ exp_links => ["modem"],
+ }],
rules => <<EOF
KERNEL=="ttyACM0", \\
SYMLINK+="modem"
},
{
desc => "preserve backslashes, if they are not for a newline",
- devpath => "/devices/pci0000:00/0000:00:1d.7/usb5/5-2/5-2:1.0/tty/ttyACM0",
- exp_name => "aaa",
+ devices => [
+ {
+ devpath => "/devices/pci0000:00/0000:00:1d.7/usb5/5-2/5-2:1.0/tty/ttyACM0",
+ exp_links => ["aaa"],
+ }],
rules => <<EOF
KERNEL=="ttyACM0", PROGRAM=="/bin/echo -e \\101", RESULT=="A", SYMLINK+="aaa"
EOF
},
+ # 20
{
- desc => "Handle stupid backslashed multi lines in config file (and replace kernel name)",
- devpath => "/devices/pci0000:00/0000:00:1d.7/usb5/5-2/5-2:1.0/tty/ttyACM0",
- exp_name => "modem",
+ desc => "Handle stupid backslashed multi lines in config file (and don't replace kernel name)",
+ devices => [
+ {
+ devpath => "/devices/pci0000:00/0000:00:1d.7/usb5/5-2/5-2:1.0/tty/ttyACM0",
+ exp_links => ["modem"],
+ }],
rules => <<EOF
#
},
{
desc => "subdirectory handling",
- devpath => "/devices/pci0000:00/0000:00:1d.7/usb5/5-2/5-2:1.0/tty/ttyACM0",
- exp_name => "sub/direct/ory/modem",
+ devices => [
+ {
+ devpath => "/devices/pci0000:00/0000:00:1d.7/usb5/5-2/5-2:1.0/tty/ttyACM0",
+ exp_links => ["sub/direct/ory/modem"],
+ }],
rules => <<EOF
KERNEL=="ttyACM0", SYMLINK+="sub/direct/ory/modem"
EOF
},
{
desc => "parent device name match of scsi partition",
- devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda5",
- exp_name => "first_disk5",
+ devices => [
+ {
+ devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda5",
+ exp_links => ["first_disk5"],
+ }],
rules => <<EOF
SUBSYSTEMS=="scsi", KERNELS=="0:0:0:0", SYMLINK+="first_disk%n"
EOF
},
{
desc => "test substitution chars",
- devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda5",
- exp_name => "Major:8:minor:5:kernelnumber:5:id:0:0:0:0",
+ devices => [
+ {
+ devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda5",
+ exp_links => ["Major:8:minor:5:kernelnumber:5:id:0:0:0:0"],
+ }],
rules => <<EOF
SUBSYSTEMS=="scsi", KERNELS=="0:0:0:0", SYMLINK+="Major:%M:minor:%m:kernelnumber:%n:id:%b"
EOF
},
{
desc => "import of shell-value returned from program",
- devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda",
- exp_name => "node12345678",
+ devices => [
+ {
+ devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda",
+ exp_links => ["node12345678"],
+ }],
rules => <<EOF
SUBSYSTEMS=="scsi", IMPORT{program}="/bin/echo -e \' TEST_KEY=12345678\\n TEST_key2=98765\'", SYMLINK+="node\$env{TEST_KEY}"
KERNEL=="ttyACM0", SYMLINK+="modem"
EOF
},
{
- desc => "substitution of sysfs value (%s{file})",
- devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda",
- exp_name => "disk-ATA-sda",
+ desc => "sustitution of sysfs value (%s{file})",
+ devices => [
+ {
+ devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda",
+ exp_links => ["disk-ATA-sda"],
+ not_exp_links => ["modem"],
+ }],
rules => <<EOF
SUBSYSTEMS=="scsi", ATTRS{vendor}=="ATA", SYMLINK+="disk-%s{vendor}-%k"
KERNEL=="ttyACM0", SYMLINK+="modem"
},
{
desc => "program result substitution",
- devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda5",
- exp_name => "special-device-5",
- not_exp_name => "not",
+ devices => [
+ {
+ devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda5",
+ exp_links => ["special-device-5"],
+ not_exp_links => ["not"],
+ }],
rules => <<EOF
SUBSYSTEMS=="scsi", PROGRAM=="/bin/echo -n special-device", RESULT=="-special-*", SYMLINK+="not"
SUBSYSTEMS=="scsi", PROGRAM=="/bin/echo -n special-device", RESULT=="special-*", SYMLINK+="%c-%n"
},
{
desc => "program result substitution (newline removal)",
- devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda5",
- exp_name => "newline_removed",
+ devices => [
+ {
+ devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda5",
+ exp_links => ["newline_removed"],
+ }],
rules => <<EOF
SUBSYSTEMS=="scsi", PROGRAM=="/bin/echo test", RESULT=="test", SYMLINK+="newline_removed"
EOF
},
{
desc => "program result substitution",
- devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda5",
- exp_name => "test-0:0:0:0",
+ devices => [
+ {
+ devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda5",
+ exp_links => ["test-0:0:0:0"],
+ }],
rules => <<EOF
SUBSYSTEMS=="scsi", PROGRAM=="/bin/echo -n test-%b", RESULT=="test-0:0*", SYMLINK+="%c"
EOF
},
{
desc => "program with lots of arguments",
- devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda5",
- exp_name => "foo9",
+ devices => [
+ {
+ devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda5",
+ exp_links => ["foo9"],
+ not_exp_links => ["foo3", "foo4", "foo5", "foo6", "foo7", "foo8"],
+ }],
rules => <<EOF
SUBSYSTEMS=="scsi", PROGRAM=="/bin/echo -n foo3 foo4 foo5 foo6 foo7 foo8 foo9", KERNEL=="sda5", SYMLINK+="%c{7}"
EOF
},
{
desc => "program with subshell",
- devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda5",
- exp_name => "bar9",
+ devices => [
+ {
+ devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda5",
+ exp_links => ["bar9"],
+ not_exp_links => ["foo3", "foo4", "foo5", "foo6", "foo7", "foo8"],
+ }],
rules => <<EOF
SUBSYSTEMS=="scsi", PROGRAM=="/bin/sh -c 'echo foo3 foo4 foo5 foo6 foo7 foo8 foo9 | sed s/foo9/bar9/'", KERNEL=="sda5", SYMLINK+="%c{7}"
EOF
},
{
desc => "program arguments combined with apostrophes",
- devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda5",
- exp_name => "foo7",
+ devices => [
+ {
+ devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda5",
+ exp_links => ["foo7"],
+ not_exp_links => ["foo3", "foo4", "foo5", "foo6", "foo8"],
+ }],
rules => <<EOF
SUBSYSTEMS=="scsi", PROGRAM=="/bin/echo -n 'foo3 foo4' 'foo5 foo6 foo7 foo8'", KERNEL=="sda5", SYMLINK+="%c{5}"
EOF
},
{
desc => "program arguments combined with escaped double quotes, part 1",
- devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda5",
- exp_name => "foo2",
+ devices => [
+ {
+ devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda5",
+ exp_links => ["foo2"],
+ not_exp_links => ["foo1"],
+ }],
rules => <<EOF
SUBSYSTEMS=="scsi", PROGRAM=="/bin/sh -c 'printf %%s \\\"foo1 foo2\\\" | grep \\\"foo1 foo2\\\"'", KERNEL=="sda5", SYMLINK+="%c{2}"
EOF
},
{
desc => "program arguments combined with escaped double quotes, part 2",
- devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda5",
- exp_name => "foo2",
+ devices => [
+ {
+ devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda5",
+ exp_links => ["foo2"],
+ not_exp_links => ["foo1"],
+ }],
rules => <<EOF
SUBSYSTEMS=="scsi", PROGRAM=="/bin/sh -c \\\"printf %%s 'foo1 foo2' | grep 'foo1 foo2'\\\"", KERNEL=="sda5", SYMLINK+="%c{2}"
EOF
},
{
desc => "program arguments combined with escaped double quotes, part 3",
- devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda5",
- exp_name => "foo2",
+ devices => [
+ {
+ devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda5",
+ exp_links => ["foo2"],
+ not_exp_links => ["foo1", "foo3"],
+ }],
rules => <<EOF
SUBSYSTEMS=="scsi", PROGRAM=="/bin/sh -c 'printf \\\"%%s %%s\\\" \\\"foo1 foo2\\\" \\\"foo3\\\"| grep \\\"foo1 foo2\\\"'", KERNEL=="sda5", SYMLINK+="%c{2}"
EOF
},
{
desc => "characters before the %c{N} substitution",
- devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda5",
- exp_name => "my-foo9",
+ devices => [
+ {
+ devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda5",
+ exp_links => ["my-foo9"],
+ }],
rules => <<EOF
SUBSYSTEMS=="scsi", PROGRAM=="/bin/echo -n foo3 foo4 foo5 foo6 foo7 foo8 foo9", KERNEL=="sda5", SYMLINK+="my-%c{7}"
EOF
},
{
desc => "substitute the second to last argument",
- devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda5",
- exp_name => "my-foo8",
+ devices => [
+ {
+ devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda5",
+ exp_links => ["my-foo8"],
+ not_exp_links => ["my-foo3", "my-foo4", "my-foo5", "my-foo6", "my-foo7", "my-foo9"],
+ }],
rules => <<EOF
SUBSYSTEMS=="scsi", PROGRAM=="/bin/echo -n foo3 foo4 foo5 foo6 foo7 foo8 foo9", KERNEL=="sda5", SYMLINK+="my-%c{6}"
EOF
},
{
desc => "test substitution by variable name",
- devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda5",
- exp_name => "Major:8-minor:5-kernelnumber:5-id:0:0:0:0",
+ devices => [
+ {
+ devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda5",
+ exp_links => ["Major:8-minor:5-kernelnumber:5-id:0:0:0:0"],
+ }],
rules => <<EOF
SUBSYSTEMS=="scsi", KERNELS=="0:0:0:0", SYMLINK+="Major:\$major-minor:\$minor-kernelnumber:\$number-id:\$id"
EOF
},
{
desc => "test substitution by variable name 2",
- devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda5",
- exp_name => "Major:8-minor:5-kernelnumber:5-id:0:0:0:0",
+ devices => [
+ {
+ devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda5",
+ exp_links => ["Major:8-minor:5-kernelnumber:5-id:0:0:0:0"],
+ }],
rules => <<EOF
SUBSYSTEMS=="scsi", KERNELS=="0:0:0:0", DEVPATH=="*/sda/*", SYMLINK+="Major:\$major-minor:%m-kernelnumber:\$number-id:\$id"
EOF
},
{
desc => "test substitution by variable name 3",
- devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda5",
- exp_name => "850:0:0:05",
+ devices => [
+ {
+ devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda5",
+ exp_links => ["850:0:0:05"],
+ }],
rules => <<EOF
SUBSYSTEMS=="scsi", KERNELS=="0:0:0:0", DEVPATH=="*/sda/*", SYMLINK+="%M%m%b%n"
EOF
},
{
desc => "test substitution by variable name 4",
- devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda5",
- exp_name => "855",
+ devices => [
+ {
+ devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda5",
+ exp_links => ["855"],
+ }],
rules => <<EOF
SUBSYSTEMS=="scsi", KERNELS=="0:0:0:0", DEVPATH=="*/sda/*", SYMLINK+="\$major\$minor\$number"
EOF
},
{
desc => "test substitution by variable name 5",
- devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda5",
- exp_name => "8550:0:0:0",
+ devices => [
+ {
+ devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda5",
+ exp_links => ["8550:0:0:0"],
+ }],
rules => <<EOF
SUBSYSTEMS=="scsi", KERNELS=="0:0:0:0", DEVPATH=="*/sda/*", SYMLINK+="\$major%m%n\$id"
EOF
},
{
desc => "non matching SUBSYSTEMS for device with no parent",
- devpath => "/devices/virtual/tty/console",
- exp_name => "TTY",
+ devices => [
+ {
+ devpath => "/devices/virtual/tty/console",
+ exp_links => ["TTY"],
+ not_exp_links => ["foo"],
+ }],
rules => <<EOF
SUBSYSTEMS=="scsi", PROGRAM=="/bin/echo -n foo", RESULT=="foo", SYMLINK+="foo"
KERNEL=="console", SYMLINK+="TTY"
},
{
desc => "non matching SUBSYSTEMS",
- devpath => "/devices/virtual/tty/console",
- exp_name => "TTY",
+ devices => [
+ {
+ devpath => "/devices/virtual/tty/console",
+ exp_links => ["TTY"],
+ not_exp_links => ["foo"],
+ }],
rules => <<EOF
SUBSYSTEMS=="foo", ATTRS{dev}=="5:1", SYMLINK+="foo"
KERNEL=="console", SYMLINK+="TTY"
},
{
desc => "ATTRS match",
- devpath => "/devices/virtual/tty/console",
- exp_name => "foo",
+ devices => [
+ {
+ devpath => "/devices/virtual/tty/console",
+ exp_links => ["foo", "TTY"],
+ }],
rules => <<EOF
KERNEL=="console", SYMLINK+="TTY"
ATTRS{dev}=="5:1", SYMLINK+="foo"
},
{
desc => "ATTR (empty file)",
- devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda",
- exp_name => "empty",
+ devices => [
+ {
+ devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda",
+ exp_links => ["empty", "not-something"],
+ not_exp_links => ["something", "not-empty"],
+ }],
rules => <<EOF
KERNEL=="sda", ATTR{test_empty_file}=="?*", SYMLINK+="something"
KERNEL=="sda", ATTR{test_empty_file}!="", SYMLINK+="not-empty"
},
{
desc => "ATTR (non-existent file)",
- devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda",
- exp_name => "non-existent",
+ devices => [
+ {
+ devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda",
+ exp_links => ["non-existent", "wrong"],
+ not_exp_links => ["something", "empty", "not-empty",
+ "not-something", "something"],
+ }],
rules => <<EOF
KERNEL=="sda", ATTR{nofile}=="?*", SYMLINK+="something"
KERNEL=="sda", ATTR{nofile}!="", SYMLINK+="not-empty"
},
{
desc => "program and bus type match",
- devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda",
- exp_name => "scsi-0:0:0:0",
+ devices => [
+ {
+ devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda",
+ exp_links => ["scsi-0:0:0:0"],
+ }],
rules => <<EOF
SUBSYSTEMS=="usb", PROGRAM=="/bin/echo -n usb-%b", SYMLINK+="%c"
SUBSYSTEMS=="scsi", PROGRAM=="/bin/echo -n scsi-%b", SYMLINK+="%c"
},
{
desc => "sysfs parent hierarchy",
- devpath => "/devices/pci0000:00/0000:00:1d.7/usb5/5-2/5-2:1.0/tty/ttyACM0",
- exp_name => "modem",
+ devices => [
+ {
+ devpath => "/devices/pci0000:00/0000:00:1d.7/usb5/5-2/5-2:1.0/tty/ttyACM0",
+ exp_links => ["modem"],
+ }],
rules => <<EOF
ATTRS{idProduct}=="007b", SYMLINK+="modem"
EOF
},
{
desc => "name test with ! in the name",
- devpath => "/devices/virtual/block/fake!blockdev0",
- exp_name => "is/a/fake/blockdev0",
+ devices => [
+ {
+ devpath => "/devices/virtual/block/fake!blockdev0",
+ devnode => "fake/blockdev0",
+ exp_links => ["is/a/fake/blockdev0"],
+ not_exp_links => ["is/not/a/fake/blockdev0", "modem"],
+ }],
rules => <<EOF
SUBSYSTEMS=="scsi", SYMLINK+="is/not/a/%k"
SUBSYSTEM=="block", SYMLINK+="is/a/%k"
},
{
desc => "name test with ! in the name, but no matching rule",
- devpath => "/devices/virtual/block/fake!blockdev0",
- exp_name => "fake/blockdev0",
- exp_rem_error => "yes",
+ devices => [
+ {
+ devpath => "/devices/virtual/block/fake!blockdev0",
+ devnode => "fake/blockdev0",
+ not_exp_links => ["modem"],
+ }],
rules => <<EOF
KERNEL=="ttyACM0", SYMLINK+="modem"
EOF
},
{
desc => "KERNELS rule",
- devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda",
- exp_name => "scsi-0:0:0:0",
+ devices => [
+ {
+ devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda",
+ exp_links => ["scsi-0:0:0:0"],
+ not_exp_links => ["no-match", "short-id", "not-scsi"],
+ }],
rules => <<EOF
SUBSYSTEMS=="usb", KERNELS=="0:0:0:0", SYMLINK+="not-scsi"
SUBSYSTEMS=="scsi", KERNELS=="0:0:0:1", SYMLINK+="no-match"
},
{
desc => "KERNELS wildcard all",
- devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda",
- exp_name => "scsi-0:0:0:0",
+ devices => [
+ {
+ devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda",
+ exp_links => ["scsi-0:0:0:0"],
+ not_exp_links => ["no-match", "before"],
+ }],
rules => <<EOF
SUBSYSTEMS=="scsi", KERNELS=="*:1", SYMLINK+="no-match"
SUBSYSTEMS=="scsi", KERNELS=="*:0:1", SYMLINK+="no-match"
},
{
desc => "KERNELS wildcard partial",
- devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda",
- exp_name => "scsi-0:0:0:0",
+ devices => [
+ {
+ devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda",
+ exp_links => ["scsi-0:0:0:0", "before"],
+ }],
rules => <<EOF
SUBSYSTEMS=="scsi", KERNELS=="0:0:0:0", SYMLINK+="before"
SUBSYSTEMS=="scsi", KERNELS=="*:0", SYMLINK+="scsi-0:0:0:0"
},
{
desc => "KERNELS wildcard partial 2",
- devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda",
- exp_name => "scsi-0:0:0:0",
- rules => <<EOF
+ devices => [
+ {
+ devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda",
+ exp_links => ["scsi-0:0:0:0", "before"],
+ }],
+ rules => <<EOF
SUBSYSTEMS=="scsi", KERNELS=="0:0:0:0", SYMLINK+="before"
SUBSYSTEMS=="scsi", KERNELS=="*:0:0:0", SYMLINK+="scsi-0:0:0:0"
EOF
},
{
desc => "substitute attr with link target value (first match)",
- devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda",
- exp_name => "driver-is-sd",
+ devices => [
+ {
+ devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda",
+ exp_links => ["driver-is-sd"],
+ }],
rules => <<EOF
SUBSYSTEMS=="scsi", SYMLINK+="driver-is-\$attr{driver}"
EOF
},
{
desc => "substitute attr with link target value (currently selected device)",
- devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda",
- exp_name => "driver-is-ahci",
+ devices => [
+ {
+ devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda",
+ exp_links => ["driver-is-ahci"],
+ }],
rules => <<EOF
SUBSYSTEMS=="pci", SYMLINK+="driver-is-\$attr{driver}"
EOF
},
{
desc => "ignore ATTRS attribute whitespace",
- devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda",
- exp_name => "ignored",
+ devices => [
+ {
+ devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda",
+ exp_links => ["ignored"],
+ }],
rules => <<EOF
SUBSYSTEMS=="scsi", ATTRS{whitespace_test}=="WHITE SPACE", SYMLINK+="ignored"
EOF
},
{
desc => "do not ignore ATTRS attribute whitespace",
- devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda",
- exp_name => "matched-with-space",
+ devices => [
+ {
+ devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda",
+ exp_links => ["matched-with-space"],
+ not_exp_links => ["wrong-to-ignore"],
+ }],
rules => <<EOF
SUBSYSTEMS=="scsi", ATTRS{whitespace_test}=="WHITE SPACE ", SYMLINK+="wrong-to-ignore"
SUBSYSTEMS=="scsi", ATTRS{whitespace_test}=="WHITE SPACE ", SYMLINK+="matched-with-space"
},
{
desc => "permissions USER=bad GROUP=name",
- devpath => "/devices/virtual/tty/tty33",
- exp_name => "tty33",
- exp_perms => "0:0:0600",
+ devices => [
+ {
+ devpath => "/devices/virtual/tty/tty33",
+ exp_perms => "0:0:0600",
+ }],
rules => <<EOF
KERNEL=="tty33", OWNER="bad", GROUP="name"
EOF
},
{
desc => "permissions OWNER=1",
- devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda",
- exp_name => "node",
- exp_perms => "1::0600",
+ devices => [
+ {
+ devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda",
+ exp_links => ["node"],
+ exp_perms => "1::0600",
+ }],
rules => <<EOF
SUBSYSTEMS=="scsi", KERNEL=="sda", SYMLINK+="node", OWNER="1"
EOF
},
{
desc => "permissions GROUP=1",
- devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda",
- exp_name => "node",
- exp_perms => ":1:0660",
+ devices => [
+ {
+ devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda",
+ exp_links => ["node"],
+ exp_perms => ":1:0660",
+ }],
rules => <<EOF
SUBSYSTEMS=="scsi", KERNEL=="sda", SYMLINK+="node", GROUP="1"
EOF
},
{
desc => "textual user id",
- devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda",
- exp_name => "node",
- exp_perms => "daemon::0600",
+ devices => [
+ {
+ devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda",
+ exp_links => ["node"],
+ exp_perms => "daemon::0600",
+ }],
rules => <<EOF
SUBSYSTEMS=="scsi", KERNEL=="sda", SYMLINK+="node", OWNER="daemon"
EOF
},
{
desc => "textual group id",
- devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda",
- exp_name => "node",
- exp_perms => ":daemon:0660",
+ devices => [
+ {
+ devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda",
+ exp_links => ["node"],
+ exp_perms => ":daemon:0660",
+ }],
rules => <<EOF
SUBSYSTEMS=="scsi", KERNEL=="sda", SYMLINK+="node", GROUP="daemon"
EOF
},
{
desc => "textual user/group id",
- devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda",
- exp_name => "node",
- exp_perms => "root:audio:0660",
+ devices => [
+ {
+ devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda",
+ exp_links => ["node"],
+ exp_perms => "root:audio:0660",
+ }],
rules => <<EOF
SUBSYSTEMS=="scsi", KERNEL=="sda", SYMLINK+="node", OWNER="root", GROUP="audio"
EOF
},
{
desc => "permissions MODE=0777",
- devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda",
- exp_name => "node",
- exp_perms => "::0777",
+ devices => [
+ {
+ devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda",
+ exp_links => ["node"],
+ exp_perms => "::0777",
+ }],
rules => <<EOF
SUBSYSTEMS=="scsi", KERNEL=="sda", SYMLINK+="node", MODE="0777"
EOF
},
{
desc => "permissions OWNER=1 GROUP=1 MODE=0777",
- devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda",
- exp_name => "node",
- exp_perms => "1:1:0777",
+ devices => [
+ {
+ devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda",
+ exp_links => ["node"],
+ exp_perms => "1:1:0777",
+ }],
rules => <<EOF
SUBSYSTEMS=="scsi", KERNEL=="sda", SYMLINK+="node", OWNER="1", GROUP="1", MODE="0777"
EOF
},
{
desc => "permissions OWNER to 1",
- devpath => "/devices/pci0000:00/0000:00:1d.7/usb5/5-2/5-2:1.0/tty/ttyACM0",
- exp_name => "ttyACM0",
- exp_perms => "1::",
+ devices => [
+ {
+ devpath => "/devices/pci0000:00/0000:00:1d.7/usb5/5-2/5-2:1.0/tty/ttyACM0",
+ exp_perms => "1::",
+ }],
rules => <<EOF
KERNEL=="ttyACM[0-9]*", SYMLINK+="ttyACM%n", OWNER="1"
EOF
},
{
desc => "permissions GROUP to 1",
- devpath => "/devices/pci0000:00/0000:00:1d.7/usb5/5-2/5-2:1.0/tty/ttyACM0",
- exp_name => "ttyACM0",
- exp_perms => ":1:0660",
+ devices => [
+ {
+ devpath => "/devices/pci0000:00/0000:00:1d.7/usb5/5-2/5-2:1.0/tty/ttyACM0",
+ exp_perms => ":1:0660",
+ }],
rules => <<EOF
KERNEL=="ttyACM[0-9]*", SYMLINK+="ttyACM%n", GROUP="1"
EOF
},
{
desc => "permissions MODE to 0060",
- devpath => "/devices/pci0000:00/0000:00:1d.7/usb5/5-2/5-2:1.0/tty/ttyACM0",
- exp_name => "ttyACM0",
- exp_perms => "::0060",
+ devices => [
+ {
+ devpath => "/devices/pci0000:00/0000:00:1d.7/usb5/5-2/5-2:1.0/tty/ttyACM0",
+ exp_perms => "::0060",
+ }],
rules => <<EOF
KERNEL=="ttyACM[0-9]*", SYMLINK+="ttyACM%n", MODE="0060"
EOF
},
{
desc => "permissions OWNER, GROUP, MODE",
- devpath => "/devices/pci0000:00/0000:00:1d.7/usb5/5-2/5-2:1.0/tty/ttyACM0",
- exp_name => "ttyACM0",
- exp_perms => "1:1:0777",
+ devices => [
+ {
+ devpath => "/devices/pci0000:00/0000:00:1d.7/usb5/5-2/5-2:1.0/tty/ttyACM0",
+ exp_perms => "1:1:0777",
+ }],
rules => <<EOF
KERNEL=="ttyACM[0-9]*", SYMLINK+="ttyACM%n", OWNER="1", GROUP="1", MODE="0777"
EOF
},
{
desc => "permissions only rule",
- devpath => "/devices/pci0000:00/0000:00:1d.7/usb5/5-2/5-2:1.0/tty/ttyACM0",
- exp_name => "ttyACM0",
- exp_perms => "1:1:0777",
+ devices => [
+ {
+ devpath => "/devices/pci0000:00/0000:00:1d.7/usb5/5-2/5-2:1.0/tty/ttyACM0",
+ exp_perms => "1:1:0777",
+ }],
rules => <<EOF
KERNEL=="ttyACM[0-9]*", OWNER="1", GROUP="1", MODE="0777"
KERNEL=="ttyUSX[0-9]*", OWNER="2", GROUP="2", MODE="0444"
},
{
desc => "multiple permissions only rule",
- devpath => "/devices/pci0000:00/0000:00:1d.7/usb5/5-2/5-2:1.0/tty/ttyACM0",
- exp_name => "ttyACM0",
- exp_perms => "1:1:0777",
+ devices => [
+ {
+ devpath => "/devices/pci0000:00/0000:00:1d.7/usb5/5-2/5-2:1.0/tty/ttyACM0",
+ exp_perms => "1:1:0777",
+ }],
rules => <<EOF
SUBSYSTEM=="tty", OWNER="1"
SUBSYSTEM=="tty", GROUP="1"
},
{
desc => "permissions only rule with override at SYMLINK+ rule",
- devpath => "/devices/pci0000:00/0000:00:1d.7/usb5/5-2/5-2:1.0/tty/ttyACM0",
- exp_name => "ttyACM0",
- exp_perms => "1:2:0777",
+ devices => [
+ {
+ devpath => "/devices/pci0000:00/0000:00:1d.7/usb5/5-2/5-2:1.0/tty/ttyACM0",
+ exp_perms => "1:2:0777",
+ }],
rules => <<EOF
SUBSYSTEM=="tty", OWNER="1"
SUBSYSTEM=="tty", GROUP="1"
},
{
desc => "major/minor number test",
- devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda",
- exp_name => "node",
- exp_majorminor => "8:0",
+ devices => [
+ {
+ devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda",
+ exp_links => ["node"],
+ exp_majorminor => "8:0",
+ }],
rules => <<EOF
SUBSYSTEMS=="scsi", KERNEL=="sda", SYMLINK+="node"
EOF
},
{
desc => "big major number test",
- devpath => "/devices/virtual/misc/misc-fake1",
- exp_name => "node",
- exp_majorminor => "4095:1",
- rules => <<EOF
+ devices => [
+ {
+ devpath => "/devices/virtual/misc/misc-fake1",
+ exp_links => ["node"],
+ exp_majorminor => "4095:1",
+ }],
+ rules => <<EOF
KERNEL=="misc-fake1", SYMLINK+="node"
EOF
},
{
desc => "big major and big minor number test",
- devpath => "/devices/virtual/misc/misc-fake89999",
- exp_name => "node",
- exp_majorminor => "4095:89999",
+ devices => [
+ {
+ devpath => "/devices/virtual/misc/misc-fake89999",
+ exp_links => ["node"],
+ exp_majorminor => "4095:89999",
+ }],
rules => <<EOF
KERNEL=="misc-fake89999", SYMLINK+="node"
EOF
},
{
desc => "multiple symlinks with format char",
- devpath => "/devices/pci0000:00/0000:00:1d.7/usb5/5-2/5-2:1.0/tty/ttyACM0",
- exp_name => "symlink2-ttyACM0",
+ devices => [
+ {
+ devpath => "/devices/pci0000:00/0000:00:1d.7/usb5/5-2/5-2:1.0/tty/ttyACM0",
+ exp_links => ["symlink1-0", "symlink2-ttyACM0", "symlink3-"],
+ }],
rules => <<EOF
KERNEL=="ttyACM[0-9]*", SYMLINK="symlink1-%n symlink2-%k symlink3-%b"
EOF
},
{
desc => "multiple symlinks with a lot of s p a c e s",
- devpath => "/devices/pci0000:00/0000:00:1d.7/usb5/5-2/5-2:1.0/tty/ttyACM0",
- exp_name => "one",
- not_exp_name => " ",
+ devices => [
+ {
+ devpath => "/devices/pci0000:00/0000:00:1d.7/usb5/5-2/5-2:1.0/tty/ttyACM0",
+ exp_links => ["one", "two"],
+ not_exp_links => [" "],
+ }],
rules => <<EOF
KERNEL=="ttyACM[0-9]*", SYMLINK=" one two "
EOF
},
{
desc => "symlink with spaces in substituted variable",
- devpath => "/devices/pci0000:00/0000:00:1d.7/usb5/5-2/5-2:1.0/tty/ttyACM0",
- exp_name => "name-one_two_three-end",
- not_exp_name => " ",
+ devices => [
+ {
+ devpath => "/devices/pci0000:00/0000:00:1d.7/usb5/5-2/5-2:1.0/tty/ttyACM0",
+ exp_links => ["name-one_two_three-end"],
+ not_exp_links => [" "],
+ }],
rules => <<EOF
ENV{WITH_WS}="one two three"
SYMLINK="name-\$env{WITH_WS}-end"
},
{
desc => "symlink with leading space in substituted variable",
- devpath => "/devices/pci0000:00/0000:00:1d.7/usb5/5-2/5-2:1.0/tty/ttyACM0",
- exp_name => "name-one_two_three-end",
- not_exp_name => " ",
+ devices => [
+ {
+ devpath => "/devices/pci0000:00/0000:00:1d.7/usb5/5-2/5-2:1.0/tty/ttyACM0",
+ exp_links => ["name-one_two_three-end"],
+ not_exp_links => [" "],
+ }],
rules => <<EOF
ENV{WITH_WS}=" one two three"
SYMLINK="name-\$env{WITH_WS}-end"
},
{
desc => "symlink with trailing space in substituted variable",
- devpath => "/devices/pci0000:00/0000:00:1d.7/usb5/5-2/5-2:1.0/tty/ttyACM0",
- exp_name => "name-one_two_three-end",
- not_exp_name => " ",
+ devices => [
+ {
+ devpath => "/devices/pci0000:00/0000:00:1d.7/usb5/5-2/5-2:1.0/tty/ttyACM0",
+ exp_links => ["name-one_two_three-end"],
+ not_exp_links => [" "],
+ }],
rules => <<EOF
ENV{WITH_WS}="one two three "
SYMLINK="name-\$env{WITH_WS}-end"
},
{
desc => "symlink with lots of space in substituted variable",
- devpath => "/devices/pci0000:00/0000:00:1d.7/usb5/5-2/5-2:1.0/tty/ttyACM0",
- exp_name => "name-one_two_three-end",
- not_exp_name => " ",
+ devices => [
+ {
+ devpath => "/devices/pci0000:00/0000:00:1d.7/usb5/5-2/5-2:1.0/tty/ttyACM0",
+ exp_links => ["name-one_two_three-end"],
+ not_exp_links => [" "],
+ }],
rules => <<EOF
ENV{WITH_WS}=" one two three "
SYMLINK="name-\$env{WITH_WS}-end"
},
{
desc => "symlink with multiple spaces in substituted variable",
- devpath => "/devices/pci0000:00/0000:00:1d.7/usb5/5-2/5-2:1.0/tty/ttyACM0",
- exp_name => "name-one_two_three-end",
- not_exp_name => " ",
+ devices => [
+ {
+ devpath => "/devices/pci0000:00/0000:00:1d.7/usb5/5-2/5-2:1.0/tty/ttyACM0",
+ exp_links => ["name-one_two_three-end"],
+ not_exp_links => [" "],
+ }],
rules => <<EOF
ENV{WITH_WS}=" one two three "
SYMLINK="name-\$env{WITH_WS}-end"
EOF
},
{
- desc => "symlink with space and var with space, part 1",
- devpath => "/devices/pci0000:00/0000:00:1d.7/usb5/5-2/5-2:1.0/tty/ttyACM0",
- exp_name => "first",
- not_exp_name => " ",
- rules => <<EOF
-ENV{WITH_WS}=" one two three "
-SYMLINK=" first name-\$env{WITH_WS}-end another_symlink a b c "
-EOF
- },
- {
- desc => "symlink with space and var with space, part 2",
- devpath => "/devices/pci0000:00/0000:00:1d.7/usb5/5-2/5-2:1.0/tty/ttyACM0",
- exp_name => "name-one_two_three-end",
- not_exp_name => " ",
- rules => <<EOF
-ENV{WITH_WS}=" one two three "
-SYMLINK=" first name-\$env{WITH_WS}-end another_symlink a b c "
-EOF
- },
- {
- desc => "symlink with space and var with space, part 3",
- devpath => "/devices/pci0000:00/0000:00:1d.7/usb5/5-2/5-2:1.0/tty/ttyACM0",
- exp_name => "another_symlink",
- not_exp_name => " ",
+ desc => "symlink with space and var with space",
+ devices => [
+ {
+ devpath => "/devices/pci0000:00/0000:00:1d.7/usb5/5-2/5-2:1.0/tty/ttyACM0",
+ exp_links => ["first", "name-one_two_three-end",
+ "another_symlink", "a", "b", "c"],
+ not_exp_links => [" "],
+ }],
rules => <<EOF
ENV{WITH_WS}=" one two three "
SYMLINK=" first name-\$env{WITH_WS}-end another_symlink a b c "
},
{
desc => "symlink creation (same directory)",
- devpath => "/devices/pci0000:00/0000:00:1d.7/usb5/5-2/5-2:1.0/tty/ttyACM0",
- exp_name => "modem0",
+ devices => [
+ {
+ devpath => "/devices/pci0000:00/0000:00:1d.7/usb5/5-2/5-2:1.0/tty/ttyACM0",
+ exp_links => ["modem0"],
+ }],
rules => <<EOF
KERNEL=="ttyACM[0-9]*", SYMLINK+="ttyACM%n", SYMLINK="modem%n"
EOF
},
{
desc => "multiple symlinks",
- devpath => "/devices/pci0000:00/0000:00:1d.7/usb5/5-2/5-2:1.0/tty/ttyACM0",
- exp_name => "second-0",
+ devices => [
+ {
+ devpath => "/devices/pci0000:00/0000:00:1d.7/usb5/5-2/5-2:1.0/tty/ttyACM0",
+ exp_links => ["first-0", "second-0", "third-0"],
+ }],
rules => <<EOF
KERNEL=="ttyACM0", SYMLINK="first-%n second-%n third-%n"
EOF
},
{
desc => "symlink name '.'",
- devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda",
- exp_name => ".",
- exp_add_error => "yes",
- exp_rem_error => "yes",
+ devices => [
+ {
+ devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda",
+ exp_links => ["."],
+ exp_add_error => "yes",
+ exp_rem_error => "yes",
+ }],
rules => <<EOF
SUBSYSTEMS=="scsi", KERNEL=="sda", SYMLINK+="."
EOF
},
{
desc => "symlink node to itself",
- devpath => "/devices/virtual/tty/tty0",
- exp_name => "link",
- exp_add_error => "yes",
- exp_rem_error => "yes",
- option => "clean",
+ devices => [
+ {
+ devpath => "/devices/virtual/tty/tty0",
+ exp_links => ["link"],
+ exp_add_error => "yes",
+ exp_rem_error => "yes",
+ }],
+ option => "clean",
rules => <<EOF
KERNEL=="tty0", SYMLINK+="tty0"
EOF
},
{
desc => "symlink %n substitution",
- devpath => "/devices/pci0000:00/0000:00:1d.7/usb5/5-2/5-2:1.0/tty/ttyACM0",
- exp_name => "symlink0",
+ devices => [
+ {
+ devpath => "/devices/pci0000:00/0000:00:1d.7/usb5/5-2/5-2:1.0/tty/ttyACM0",
+ exp_links => ["symlink0"],
+ }],
rules => <<EOF
KERNEL=="ttyACM[0-9]*", SYMLINK+="ttyACM%n", SYMLINK+="symlink%n"
EOF
},
{
desc => "symlink %k substitution",
- devpath => "/devices/pci0000:00/0000:00:1d.7/usb5/5-2/5-2:1.0/tty/ttyACM0",
- exp_name => "symlink-ttyACM0",
+ devices => [
+ {
+ devpath => "/devices/pci0000:00/0000:00:1d.7/usb5/5-2/5-2:1.0/tty/ttyACM0",
+ exp_links => ["symlink-ttyACM0"],
+ }],
rules => <<EOF
KERNEL=="ttyACM[0-9]*", SYMLINK+="ttyACM%n", SYMLINK+="symlink-%k"
EOF
},
{
desc => "symlink %M:%m substitution",
- devpath => "/devices/pci0000:00/0000:00:1d.7/usb5/5-2/5-2:1.0/tty/ttyACM0",
- exp_name => "major-166:0",
+ devices => [
+ {
+ devpath => "/devices/pci0000:00/0000:00:1d.7/usb5/5-2/5-2:1.0/tty/ttyACM0",
+ exp_links => ["major-166:0"],
+ }],
rules => <<EOF
KERNEL=="ttyACM[0-9]*", SYMLINK+="ttyACM%n", SYMLINK+="major-%M:%m"
EOF
},
{
desc => "symlink %b substitution",
- devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda",
- exp_name => "symlink-0:0:0:0",
+ devices => [
+ {
+ devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda",
+ exp_links => ["symlink-0:0:0:0"],
+ }],
rules => <<EOF
SUBSYSTEMS=="scsi", KERNEL=="sda", SYMLINK+="symlink-%b"
EOF
},
{
desc => "symlink %c substitution",
- devpath => "/devices/pci0000:00/0000:00:1d.7/usb5/5-2/5-2:1.0/tty/ttyACM0",
- exp_name => "test",
+ devices => [
+ {
+ devpath => "/devices/pci0000:00/0000:00:1d.7/usb5/5-2/5-2:1.0/tty/ttyACM0",
+ exp_links => ["test"],
+ }],
rules => <<EOF
KERNEL=="ttyACM[0-9]*", PROGRAM=="/bin/echo test", SYMLINK+="%c"
EOF
},
{
desc => "symlink %c{N} substitution",
- devpath => "/devices/pci0000:00/0000:00:1d.7/usb5/5-2/5-2:1.0/tty/ttyACM0",
- exp_name => "test",
+ devices => [
+ {
+ devpath => "/devices/pci0000:00/0000:00:1d.7/usb5/5-2/5-2:1.0/tty/ttyACM0",
+ exp_links => ["test"],
+ not_exp_links => ["symlink", "this"],
+ }],
rules => <<EOF
KERNEL=="ttyACM[0-9]*", PROGRAM=="/bin/echo symlink test this", SYMLINK+="%c{2}"
EOF
},
{
desc => "symlink %c{N+} substitution",
- devpath => "/devices/pci0000:00/0000:00:1d.7/usb5/5-2/5-2:1.0/tty/ttyACM0",
- exp_name => "this",
+ devices => [
+ {
+ devpath => "/devices/pci0000:00/0000:00:1d.7/usb5/5-2/5-2:1.0/tty/ttyACM0",
+ exp_links => ["test", "this"],
+ not_exp_links => ["symlink"],
+ }],
rules => <<EOF
KERNEL=="ttyACM[0-9]*", PROGRAM=="/bin/echo symlink test this", SYMLINK+="%c{2+}"
EOF
},
{
desc => "symlink only rule with %c{N+}",
- devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda",
- exp_name => "test",
+ devices => [
+ {
+ devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda",
+ exp_links => ["test", "this"],
+ not_exp_links => ["symlink"],
+ }],
rules => <<EOF
SUBSYSTEMS=="scsi", KERNEL=="sda", PROGRAM=="/bin/echo link test this" SYMLINK+="%c{2+}"
EOF
},
{
desc => "symlink %s{filename} substitution",
- devpath => "/devices/pci0000:00/0000:00:1d.7/usb5/5-2/5-2:1.0/tty/ttyACM0",
- exp_name => "166:0",
+ devices => [
+ {
+ devpath => "/devices/pci0000:00/0000:00:1d.7/usb5/5-2/5-2:1.0/tty/ttyACM0",
+ exp_links => ["166:0"],
+ }],
rules => <<EOF
KERNEL=="ttyACM[0-9]*", SYMLINK+="%s{dev}"
EOF
},
{
desc => "program result substitution (numbered part of)",
- devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda5",
- exp_name => "link1",
+ devices => [
+ {
+ devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda5",
+ exp_links => ["link1", "link2"],
+ not_exp_links => ["node"],
+ }],
rules => <<EOF
SUBSYSTEMS=="scsi", PROGRAM=="/bin/echo -n node link1 link2", RESULT=="node *", SYMLINK+="%c{2} %c{3}"
EOF
},
{
desc => "program result substitution (numbered part of+)",
- devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda5",
- exp_name => "link4",
+ devices => [
+ {
+ devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda5",
+ exp_links => ["link1", "link2", "link3", "link4"],
+ not_exp_links => ["node"],
+ }],
rules => <<EOF
SUBSYSTEMS=="scsi", PROGRAM=="/bin/echo -n node link1 link2 link3 link4", RESULT=="node *", SYMLINK+="%c{2+}"
EOF
},
{
desc => "SUBSYSTEM match test",
- devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda",
- exp_name => "node",
+ devices => [
+ {
+ devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda",
+ exp_links => ["node"],
+ not_exp_links => ["should_not_match", "should_not_match2"],
+ }],
rules => <<EOF
SUBSYSTEMS=="scsi", KERNEL=="sda", SYMLINK+="should_not_match", SUBSYSTEM=="vc"
SUBSYSTEMS=="scsi", KERNEL=="sda", SYMLINK+="node", SUBSYSTEM=="block"
},
{
desc => "DRIVERS match test",
- devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda",
- exp_name => "node",
+ devices => [
+ {
+ devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda",
+ exp_links => ["node"],
+ not_exp_links => ["should_not_match"]
+ }],
rules => <<EOF
SUBSYSTEMS=="scsi", KERNEL=="sda", SYMLINK+="should_not_match", DRIVERS=="sd-wrong"
SUBSYSTEMS=="scsi", KERNEL=="sda", SYMLINK+="node", DRIVERS=="sd"
},
{
desc => "devnode substitution test",
- devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda",
- exp_name => "node",
+ devices => [
+ {
+ devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda",
+ exp_links => ["node"],
+ }],
rules => <<EOF
SUBSYSTEMS=="scsi", KERNEL=="sda", PROGRAM=="/usr/bin/test -b %N" SYMLINK+="node"
EOF
},
{
desc => "parent node name substitution test",
- devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda1",
- exp_name => "sda-part-1",
+ devices => [
+ {
+ devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda1",
+ exp_links => ["sda-part-1"],
+ }],
rules => <<EOF
-SUBSYSTEMS=="scsi", KERNEL=="sda1", SYMLINK+="%P-part-1"
+SUBSYSTEMS=="scsi", KERNEL=="sda1", SYMLINK+="%P-part-%n"
EOF
},
{
desc => "udev_root substitution",
- devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda1",
- exp_name => "start-/dev-end",
+ devices => [
+ {
+ devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda1",
+ exp_links => ["start-/dev-end"],
+ }],
rules => <<EOF
SUBSYSTEMS=="scsi", KERNEL=="sda1", SYMLINK+="start-%r-end"
EOF
},
{
+ # This is not supported any more
desc => "last_rule option",
- devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda1",
- exp_name => "last",
+ devices => [
+ {
+ devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda1",
+ exp_links => ["last"],
+ not_exp_links => ["very-last"],
+ exp_nodev_error => "yes",
+ }],
rules => <<EOF
SUBSYSTEMS=="scsi", KERNEL=="sda1", SYMLINK+="last", OPTIONS="last_rule"
SUBSYSTEMS=="scsi", KERNEL=="sda1", SYMLINK+="very-last"
},
{
desc => "negation KERNEL!=",
- devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda1",
- exp_name => "match",
+ devices => [
+ {
+ devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda1",
+ exp_links => ["match", "before"],
+ not_exp_links => ["matches-but-is-negated"],
+ }],
rules => <<EOF
SUBSYSTEMS=="scsi", KERNEL!="sda1", SYMLINK+="matches-but-is-negated"
SUBSYSTEMS=="scsi", KERNEL=="sda1", SYMLINK+="before"
},
{
desc => "negation SUBSYSTEM!=",
- devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda1",
- exp_name => "not-anything",
+ devices => [
+ {
+ devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda1",
+ exp_links => ["before", "not-anything"],
+ not_exp_links => ["matches-but-is-negated"],
+ }],
rules => <<EOF
SUBSYSTEMS=="scsi", SUBSYSTEM=="block", KERNEL!="sda1", SYMLINK+="matches-but-is-negated"
SUBSYSTEMS=="scsi", KERNEL=="sda1", SYMLINK+="before"
},
{
desc => "negation PROGRAM!= exit code",
- devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda1",
- exp_name => "nonzero-program",
+ devices => [
+ {
+ devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda1",
+ exp_links => ["before", "nonzero-program"],
+ }],
rules => <<EOF
SUBSYSTEMS=="scsi", KERNEL=="sda1", SYMLINK+="before"
KERNEL=="sda1", PROGRAM!="/bin/false", SYMLINK+="nonzero-program"
},
{
desc => "ENV{} test",
- devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda1",
- exp_name => "true",
+ devices => [
+ {
+ devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda1",
+ exp_links => ["true"],
+ not_exp_links => ["bad", "wrong"],
+ }],
rules => <<EOF
ENV{ENV_KEY_TEST}="test"
SUBSYSTEMS=="scsi", KERNEL=="sda1", ENV{ENV_KEY_TEST}=="go", SYMLINK+="wrong"
},
{
desc => "ENV{} test",
- devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda1",
- exp_name => "true",
+ devices => [
+ {
+ devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda1",
+ exp_links => ["true"],
+ not_exp_links => ["bad", "wrong", "no"],
+ }],
rules => <<EOF
ENV{ENV_KEY_TEST}="test"
SUBSYSTEMS=="scsi", KERNEL=="sda1", ENV{ENV_KEY_TEST}=="go", SYMLINK+="wrong"
},
{
desc => "ENV{} test (assign)",
- devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda1",
- exp_name => "true",
+ devices => [
+ {
+ devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda1",
+ exp_links => ["true", "before"],
+ not_exp_links => ["no"],
+ }],
rules => <<EOF
SUBSYSTEMS=="scsi", KERNEL=="sda1", ENV{ASSIGN}="true"
SUBSYSTEMS=="scsi", KERNEL=="sda1", ENV{ASSIGN}=="yes", SYMLINK+="no"
},
{
desc => "ENV{} test (assign 2 times)",
- devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda1",
- exp_name => "true",
+ devices => [
+ {
+ devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda1",
+ exp_links => ["true", "before"],
+ not_exp_links => ["no", "bad"],
+ }],
rules => <<EOF
SUBSYSTEMS=="scsi", KERNEL=="sda1", ENV{ASSIGN}="true"
SUBSYSTEMS=="scsi", KERNEL=="sda1", ENV{ASSIGN}="absolutely-\$env{ASSIGN}"
SUBSYSTEMS=="scsi", KERNEL=="sda1", SYMLINK+="before"
SUBSYSTEMS=="scsi", KERNEL=="sda1", ENV{ASSIGN}=="yes", SYMLINK+="no"
+SUBSYSTEMS=="scsi", KERNEL=="sda1", ENV{ASSIGN}=="true", SYMLINK+="bad"
SUBSYSTEMS=="scsi", KERNEL=="sda1", ENV{ASSIGN}=="absolutely-true", SYMLINK+="true"
EOF
},
{
desc => "ENV{} test (assign2)",
- devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda1",
- exp_name => "part",
+ devices => [
+ {
+ devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda1",
+ exp_links => ["part"],
+ not_exp_links => ["disk"],
+ },
+ {
+ devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda",
+ exp_links => ["disk"],
+ not_exp_links => ["part"],
+ },
+ ],
rules => <<EOF
SUBSYSTEM=="block", KERNEL=="*[0-9]", ENV{PARTITION}="true", ENV{MAINDEVICE}="false"
SUBSYSTEM=="block", KERNEL=="*[!0-9]", ENV{PARTITION}="false", ENV{MAINDEVICE}="true"
},
{
desc => "untrusted string sanitize",
- devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda1",
- exp_name => "sane",
+ devices => [
+ {
+ devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda1",
+ exp_links => ["sane"],
+ }],
rules => <<EOF
SUBSYSTEMS=="scsi", KERNEL=="sda1", PROGRAM=="/bin/echo -e name; (/usr/bin/badprogram)", RESULT=="name_ _/usr/bin/badprogram_", SYMLINK+="sane"
EOF
},
{
desc => "untrusted string sanitize (don't replace utf8)",
- devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda1",
- exp_name => "uber",
+ devices => [
+ {
+ devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda1",
+ exp_links => ["uber"],
+ }],
rules => <<EOF
SUBSYSTEMS=="scsi", KERNEL=="sda1", PROGRAM=="/bin/echo -e \\xc3\\xbcber" RESULT=="\xc3\xbcber", SYMLINK+="uber"
EOF
},
{
desc => "untrusted string sanitize (replace invalid utf8)",
- devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda1",
- exp_name => "replaced",
+ devices => [
+ {
+ devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda1",
+ exp_links => ["replaced"],
+ }],
rules => <<EOF
SUBSYSTEMS=="scsi", KERNEL=="sda1", PROGRAM=="/bin/echo -e \\xef\\xe8garbage", RESULT=="__garbage", SYMLINK+="replaced"
EOF
},
{
desc => "read sysfs value from parent device",
- devpath => "/devices/pci0000:00/0000:00:1d.7/usb5/5-2/5-2:1.0/tty/ttyACM0",
- exp_name => "serial-354172020305000",
+ devices => [
+ {
+ devpath => "/devices/pci0000:00/0000:00:1d.7/usb5/5-2/5-2:1.0/tty/ttyACM0",
+ exp_links => ["serial-354172020305000"],
+ }],
rules => <<EOF
KERNEL=="ttyACM*", ATTRS{serial}=="?*", SYMLINK+="serial-%s{serial}"
EOF
},
{
desc => "match against empty key string",
- devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda",
- exp_name => "ok",
+ devices => [
+ {
+ devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda",
+ exp_links => ["ok"],
+ not_exp_links => ["not-1-ok", "not-2-ok", "not-3-ok"],
+ }],
rules => <<EOF
KERNEL=="sda", ATTRS{nothing}!="", SYMLINK+="not-1-ok"
KERNEL=="sda", ATTRS{nothing}=="", SYMLINK+="not-2-ok"
},
{
desc => "check ACTION value",
- devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda",
- exp_name => "ok",
+ devices => [
+ {
+ devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda",
+ exp_links => ["ok"],
+ not_exp_links => ["unknown-not-ok"],
+ }],
rules => <<EOF
ACTION=="unknown", KERNEL=="sda", SYMLINK+="unknown-not-ok"
ACTION=="add", KERNEL=="sda", SYMLINK+="ok"
},
{
desc => "final assignment",
- devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda",
- exp_name => "ok",
- exp_perms => "root:tty:0640",
+ devices => [
+ {
+ devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda",
+ exp_links => ["ok"],
+ exp_perms => "root:tty:0640",
+ }],
rules => <<EOF
KERNEL=="sda", GROUP:="tty"
-KERNEL=="sda", GROUP="not-ok", MODE="0640", SYMLINK+="ok"
+KERNEL=="sda", GROUP="root", MODE="0640", SYMLINK+="ok"
EOF
},
{
desc => "final assignment 2",
- devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda",
- exp_name => "ok",
- exp_perms => "root:tty:0640",
+ devices => [
+ {
+ devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda",
+ exp_links => ["ok"],
+ exp_perms => "root:tty:0640",
+ }],
rules => <<EOF
KERNEL=="sda", GROUP:="tty"
SUBSYSTEM=="block", MODE:="640"
-KERNEL=="sda", GROUP="not-ok", MODE="0666", SYMLINK+="ok"
+KERNEL=="sda", GROUP="root", MODE="0666", SYMLINK+="ok"
EOF
},
{
desc => "env substitution",
- devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda",
- exp_name => "node-add-me",
+ devices => [
+ {
+ devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda",
+ exp_links => ["node-add-me"],
+ }],
rules => <<EOF
KERNEL=="sda", MODE="0666", SYMLINK+="node-\$env{ACTION}-me"
EOF
},
{
desc => "reset list to current value",
- devpath => "/devices/pci0000:00/0000:00:1d.7/usb5/5-2/5-2:1.0/tty/ttyACM0",
- exp_name => "three",
- not_exp_name => "two",
+ devices => [
+ {
+ devpath => "/devices/pci0000:00/0000:00:1d.7/usb5/5-2/5-2:1.0/tty/ttyACM0",
+ exp_links => ["three"],
+ not_exp_links => ["two", "one"],
+ }],
rules => <<EOF
KERNEL=="ttyACM[0-9]*", SYMLINK+="one"
KERNEL=="ttyACM[0-9]*", SYMLINK+="two"
},
{
desc => "test empty SYMLINK+ (empty override)",
- devpath => "/devices/pci0000:00/0000:00:1d.7/usb5/5-2/5-2:1.0/tty/ttyACM0",
- exp_name => "right",
- not_exp_name => "wrong",
+ devices => [
+ {
+ devpath => "/devices/pci0000:00/0000:00:1d.7/usb5/5-2/5-2:1.0/tty/ttyACM0",
+ exp_links => ["right"],
+ not_exp_links => ["wrong"],
+ }],
rules => <<EOF
KERNEL=="ttyACM[0-9]*", SYMLINK+="wrong"
KERNEL=="ttyACM[0-9]*", SYMLINK=""
},
{
desc => "test multi matches",
- devpath => "/devices/pci0000:00/0000:00:1d.7/usb5/5-2/5-2:1.0/tty/ttyACM0",
- exp_name => "right",
+ devices => [
+ {
+ devpath => "/devices/pci0000:00/0000:00:1d.7/usb5/5-2/5-2:1.0/tty/ttyACM0",
+ exp_links => ["right", "before"],
+ }],
rules => <<EOF
KERNEL=="ttyACM*", SYMLINK+="before"
KERNEL=="ttyACM*|nothing", SYMLINK+="right"
},
{
desc => "test multi matches 2",
- devpath => "/devices/pci0000:00/0000:00:1d.7/usb5/5-2/5-2:1.0/tty/ttyACM0",
- exp_name => "right",
+ devices => [
+ {
+ devpath => "/devices/pci0000:00/0000:00:1d.7/usb5/5-2/5-2:1.0/tty/ttyACM0",
+ exp_links => ["right", "before"],
+ not_exp_links => ["nomatch"],
+ }],
rules => <<EOF
KERNEL=="dontknow*|*nothing", SYMLINK+="nomatch"
KERNEL=="ttyACM*", SYMLINK+="before"
},
{
desc => "test multi matches 3",
- devpath => "/devices/pci0000:00/0000:00:1d.7/usb5/5-2/5-2:1.0/tty/ttyACM0",
- exp_name => "right",
+ devices => [
+ {
+ devpath => "/devices/pci0000:00/0000:00:1d.7/usb5/5-2/5-2:1.0/tty/ttyACM0",
+ exp_links => ["right"],
+ not_exp_links => ["nomatch", "wrong1", "wrong2"],
+ }],
rules => <<EOF
KERNEL=="dontknow|nothing", SYMLINK+="nomatch"
KERNEL=="dontknow|ttyACM0a|nothing|attyACM0", SYMLINK+="wrong1"
},
{
desc => "test multi matches 4",
- devpath => "/devices/pci0000:00/0000:00:1d.7/usb5/5-2/5-2:1.0/tty/ttyACM0",
- exp_name => "right",
+ devices => [
+ {
+ devpath => "/devices/pci0000:00/0000:00:1d.7/usb5/5-2/5-2:1.0/tty/ttyACM0",
+ exp_links => ["right"],
+ not_exp_links => ["nomatch", "wrong1", "wrong2", "wrong3"],
+ }],
rules => <<EOF
KERNEL=="dontknow|nothing", SYMLINK+="nomatch"
KERNEL=="dontknow|ttyACM0a|nothing|attyACM0", SYMLINK+="wrong1"
EOF
},
{
- desc => "test multi matches 5",
- devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda",
- exp_name => "found",
- not_exp_name => "bad",
+ desc => "test multi matches 5",
+ devices => [
+ {
+ devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda",
+ exp_links => ["found"],
+ not_exp_name => "bad",
+ }],
rules => <<EOF
KERNEL=="sda", TAG="foo"
TAGS=="|foo", SYMLINK+="found"
},
{
desc => "test multi matches 6",
- devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda",
- exp_name => "found",
- not_exp_name => "bad",
+ devices => [
+ {
+ devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda",
+ exp_links => ["found"],
+ not_exp_name => "bad",
+ }],
rules => <<EOF
KERNEL=="sda", TAG=""
TAGS=="|foo", SYMLINK+="found"
},
{
desc => "test multi matches 7",
- devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda",
- exp_name => "found",
- not_exp_name => "bad",
+ devices => [
+ {
+ devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda",
+ exp_links => ["found"],
+ not_exp_name => "bad",
+ }],
rules => <<EOF
KERNEL=="sda", TAG="foo"
TAGS=="foo||bar", SYMLINK+="found"
},
{
desc => "test multi matches 8",
- devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda",
- exp_name => "found",
- not_exp_name => "bad",
+ devices => [
+ {
+ devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda",
+ exp_links => ["found"],
+ not_exp_name => "bad",
+ }],
rules => <<EOF
KERNEL=="sda", TAG=""
TAGS=="foo||bar", SYMLINK+="found"
},
{
desc => "test multi matches 9",
- devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda",
- exp_name => "found",
- not_exp_name => "bad",
+ devices => [
+ {
+ devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda",
+ exp_links => ["found"],
+ not_exp_name => "bad",
+ }],
rules => <<EOF
KERNEL=="sda", TAG="foo"
TAGS=="foo|", SYMLINK+="found"
},
{
desc => "test multi matches 10",
- devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda",
- exp_name => "found",
- not_exp_name => "bad",
+ devices => [
+ {
+ devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda",
+ exp_links => ["found"],
+ not_exp_name => "bad",
+ }],
rules => <<EOF
KERNEL=="sda", TAG=""
TAGS=="foo|", SYMLINK+="found"
},
{
desc => "test multi matches 11",
- devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda",
- exp_name => "found",
- not_exp_name => "bad",
+ devices => [
+ {
+ devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda",
+ exp_links => ["found"],
+ not_exp_name => "bad",
+ }],
rules => <<EOF
KERNEL=="sda", TAG="c"
TAGS=="foo||bar||c", SYMLINK+="found"
EOF
},
{
- desc => "IMPORT parent test sequence 1/2 (keep)",
- devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda",
- exp_name => "parent",
- option => "keep",
+ desc => "IMPORT parent test",
+ devices => [
+ {
+ devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda",
+ exp_links => ["parent"],
+ },
+ {
+ devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda1",
+ exp_links => ["parentenv-parent_right"],
+ }],
+ sleep_us => 500000, # Serialized! We need to sleep here after adding sda
rules => <<EOF
+KERNEL=="sda1", IMPORT{parent}="PARENT*", SYMLINK+="parentenv-\$env{PARENT_KEY}\$env{WRONG_PARENT_KEY}"
KERNEL=="sda", IMPORT{program}="/bin/echo -e \'PARENT_KEY=parent_right\\nWRONG_PARENT_KEY=parent_wrong'"
KERNEL=="sda", SYMLINK+="parent"
-EOF
- },
- {
- desc => "IMPORT parent test sequence 2/2 (keep)",
- devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda1",
- exp_name => "parentenv-parent_right",
- option => "clean",
- rules => <<EOF
-KERNEL=="sda1", IMPORT{parent}="PARENT*", SYMLINK+="parentenv-\$env{PARENT_KEY}\$env{WRONG_PARENT_KEY}"
EOF
},
{
desc => "GOTO test",
- devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda1",
- exp_name => "right",
+ devices => [
+ {
+ devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda1",
+ exp_links => ["right"],
+ not_exp_test => ["wrong", "wrong2"],
+ }],
rules => <<EOF
KERNEL=="sda1", GOTO="TEST"
KERNEL=="sda1", SYMLINK+="wrong"
},
{
desc => "GOTO label does not exist",
- devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda1",
- exp_name => "right",
+ devices => [
+ {
+ devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda1",
+ exp_links => ["right"],
+ }],
rules => <<EOF
KERNEL=="sda1", GOTO="does-not-exist"
KERNEL=="sda1", SYMLINK+="right",
},
{
desc => "SYMLINK+ compare test",
- devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda1",
- exp_name => "right",
- not_exp_name => "wrong",
+ devices => [
+ {
+ devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda1",
+ exp_links => ["right", "link"],
+ not_exp_links => ["wrong"],
+ }],
rules => <<EOF
KERNEL=="sda1", SYMLINK+="link"
KERNEL=="sda1", SYMLINK=="link*", SYMLINK+="right"
},
{
desc => "invalid key operation",
- devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda1",
- exp_name => "yes",
+ devices => [
+ {
+ devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda1",
+ exp_links => ["yes"],
+ not_exp_links => ["no"],
+ }],
rules => <<EOF
KERNEL="sda1", SYMLINK+="no"
KERNEL=="sda1", SYMLINK+="yes"
},
{
desc => "operator chars in attribute",
- devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda",
- exp_name => "yes",
+ devices => [
+ {
+ devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda",
+ exp_links => ["yes"],
+ }],
rules => <<EOF
KERNEL=="sda", ATTR{test:colon+plus}=="?*", SYMLINK+="yes"
EOF
},
{
desc => "overlong comment line",
- devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda1",
- exp_name => "yes",
+ devices => [
+ {
+ devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda1",
+ exp_links => ["yes"],
+ not_exp_links => ["no"],
+ }],
rules => <<EOF
# 012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789
# 012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789
},
{
desc => "magic subsys/kernel lookup",
- devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda",
- exp_name => "00:16:41:e2:8d:ff",
+ devices => [
+ {
+ devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda",
+ exp_links => ["00:16:41:e2:8d:ff"],
+ }],
rules => <<EOF
KERNEL=="sda", SYMLINK+="\$attr{[net/eth0]address}"
EOF
},
{
desc => "TEST absolute path",
- devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda",
- exp_name => "there",
+ devices => [
+ {
+ devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda",
+ exp_links => ["there"],
+ not_exp_links => ["notthere"],
+ }],
rules => <<EOF
TEST=="/etc/machine-id", SYMLINK+="there"
TEST!="/etc/machine-id", SYMLINK+="notthere"
},
{
desc => "TEST subsys/kernel lookup",
- devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda",
- exp_name => "yes",
+ devices => [
+ {
+ devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda",
+ exp_links => ["yes"],
+ }],
rules => <<EOF
KERNEL=="sda", TEST=="[net/eth0]", SYMLINK+="yes"
EOF
},
{
desc => "TEST relative path",
- devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda",
- exp_name => "relative",
+ devices => [
+ {
+ devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda",
+ exp_links => ["relative"],
+ }],
rules => <<EOF
KERNEL=="sda", TEST=="size", SYMLINK+="relative"
EOF
},
{
desc => "TEST wildcard substitution (find queue/nr_requests)",
- devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda",
- exp_name => "found-subdir",
+ devices => [
+ {
+ devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda",
+ exp_links => ["found-subdir"],
+ }],
rules => <<EOF
KERNEL=="sda", TEST=="*/nr_requests", SYMLINK+="found-subdir"
EOF
},
{
desc => "TEST MODE=0000",
- devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda",
- exp_name => "sda",
- exp_perms => "0:0:0000",
- exp_rem_error => "yes",
+ devices => [
+ {
+ devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda",
+ exp_perms => "0:0:0000",
+ exp_rem_error => "yes",
+ }],
rules => <<EOF
KERNEL=="sda", MODE="0000"
EOF
},
{
desc => "TEST PROGRAM feeds OWNER, GROUP, MODE",
- devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda",
- exp_name => "sda",
- exp_perms => "1:1:0400",
- exp_rem_error => "yes",
+ devices => [
+ {
+ devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda",
+ exp_perms => "1:1:0400",
+ }],
rules => <<EOF
KERNEL=="sda", MODE="666"
KERNEL=="sda", PROGRAM=="/bin/echo 1 1 0400", OWNER="%c{1}", GROUP="%c{2}", MODE="%c{3}"
},
{
desc => "TEST PROGRAM feeds MODE with overflow",
- devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda",
- exp_name => "sda",
- exp_perms => "0:0:0440",
- exp_rem_error => "yes",
+ devices => [
+ {
+ devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda",
+ exp_perms => "0:0:0440",
+ exp_rem_error => "yes",
+ }],
rules => <<EOF
KERNEL=="sda", MODE="440"
KERNEL=="sda", PROGRAM=="/bin/echo 0 0 0400letsdoabuffferoverflow0123456789012345789012345678901234567890", OWNER="%c{1}", GROUP="%c{2}", MODE="%c{3}"
},
{
desc => "magic [subsys/sysname] attribute substitution",
- devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda",
- exp_name => "sda-8741C4G-end",
- exp_perms => "0:0:0600",
+ devices => [
+ {
+ devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda",
+ exp_links => ["sda-8741C4G-end"],
+ exp_perms => "0:0:0600",
+ }],
rules => <<EOF
-KERNEL=="sda", PROGRAM="/bin/true create-envp"
-KERNEL=="sda", ENV{TESTENV}="change-envp"
KERNEL=="sda", SYMLINK+="%k-%s{[dmi/id]product_name}-end"
EOF
},
{
desc => "builtin path_id",
- devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda",
- exp_name => "disk/by-path/pci-0000:00:1f.2-scsi-0:0:0:0",
+ devices => [
+ {
+ devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda",
+ exp_links => ["disk/by-path/pci-0000:00:1f.2-scsi-0:0:0:0"],
+ }],
rules => <<EOF
KERNEL=="sda", IMPORT{builtin}="path_id"
KERNEL=="sda", ENV{ID_PATH}=="?*", SYMLINK+="disk/by-path/\$env{ID_PATH}"
},
{
desc => "add and match tag",
- devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda",
- exp_name => "found",
- not_exp_name => "bad",
+ devices => [
+ {
+ devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda",
+ exp_links => ["found"],
+ not_exp_links => ["bad"],
+ }],
rules => <<EOF
SUBSYSTEMS=="scsi", ATTRS{vendor}=="ATA", TAG+="green"
TAGS=="green", SYMLINK+="found"
},
{
desc => "don't crash with lots of tags",
- devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda",
- exp_name => "found",
+ devices => [
+ {
+ devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda",
+ exp_links => ["found"],
+ }],
rules => $rules_10k_tags . <<EOF
TAGS=="test1", TAGS=="test500", TAGS=="test1234", TAGS=="test9999", TAGS=="test10000", SYMLINK+="found"
EOF
},
{
desc => "continuations",
- devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda",
- exp_name => "found",
- not_exp_name => "bad",
+ devices => [
+ {
+ devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda",
+ exp_links => ["found"],
+ not_exp_name => "bad",
+ }],
rules => $rules_10k_tags_continuation . <<EOF
TAGS=="test1", TAGS=="test500", TAGS=="test1234", TAGS=="test9999", TAGS=="test10000", SYMLINK+="bad"
KERNEL=="sda",\\
},
{
desc => "continuations with empty line",
- devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda",
- exp_name => "found",
- not_exp_name => "bad",
+ devices => [
+ {
+ devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda",
+ exp_links => ["found"],
+ not_exp_name => "bad",
+
+ }],
rules => <<EOF
# empty line finishes continuation
KERNEL=="sda", TAG+="foo" \\
KERNEL=="sdb", TAG+="bbb"
TAGS=="foo", SYMLINK+="found"
TAGS=="aaa", SYMLINK+="bad"
-EOF
+ EOF
},
{
desc => "continuations with white only line",
- devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda",
- exp_name => "found",
- not_exp_name => "bad",
+ devices => [
+ {
+ devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda",
+ exp_links => ["found"],
+ not_exp_name => "bad",
+ }],
rules => <<EOF
# space only line finishes continuation
KERNEL=="sda", TAG+="foo" \\
TAGS=="aaa", SYMLINK+="bad"
EOF
},
+ {
+ desc => "multiple devices",
+ devices => [
+ {
+ devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda1",
+ exp_links => ["part-1"],
+ },
+ {
+ devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda5",
+ exp_links => ["part-5"],
+ },
+ {
+ devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda6",
+ exp_links => ["part-6"],
+ },
+ {
+ devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda7",
+ exp_links => ["part-7"],
+ },
+ {
+ devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda8",
+ exp_links => ["part-8"],
+ },
+ {
+ devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda9",
+ exp_links => ["part-9"],
+ },
+ {
+ devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda10",
+ exp_links => ["part-10"],
+ },
+ ],
+ rules => <<EOF
+SUBSYSTEM=="block", SUBSYSTEMS=="scsi", KERNEL=="sda?*", ENV{DEVTYPE}=="partition", SYMLINK+="part-%n"
+EOF
+ },
+ {
+ desc => "multiple devices, same link name, positive prio",
+ repeat => 100,
+ devices => [
+ {
+ devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda1",
+ exp_links => ["part-1"],
+ not_exp_links => ["partition"],
+ },
+ {
+ devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda5",
+ exp_links => ["part-5"],
+ not_exp_links => ["partition"],
+ },
+ {
+ devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda6",
+ not_exp_links => ["partition"],
+ exp_links => ["part-6"],
+ },
+ {
+ devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda7",
+ exp_links => ["part-7", "partition"],
+ },
+ {
+ devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda8",
+ not_exp_links => ["partition"],
+ exp_links => ["part-8"],
+ },
+ {
+ devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda9",
+ not_exp_links => ["partition"],
+ exp_links => ["part-9"],
+ },
+ {
+ devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda10",
+ not_exp_links => ["partition"],
+ exp_links => ["part-10"],
+ },
+ ],
+ rules => <<EOF
+SUBSYSTEM=="block", SUBSYSTEMS=="scsi", KERNEL=="sda?*", ENV{DEVTYPE}=="partition", SYMLINK+="part-%n"
+SUBSYSTEM=="block", SUBSYSTEMS=="scsi", KERNEL=="sda?*", ENV{DEVTYPE}=="partition", SYMLINK+="partition"
+KERNEL=="*7", OPTIONS+="link_priority=10"
+EOF
+ },
+ {
+ desc => "multiple devices, same link name, negative prio",
+ devices => [
+ {
+ devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda1",
+ exp_links => ["part-1"],
+ not_exp_links => ["partition"],
+ },
+ {
+ devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda5",
+ exp_links => ["part-5"],
+ not_exp_links => ["partition"],
+ },
+ {
+ devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda6",
+ not_exp_links => ["partition"],
+ exp_links => ["part-6"],
+ },
+ {
+ devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda7",
+ exp_links => ["part-7", "partition"],
+ },
+ {
+ devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda8",
+ not_exp_links => ["partition"],
+ exp_links => ["part-8"],
+ },
+ {
+ devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda9",
+ not_exp_links => ["partition"],
+ exp_links => ["part-9"],
+ },
+ {
+ devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda10",
+ not_exp_links => ["partition"],
+ exp_links => ["part-10"],
+ },
+ ],
+ rules => <<EOF
+SUBSYSTEM=="block", SUBSYSTEMS=="scsi", KERNEL=="sda?*", ENV{DEVTYPE}=="partition", SYMLINK+="part-%n"
+SUBSYSTEM=="block", SUBSYSTEMS=="scsi", KERNEL=="sda?*", ENV{DEVTYPE}=="partition", SYMLINK+="partition"
+KERNEL!="*7", OPTIONS+="link_priority=-10"
+EOF
+ },
+ {
+ desc => "multiple devices, same link name, positive prio, sleep",
+ devices => [
+ {
+ devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda1",
+ exp_links => ["part-1"],
+ not_exp_links => ["partition"],
+ },
+ {
+ devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda5",
+ exp_links => ["part-5"],
+ not_exp_links => ["partition"],
+ },
+ {
+ devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda6",
+ not_exp_links => ["partition"],
+ exp_links => ["part-6"],
+ },
+ {
+ devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda7",
+ exp_links => ["part-7", "partition"],
+ },
+ {
+ devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda8",
+ not_exp_links => ["partition"],
+ exp_links => ["part-8"],
+ },
+ {
+ devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda9",
+ not_exp_links => ["partition"],
+ exp_links => ["part-9"],
+ },
+ {
+ devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda10",
+ not_exp_links => ["partition"],
+ exp_links => ["part-10"],
+ },
+ ],
+ sleep_us => 10000,
+ rules => <<EOF
+SUBSYSTEM=="block", SUBSYSTEMS=="scsi", KERNEL=="sda?*", ENV{DEVTYPE}=="partition", SYMLINK+="part-%n"
+SUBSYSTEM=="block", SUBSYSTEMS=="scsi", KERNEL=="sda?*", ENV{DEVTYPE}=="partition", SYMLINK+="partition"
+KERNEL=="*7", OPTIONS+="link_priority=10"
+EOF
+ },
+ {
+ desc => 'all_block_devs',
+ generator => expect_for_some("\\/sda6\$", ["blockdev"]),
+ repeat => 10,
+ rules => <<EOF
+SUBSYSTEM=="block", SUBSYSTEMS=="scsi", KERNEL=="sd*", SYMLINK+="blockdev"
+KERNEL=="sda6", OPTIONS+="link_priority=10"
+EOF
+ }
);
-sub udev {
- my ($action, $devpath, $rules) = @_;
+sub create_rules {
+ my ($rules) = @_;
# create temporary rules
system("mkdir", "-p", "$udev_rules_dir");
open CONF, ">$udev_rules" || die "unable to create rules file: $udev_rules";
print CONF $$rules;
close CONF;
+}
+
+sub udev {
+ my ($action, $devpath) = @_;
if ($valgrind > 0) {
return system("$udev_bin_valgrind $action $devpath");
}
my $error = 0;
+my $good = 0;
+my $exp_good = 0;
sub permissions_test {
my($rules, $uid, $gid, $mode) = @_;
}
if ($wrong == 0) {
print "permissions: ok\n";
+ $good++;
} else {
printf " expected permissions are: %s:%s:%#o\n", $1, $2, oct($3);
printf " created permissions are : %i:%i:%#o\n", $uid, $gid, $mode & 07777;
}
if ($wrong == 0) {
print "major:minor: ok\n";
+ $good++;
} else {
printf " expected major:minor is: %i:%i\n", $1, $2;
printf " created major:minor is : %i:%i\n", $major, $minor;
}
sub udev_setup {
- system("umount", $udev_tmpfs);
+ system("umount \"$udev_tmpfs\" 2>/dev/null");
rmdir($udev_tmpfs);
mkdir($udev_tmpfs) || die "unable to create udev_tmpfs: $udev_tmpfs\n";
return 1;
}
-sub run_test {
- my ($rules, $number) = @_;
- my $rc;
+sub get_devnode {
+ my ($device) = @_;
+ my $devnode;
- print "TEST $number: $rules->{desc}\n";
- print "device \'$rules->{devpath}\' expecting node/link \'$rules->{exp_name}\'\n";
+ if (defined($device->{devnode})) {
+ $devnode = "$udev_dev/$device->{devnode}";
+ } else {
+ $devnode = "$device->{devpath}";
+ $devnode =~ s!.*/!$udev_dev/!;
+ }
+ return $devnode;
+}
- $rc = udev("add", $rules->{devpath}, \$rules->{rules});
- if ($rc != 0) {
- print "$udev_bin add failed with code $rc\n";
+sub check_devnode {
+ my ($device) = @_;
+ my $devnode = get_devnode($device);
+
+ my @st = lstat("$devnode");
+ if (! (-b _ || -c _)) {
+ print "add $devnode: error\n";
+ system("tree", "$udev_dev");
$error++;
+ return undef;
}
- if (defined($rules->{not_exp_name})) {
- if ((-e "$udev_dev/$rules->{not_exp_name}") ||
- (-l "$udev_dev/$rules->{not_exp_name}")) {
- print "nonexistent: error \'$rules->{not_exp_name}\' not expected to be there\n";
- $error++;
- sleep(1);
- }
+
+ my ($dev, $ino, $mode, $nlink, $uid, $gid, $rdev, $size,
+ $atime, $mtime, $ctime, $blksize, $blocks) = @st;
+
+ if (defined($device->{exp_perms})) {
+ permissions_test($device, $uid, $gid, $mode);
}
+ if (defined($device->{exp_majorminor})) {
+ major_minor_test($device, $rdev);
+ }
+ print "add $devnode: ok\n";
+ $good++;
+ return $devnode;
+}
- if ((-e "$udev_dev/$rules->{exp_name}") ||
- (-l "$udev_dev/$rules->{exp_name}")) {
+sub get_link_target {
+ my ($link) = @_;
- my ($dev, $ino, $mode, $nlink, $uid, $gid, $rdev, $size,
- $atime, $mtime, $ctime, $blksize, $blocks) = stat("$udev_dev/$rules->{exp_name}");
+ my $cwd = getcwd();
+ my $dir = "$udev_dev/$link";
+ my $tgt = readlink("$udev_dev/$link");
+ $dir =~ s!/[^/]*$!!;
+ $tgt = abs_path("$dir/$tgt");
+ $tgt =~ s!^$cwd/!!;
+ return $tgt;
+}
- if (defined($rules->{exp_perms})) {
- permissions_test($rules, $uid, $gid, $mode);
- }
- if (defined($rules->{exp_majorminor})) {
- major_minor_test($rules, $rdev);
+sub check_link_add {
+ my ($link, $devnode, $err_expected) = @_;
+
+ my @st = lstat("$udev_dev/$link");
+ if (-l _) {
+ my $tgt = get_link_target($link);
+
+ if ($tgt ne $devnode) {
+ print "symlink $link: error, found -> $tgt\n";
+ $error++;
+ system("tree", "$udev_dev");
+ } else {
+ print "symlink $link: ok\n";
+ $good++;
}
- print "add: ok\n";
} else {
- print "add: error";
- if ($rules->{exp_add_error}) {
+ print "symlink $link: error";
+ if ($err_expected) {
print " as expected\n";
+ $good++;
} else {
print "\n";
system("tree", "$udev_dev");
sleep(1);
}
}
+}
- if (defined($rules->{option}) && $rules->{option} eq "keep") {
- print "\n\n";
- return;
+sub check_link_nonexistent {
+ my ($link, $devnode, $err_expected) = @_;
+
+ if ((-e "$udev_dev/$link") || (-l "$udev_dev/$link")) {
+ my $tgt = get_link_target($link);
+
+ if ($tgt ne $devnode) {
+ print "nonexistent: '$link' points to other device (ok)\n";
+ $good++;
+ } else {
+ print "nonexistent: error \'$link\' should not be there";
+ if ($err_expected) {
+ print " (as expected)\n";
+ $good++;
+ } else {
+ print "\n";
+ system("tree", "$udev_dev");
+ print "\n";
+ $error++;
+ sleep(1);
+ }
+ }
+ } else {
+ print "nonexistent $link: ok\n";
+ $good++;
+ }
+}
+
+sub check_add {
+ my ($device) = @_;
+ my $devnode = check_devnode($device);
+
+ if (defined($device->{exp_links})) {
+ foreach my $link (@{$device->{exp_links}}) {
+ check_link_add($link, $devnode,
+ $device->{exp_add_error});
+ }
+ }
+ if (defined $device->{not_exp_links}) {
+ foreach my $link (@{$device->{not_exp_links}}) {
+ check_link_nonexistent($link, $devnode,
+ $device->{exp_nodev_error});
+ }
}
+}
+
+sub check_remove_devnode {
+ my ($device) = @_;
+ my $devnode = get_devnode($device);
- $rc = udev("remove", $rules->{devpath}, \$rules->{rules});
- if ($rc != 0) {
- print "$udev_bin remove failed with code $rc\n";
+ if (-e "$devnode") {
+ print "remove $devnode: error";
+ print "\n";
+ system("tree", "$udev_dev");
+ print "\n";
$error++;
+ sleep(1);
+ } else {
+ print "remove $devnode: ok\n";
+ $good++;
}
- if ((-e "$udev_dev/$rules->{exp_name}") ||
- (-l "$udev_dev/$rules->{exp_name}")) {
- print "remove: error";
- if ($rules->{exp_rem_error}) {
+}
+
+sub check_link_remove {
+ my ($link, $err_expected) = @_;
+
+ if ((-e "$udev_dev/$link") ||
+ (-l "$udev_dev/$link")) {
+ print "remove $link: error";
+ if ($err_expected) {
print " as expected\n";
+ $good++;
} else {
print "\n";
system("tree", "$udev_dev");
sleep(1);
}
} else {
- print "remove: ok\n";
+ print "remove $link: ok\n";
+ $good++;
+ }
+}
+
+sub check_remove {
+ my ($device) = @_;
+
+ check_remove_devnode($device);
+
+ return if (!defined($device->{exp_links}));
+
+ foreach my $link (@{$device->{exp_links}}) {
+ check_link_remove($link, $device->{exp_rem_error});
}
+}
+
+sub run_udev {
+ my ($action, $dev, $sleep_us, $sema) = @_;
+
+ # Notify main process that this worker has started
+ $sema->op(0, 1, 0);
+
+ # Wait for start
+ $sema->op(0, 0, 0);
+ usleep($sleep_us) if defined ($sleep_us);
+ my $rc = udev($action, $dev->{devpath});
+ exit $rc;
+}
+
+sub fork_and_run_udev {
+ my ($action, $rules, $sema) = @_;
+ my @devices = @{$rules->{devices}};
+ my $dev;
+ my $k = 0;
+
+ $sema->setval(0, 1);
+ foreach $dev (@devices) {
+ my $pid = fork();
- print "\n";
+ if (!$pid) {
+ run_udev($action, $dev,
+ defined($rules->{sleep_us}) ? $k * $rules->{sleep_us} : undef,
+ $sema);
+ } else {
+ $dev->{pid} = $pid;
+ }
+ $k++;
+ }
+
+ # This operation waits for all workers to become ready, and
+ # starts them off when that's the case.
+ $sema->op(0, -($#devices + 2), 0);
+
+ foreach $dev (@devices) {
+ my $rc;
+ my $pid;
+
+ $pid = waitpid($dev->{pid}, 0);
+ if ($pid == -1) {
+ print "error waiting for pid dev->{pid}\n";
+ }
+ if (WIFEXITED($?)) {
+ $rc = WEXITSTATUS($?);
+
+ if ($rc) {
+ print "$udev_bin $action for $dev->{devpath} failed with code $rc\n";
+ $error += 1;
+ } else {
+ $good++;
+ }
+ }
+ }
+}
+
+sub run_test {
+ my ($rules, $number, $sema) = @_;
+ my $rc;
+ my @devices;
+ my $ntests;
+ my $cur_good = $good;
+ my $cur_error = $error;
+
+ if (!defined $rules->{devices}) {
+ $rules->{devices} = all_block_devs($rules->{generator});
+ }
+ @devices = @{$rules->{devices}};
+ # For each device: exit status and devnode test for add & remove
+ $ntests += 4 * ($#devices + 1);
+
+ foreach my $dev (@devices) {
+ $ntests += 2 * ($#{$dev->{exp_links}} + 1)
+ + ($#{$dev->{not_exp_links}} + 1)
+ + (defined $dev->{exp_perms} ? 1 : 0)
+ + (defined $dev->{exp_majorminor} ? 1 : 0);
+ }
+ if (defined $rules->{repeat}) {
+ $ntests *= $rules->{repeat};
+ }
+ $exp_good += $ntests;
+ print "TEST $number: $rules->{desc}\n";
+ create_rules(\$rules->{rules});
+
+ REPEAT:
+ fork_and_run_udev("add", $rules, $sema);
+
+ foreach my $dev (@devices) {
+ check_add($dev);
+ }
+
+ if (defined($rules->{option}) && $rules->{option} eq "keep") {
+ print "\n\n";
+ return;
+ }
+
+ fork_and_run_udev("remove", $rules, $sema);
+
+ foreach my $dev (@devices) {
+ check_remove($dev);
+ }
+
+ if (defined($rules->{repeat}) && --($rules->{repeat}) > 0) {
+ goto REPEAT;
+ }
+ printf "TEST $number: errors: %d good: %d/%d\n\n", $error-$cur_error,
+ $good-$cur_good, $ntests;
if (defined($rules->{option}) && $rules->{option} eq "clean") {
udev_setup();
push(@list, $arg);
}
}
+my $sema = IPC::Semaphore->new(IPC_PRIVATE, 1, S_IRUSR | S_IWUSR | IPC_CREAT);
if ($list[0]) {
foreach my $arg (@list) {
if (defined($tests[$arg-1]->{desc})) {
print "udev-test will run test number $arg:\n\n";
- run_test($tests[$arg-1], $arg);
+ run_test($tests[$arg-1], $arg, $sema);
} else {
print "test does not exist.\n";
}
print "\nudev-test will run ".($#tests + 1)." tests:\n\n";
foreach my $rules (@tests) {
- run_test($rules, $test_num);
+ run_test($rules, $test_num, $sema);
$test_num++;
}
}
-print "$error errors occurred\n\n";
+$sema->remove;
+print "$error errors occurred. $good/$exp_good good results.\n\n";
cleanup();
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
--- /dev/null
+#!/usr/bin/env bash
+set -eu -o pipefail
+
+PAGE_SIZE=$(getconf PAGE_SIZE)
+BLOAT_ITERATION_TARGET=$(( 100 << 20 )) # 100 MB
+BLOAT_HOLDER=()
+PID="$$"
+
+function bloat {
+ local set_size=$(cat "/proc/$PID/statm" | cut -d " " -f2)
+ local mem_usage=$(( "$set_size" * "$PAGE_SIZE" ))
+ local target_mem_size=$(( "$mem_usage" + "$1" ))
+
+ BLOAT_HOLDER=()
+ while [[ "$mem_usage" -lt "$target_mem_size" ]]; do
+ echo "target $target_mem_size"
+ echo "mem usage $mem_usage"
+ BLOAT_HOLDER+=( $(printf "%0.sg" {1..1000000}) )
+ set_size=$(cat "/proc/$PID/statm" | cut -d " " -f2)
+ mem_usage=$(( "$set_size" * "$PAGE_SIZE" ))
+ done
+}
+
+function run {
+ local arr=()
+
+ while [[ true ]]; do
+ bloat "$BLOAT_ITERATION_TARGET"
+ arr+=( "$BLOAT_HOLDER" )
+ sleep 1
+ done
+}
+
+run
--- /dev/null
+[Unit]
+Description=Create a lot of memory pressure
+
+[Service]
+# A very small memory.high will cause the script (trying to use a lot of memory)
+# to throttle and be put under heavy pressure
+MemoryHigh=2M
+Slice=testsuite-56-workload.slice
+ExecStart=/usr/lib/systemd/tests/testdata/units/testsuite-56-slowgrowth.sh
--- /dev/null
+[Unit]
+Description=No memory pressure
+
+[Service]
+Slice=testsuite-56-workload.slice
+ExecStart=sleep infinity
--- /dev/null
+[Unit]
+Description=Test slice for memory pressure kills
+
+[Slice]
+CPUAccounting=true
+MemoryAccounting=true
+IOAccounting=true
+TasksAccounting=true
+ManagedOOMMemoryPressure=kill
+ManagedOOMMemoryPressureLimitPercent=50%
--- /dev/null
+[Unit]
+Description=TESTSUITE-56-OOMD
+
+[Service]
+ExecStartPre=rm -f /failed /skipped /testok
+ExecStart=/usr/lib/systemd/tests/testdata/units/%N.sh
+Type=oneshot
--- /dev/null
+#!/usr/bin/env bash
+set -ex
+set -o pipefail
+
+systemd-analyze log-level debug
+systemd-analyze log-target console
+
+# Loose checks to ensure the environment has the necessary features for systemd-oomd
+[[ "$( awk '/SwapTotal/ { print $2 }' /proc/meminfo )" != "0" ]] || echo "no swap" >> /skipped
+[[ -e /proc/pressure ]] || echo "no PSI" >> /skipped
+cgroup_type=$(stat -fc %T /sys/fs/cgroup/)
+if [[ "$cgroup_type" != *"cgroup2"* ]] && [[ "$cgroup_type" != *"0x63677270"* ]]; then
+ echo "no cgroup2" >> /skipped
+fi
+[[ -e /skipped ]] && exit 0 || true
+
+systemctl start testsuite-56-testbloat.service
+systemctl start testsuite-56-testchill.service
+
+# Verify systemd-oomd is monitoring the expected units
+oomctl | grep "/testsuite-56-workload.slice"
+oomctl | grep "50%"
+
+# systemd-oomd watches for elevated pressure for 30 seconds before acting.
+# It can take time to build up pressure so either wait 5 minutes or for the service to fail.
+timeout=$(date -ud "5 minutes" +%s)
+while [[ $(date -u +%s) -le $timeout ]]; do
+ if ! systemctl status testsuite-56-testbloat.service; then
+ break
+ fi
+ sleep 15
+done
+
+# testbloat should be killed and testchill should be fine
+if systemctl status testsuite-56-testbloat.service; then exit 42; fi
+if ! systemctl status testsuite-56-testchill.service; then exit 24; fi
+
+systemd-analyze log-level info
+
+echo OK > /testok
+
+exit 0
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
enable_tmpfiles = conf.get('ENABLE_TMPFILES') == 1
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
# See tmpfiles.d(5) for details
Q /var/lib/portables 0700
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# The systemd-pstore.service(1) archives the contents of /sys/fs/pstore
# upon boot so that there is room for a subsequent dump. This service
#!/bin/sh
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
TOP=`git rev-parse --show-toplevel`
#!/bin/sh
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
TOP=`git rev-parse --show-toplevel`
#!/usr/bin/env python3
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
import gdb
#!/usr/bin/env python3
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
"""
Generate %-from-name.gperf from %-list.txt
#!/bin/sh
set -eu
-git shortlog -s `git describe --abbrev=0`.. | \
+git shortlog -s `git describe --abbrev=0 --match 'v[0-9][0-9][0-9]'`.. | \
awk '{ $1=""; print $0 "," }' | \
sort -u
#!/usr/bin/env python3
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
# Generate autosuspend rules for devices that have been tested to work properly
# with autosuspend by the Chromium OS team. Based on
import chromiumos.gen_autosuspend_rules
-print('# pci:v<00VENDOR>d<00DEVICE>:* (8 uppercase hexadecimal digits twice)')
+print('# pci:v<00VENDOR>d<00DEVICE> (8 uppercase hexadecimal digits twice)')
for entry in chromiumos.gen_autosuspend_rules.PCI_IDS:
vendor, device = entry.split(':')
vendor = int(vendor, 16)
device = int(device, 16)
- print('pci:v{:08X}d{:08X}:*'.format(vendor, device))
+ print('pci:v{:08X}d{:08X}*'.format(vendor, device))
-print('# usb:v<VEND>p<PROD>:* (4 uppercase hexadecimal digits twice)')
+print('# usb:v<VEND>p<PROD> (4 uppercase hexadecimal digits twice)')
for entry in chromiumos.gen_autosuspend_rules.USB_IDS:
vendor, product = entry.split(':')
vendor = int(vendor, 16)
product = int(product, 16)
- print('usb:v{:04X}p{:04X}:*'.format(vendor, product))
+ print('usb:v{:04X}p{:04X}*'.format(vendor, product))
print(' ID_AUTOSUSPEND=1')
#!/usr/bin/env python3
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
import sys
import collections
#!/usr/bin/env python3
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
import collections
import sys
#!/usr/bin/env bash
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
set -ex
#!/usr/bin/env python3
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
import argparse
import collections
#!/usr/bin/env python3
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
from __future__ import print_function
import collections
#!/usr/bin/env python3
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
from lxml import etree as tree
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
+++ /dev/null
-# SPDX-License-Identifier: LGPL-2.1+
-#
-# This file is part of systemd.
-#
-# systemd is free software; you can redistribute it and/or modify it
-# under the terms of the GNU Lesser General Public License as published by
-# the Free Software Foundation; either version 2.1 of the License, or
-# (at your option) any later version.
-
-[Unit]
-Description=Initrd Encrypted Volumes
-Documentation=man:systemd.special(7)
-OnFailure=emergency.target
-OnFailureJobMode=replace-irreversibly
-AssertPathExists=/etc/initrd-release
-DefaultDependencies=no
-Conflicts=shutdown.target
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
with_runlevels = conf.get('HAVE_SYSV_COMPAT') == 1
'multi-user.target.wants/'],
['getty-pre.target', ''],
['graphical.target', '',
- (with_runlevels ? 'runlevel5.target default.target' : 'default.target')],
+ 'default.target' + (with_runlevels ? ' runlevel5.target' : '')],
['halt.target', ''],
['hibernate.target', 'ENABLE_HIBERNATE'],
['hybrid-sleep.target', 'ENABLE_HIBERNATE'],
['suspend-then-hibernate.target', 'ENABLE_HIBERNATE'],
['initrd-cleanup.service', 'ENABLE_INITRD'],
- ['initrd-cryptsetup.target', 'HAVE_LIBCRYPTSETUP ENABLE_INITRD',
- 'sysinit.target.wants/'],
['initrd-fs.target', 'ENABLE_INITRD'],
['initrd-parse-etc.service', 'ENABLE_INITRD'],
['initrd-root-device.target', 'ENABLE_INITRD'],
'sysinit.target.wants/'],
['proc-sys-fs-binfmt_misc.mount', 'ENABLE_BINFMT'],
['reboot.target', '',
- (with_runlevels ? 'runlevel6.target ctrl-alt-del.target' : 'ctrl-alt-del.target')],
- ['remote-cryptsetup.target', 'HAVE_LIBCRYPTSETUP'],
+ 'ctrl-alt-del.target' + (with_runlevels ? ' runlevel6.target' : '')],
+ ['remote-cryptsetup.target', 'HAVE_LIBCRYPTSETUP',
+ 'initrd-root-device.target.wants/'],
['remote-fs-pre.target', ''],
['remote-fs.target', ''],
['rescue.target', '',
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
IgnoreOnIsolate=yes
[Socket]
-Service=systemd-journald.service
ListenDatagram=/run/systemd/journal/dev-log
-Symlinks=/dev/log
-SocketMode=0666
PassCredentials=yes
PassSecurity=yes
+Service=systemd-journald.service
+SocketMode=0666
+Symlinks=/dev/log
+Timestamping=us
# Increase both the send and receive buffer, so that things don't
# block early. Note that journald internally uses the this socket both
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
IgnoreOnIsolate=yes
[Socket]
-ListenStream=/run/systemd/journal/stdout
ListenDatagram=/run/systemd/journal/socket
-SocketMode=0666
+ListenStream=/run/systemd/journal/stdout
PassCredentials=yes
PassSecurity=yes
ReceiveBuffer=8M
Service=systemd-journald.service
+SocketMode=0666
+Timestamping=us
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
units = [
'app.slice',
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#