diff options
author | Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> | 2020-03-26 17:51:29 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-03-26 17:51:29 +0100 |
commit | a879b6d22f17495481b2dc5de64a9cd5601ad121 (patch) | |
tree | 8697d6ca2ba71a504836aed9ae17900f072f9e30 | |
parent | 272a8864daf16c05c8f2642d96d4f1c55a1c10bb (diff) | |
parent | a8389a33079e114569165def29b0dbbfbf3d0d8a (diff) | |
download | systemd-a879b6d22f17495481b2dc5de64a9cd5601ad121.tar.gz |
Merge pull request #15214 from ssahani/networkctl-br1
network: Introduce bridge util
-rw-r--r-- | src/network/networkctl.c | 13 | ||||
-rw-r--r-- | src/shared/bridge-util.c | 13 | ||||
-rw-r--r-- | src/shared/bridge-util.h | 20 | ||||
-rw-r--r-- | src/shared/meson.build | 2 |
4 files changed, 37 insertions, 11 deletions
diff --git a/src/network/networkctl.c b/src/network/networkctl.c index fe511b0c35..ee50fdad8c 100644 --- a/src/network/networkctl.c +++ b/src/network/networkctl.c @@ -21,6 +21,7 @@ #include "bus-common-errors.h" #include "bus-error.h" #include "bus-util.h" +#include "bridge-util.h" #include "device-util.h" #include "escape.h" #include "ether-addr-util.h" @@ -1487,20 +1488,10 @@ static int link_status_one( return table_log_add_error(r); if (info->port_state <= BR_STATE_BLOCKING) { - static const struct { - const char *state; - } state_table[] = { - { "disabled" }, - { "listening" }, - { "learning" }, - { "forwarding" }, - { "blocking" }, - }; - r = table_add_many(table, TABLE_EMPTY, TABLE_STRING, "Port State:", - TABLE_STRING, state_table[info->port_state]); + TABLE_STRING, bridge_state_to_string(info->port_state)); } } else if (streq_ptr(info->netdev_kind, "bond")) { static const struct { diff --git a/src/shared/bridge-util.c b/src/shared/bridge-util.c new file mode 100644 index 0000000000..239ac9a1a5 --- /dev/null +++ b/src/shared/bridge-util.c @@ -0,0 +1,13 @@ +/* SPDX-License-Identifier: LGPL-2.1+ */ + +#include "bridge-util.h" +#include "string-table.h" + +static const char* const bridge_state_table[_NETDEV_BRIDGE_STATE_MAX] = { + [NETDEV_BRIDGE_STATE_DISABLED] = "disabled", + [NETDEV_BRIDGE_STATE_LISTENING] = "listening", + [NETDEV_BRIDGE_STATE_LEARNING] = "learning", + [NETDEV_BRIDGE_STATE_FORWARDING] = "forwading", +}; + +DEFINE_STRING_TABLE_LOOKUP(bridge_state, BridgeState); diff --git a/src/shared/bridge-util.h b/src/shared/bridge-util.h new file mode 100644 index 0000000000..5b1c3e9ea9 --- /dev/null +++ b/src/shared/bridge-util.h @@ -0,0 +1,20 @@ +/* SPDX-License-Identifier: LGPL-2.1+ */ +#pragma once + +#include <netinet/in.h> +#include <linux/if_bridge.h> + +#include "conf-parser.h" + +typedef enum BridgeState { + NETDEV_BRIDGE_STATE_DISABLED = BR_STATE_DISABLED, + NETDEV_BRIDGE_STATE_LISTENING = BR_STATE_LISTENING, + NETDEV_BRIDGE_STATE_LEARNING = BR_STATE_LEARNING, + NETDEV_BRIDGE_STATE_FORWARDING = BR_STATE_FORWARDING, + NETDEV_BRIDGE_STATE_BLOCKING = BR_STATE_BLOCKING, + _NETDEV_BRIDGE_STATE_MAX, + _NETDEV_BRIDGE_STATE_INVALID = -1, +} BridgeState; + +const char *bridge_state_to_string(BridgeState d) _const_; +BridgeState bridge_state_from_string(const char *d) _pure_; diff --git a/src/shared/meson.build b/src/shared/meson.build index 94174347a1..2bbd3dd217 100644 --- a/src/shared/meson.build +++ b/src/shared/meson.build @@ -21,6 +21,8 @@ shared_sources = files(''' bootspec.h bpf-program.c bpf-program.h + bridge-util.c + bridge-util.h bus-unit-procs.c bus-unit-procs.h bus-unit-util.c |