diff --git a/man/sd_path_lookup.xml b/man/sd_path_lookup.xml
index 81812bc003..35a1109af3 100644
--- a/man/sd_path_lookup.xml
+++ b/man/sd_path_lookup.xml
@@ -98,6 +98,8 @@
SD_PATH_BINFMT_DIR,
SD_PATH_MODULES_LOAD_DIR,
SD_PATH_CATALOG_DIR,
+
+ SD_PATH_SYSTEMD_NETWORK_PATH,
};
diff --git a/src/basic/path-lookup.h b/src/basic/path-lookup.h
index f67b8d416a..ae37f9feb9 100644
--- a/src/basic/path-lookup.h
+++ b/src/basic/path-lookup.h
@@ -71,3 +71,4 @@ char **generator_binary_paths(UnitFileScope scope);
char **env_generator_binary_paths(bool is_system);
#define NETWORK_DIRS ((const char* const*) CONF_PATHS_STRV("systemd/network"))
+#define NETWORK_DIRS_NULSTR CONF_PATHS_NULSTR("systemd/network")
diff --git a/src/libsystemd/sd-path/sd-path.c b/src/libsystemd/sd-path/sd-path.c
index 4fd96fb5a2..2a9c04a84d 100644
--- a/src/libsystemd/sd-path/sd-path.c
+++ b/src/libsystemd/sd-path/sd-path.c
@@ -633,7 +633,12 @@ static int get_search(uint64_t type, char ***list) {
*list = t;
return 0;
- }}
+ }
+
+ case SD_PATH_SYSTEMD_NETWORK_PATH:
+ return strv_from_nulstr(list, NETWORK_DIRS_NULSTR);
+
+ }
return -EOPNOTSUPP;
}
diff --git a/src/path/path.c b/src/path/path.c
index aefdae1d51..20892fe1f2 100644
--- a/src/path/path.c
+++ b/src/path/path.c
@@ -81,6 +81,8 @@ static const char* const path_table[_SD_PATH_MAX] = {
[SD_PATH_BINFMT_DIR] = "binfmt-dir",
[SD_PATH_MODULES_LOAD_DIR] = "modules-load-dir",
[SD_PATH_CATALOG_DIR] = "catalog-dir",
+
+ [SD_PATH_SYSTEMD_NETWORK_PATH] = "systemd-network-path",
};
static int list_homes(void) {
diff --git a/src/systemd/sd-path.h b/src/systemd/sd-path.h
index 203f01dd90..7da7a9f814 100644
--- a/src/systemd/sd-path.h
+++ b/src/systemd/sd-path.h
@@ -102,6 +102,9 @@ enum {
SD_PATH_MODULES_LOAD_DIR,
SD_PATH_CATALOG_DIR,
+ /* systemd-networkd search paths */
+ SD_PATH_SYSTEMD_NETWORK_PATH,
+
_SD_PATH_MAX,
};