]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
network: Introduce macvlan util
authorSusant Sahani <ssahani@vmware.com>
Thu, 19 Mar 2020 09:31:45 +0000 (10:31 +0100)
committerLennart Poettering <lennart@poettering.net>
Thu, 14 May 2020 15:35:56 +0000 (17:35 +0200)
src/network/netdev/macvlan.c
src/network/netdev/macvlan.h
src/shared/macvlan-util.c [new file with mode: 0644]
src/shared/macvlan-util.h [new file with mode: 0644]
src/shared/meson.build

index dbe25e9e34fb103e9cee6e060004e5335171d5d3..e41ed9e6ed7a062d0303dc8878f9ad8477c82e39 100644 (file)
@@ -4,16 +4,8 @@
 
 #include "conf-parser.h"
 #include "macvlan.h"
-#include "string-table.h"
+#include "macvlan-util.h"
 
-static const char* const macvlan_mode_table[_NETDEV_MACVLAN_MODE_MAX] = {
-        [NETDEV_MACVLAN_MODE_PRIVATE] = "private",
-        [NETDEV_MACVLAN_MODE_VEPA] = "vepa",
-        [NETDEV_MACVLAN_MODE_BRIDGE] = "bridge",
-        [NETDEV_MACVLAN_MODE_PASSTHRU] = "passthru",
-};
-
-DEFINE_STRING_TABLE_LOOKUP(macvlan_mode, MacVlanMode);
 DEFINE_CONFIG_PARSE_ENUM(config_parse_macvlan_mode, macvlan_mode, MacVlanMode, "Failed to parse macvlan mode");
 
 static int netdev_macvlan_fill_message_create(NetDev *netdev, Link *link, sd_netlink_message *req) {
index 5d81be32da291e038bc556c7a7912eb09cc04d93..7e4d685bdbafaec5534329d8b806bcbf9a77436b 100644 (file)
@@ -3,17 +3,9 @@
 
 typedef struct MacVlan MacVlan;
 
+#include "macvlan-util.h"
 #include "netdev.h"
 
-typedef enum MacVlanMode {
-        NETDEV_MACVLAN_MODE_PRIVATE = MACVLAN_MODE_PRIVATE,
-        NETDEV_MACVLAN_MODE_VEPA = MACVLAN_MODE_VEPA,
-        NETDEV_MACVLAN_MODE_BRIDGE = MACVLAN_MODE_BRIDGE,
-        NETDEV_MACVLAN_MODE_PASSTHRU = MACVLAN_MODE_PASSTHRU,
-        _NETDEV_MACVLAN_MODE_MAX,
-        _NETDEV_MACVLAN_MODE_INVALID = -1
-} MacVlanMode;
-
 struct MacVlan {
         NetDev meta;
 
@@ -25,7 +17,4 @@ DEFINE_NETDEV_CAST(MACVTAP, MacVlan);
 extern const NetDevVTable macvlan_vtable;
 extern const NetDevVTable macvtap_vtable;
 
-const char *macvlan_mode_to_string(MacVlanMode d) _const_;
-MacVlanMode macvlan_mode_from_string(const char *d) _pure_;
-
 CONFIG_PARSER_PROTOTYPE(config_parse_macvlan_mode);
diff --git a/src/shared/macvlan-util.c b/src/shared/macvlan-util.c
new file mode 100644 (file)
index 0000000..90382ac
--- /dev/null
@@ -0,0 +1,14 @@
+/* SPDX-License-Identifier: LGPL-2.1+ */
+
+#include "conf-parser.h"
+#include "macvlan-util.h"
+#include "string-table.h"
+
+static const char* const macvlan_mode_table[_NETDEV_MACVLAN_MODE_MAX] = {
+        [NETDEV_MACVLAN_MODE_PRIVATE] = "private",
+        [NETDEV_MACVLAN_MODE_VEPA] = "vepa",
+        [NETDEV_MACVLAN_MODE_BRIDGE] = "bridge",
+        [NETDEV_MACVLAN_MODE_PASSTHRU] = "passthru",
+};
+
+DEFINE_STRING_TABLE_LOOKUP(macvlan_mode, MacVlanMode);
diff --git a/src/shared/macvlan-util.h b/src/shared/macvlan-util.h
new file mode 100644 (file)
index 0000000..24f864a
--- /dev/null
@@ -0,0 +1,16 @@
+/* SPDX-License-Identifier: LGPL-2.1+ */
+#pragma once
+
+#include <linux/if_link.h>
+
+typedef enum MacVlanMode {
+        NETDEV_MACVLAN_MODE_PRIVATE = MACVLAN_MODE_PRIVATE,
+        NETDEV_MACVLAN_MODE_VEPA = MACVLAN_MODE_VEPA,
+        NETDEV_MACVLAN_MODE_BRIDGE = MACVLAN_MODE_BRIDGE,
+        NETDEV_MACVLAN_MODE_PASSTHRU = MACVLAN_MODE_PASSTHRU,
+        _NETDEV_MACVLAN_MODE_MAX,
+        _NETDEV_MACVLAN_MODE_INVALID = -1
+} MacVlanMode;
+
+const char *macvlan_mode_to_string(MacVlanMode d) _const_;
+MacVlanMode macvlan_mode_from_string(const char *d) _pure_;
index 301a8334a4dfb4daecaa5aac031f402473eb80fe..322ffce95daa3c8c7d77e4417806a659104a1dbd 100644 (file)
@@ -149,6 +149,8 @@ shared_sources = files('''
         machine-image.h
         machine-pool.c
         machine-pool.h
+        macvlan-util.c
+        macvlan-util.h
         main-func.h
         module-util.h
         mount-util.c