[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <15326.1576104461@famine>
Date: Wed, 11 Dec 2019 14:47:41 -0800
From: Jay Vosburgh <jay.vosburgh@...onical.com>
To: Andy Roulin <aroulin@...ulusnetworks.com>
cc: netdev@...r.kernel.org, dsahern@...il.com,
nikolay@...ulusnetworks.com, roopa@...ulusnetworks.com,
vfalico@...il.com, andy@...yhouse.net, stephen@...workplumber.org
Subject: Re: [PATCH net-next v2] bonding: move 802.3ad port state flags to uapi
Andy Roulin <aroulin@...ulusnetworks.com> wrote:
>The bond slave actor/partner operating state is exported as
>bitfield to userspace, which lacks a way to interpret it, e.g.,
>iproute2 only prints the state as a number:
>
>ad_actor_oper_port_state 15
>
>For userspace to interpret the bitfield, the bitfield definitions
>should be part of the uapi. The bitfield itself is defined in the
>802.3ad standard.
>
>This commit moves the 802.3ad bitfield definitions to uapi.
>
>Related iproute2 patches, soon to be posted upstream, use the new uapi
>headers to pretty-print bond slave state, e.g., with ip -d link show
>
>ad_actor_oper_port_state_str <active,short_timeout,aggregating,in_sync>
>
>Signed-off-by: Andy Roulin <aroulin@...ulusnetworks.com>
>Acked-by: Roopa Prabhu <roopa@...ulusnetworks.com>
Acked-by: Jay Vosburgh <jay.vosburgh@...onical.com>
>---
> drivers/net/bonding/bond_3ad.c | 10 ----------
> include/uapi/linux/if_bonding.h | 10 ++++++++++
> 2 files changed, 10 insertions(+), 10 deletions(-)
>
>diff --git a/drivers/net/bonding/bond_3ad.c b/drivers/net/bonding/bond_3ad.c
>index e3b25f310936..34bfe99641a3 100644
>--- a/drivers/net/bonding/bond_3ad.c
>+++ b/drivers/net/bonding/bond_3ad.c
>@@ -31,16 +31,6 @@
> #define AD_CHURN_DETECTION_TIME 60
> #define AD_AGGREGATE_WAIT_TIME 2
>
>-/* Port state definitions (43.4.2.2 in the 802.3ad standard) */
>-#define AD_STATE_LACP_ACTIVITY 0x1
>-#define AD_STATE_LACP_TIMEOUT 0x2
>-#define AD_STATE_AGGREGATION 0x4
>-#define AD_STATE_SYNCHRONIZATION 0x8
>-#define AD_STATE_COLLECTING 0x10
>-#define AD_STATE_DISTRIBUTING 0x20
>-#define AD_STATE_DEFAULTED 0x40
>-#define AD_STATE_EXPIRED 0x80
>-
> /* Port Variables definitions used by the State Machines (43.4.7 in the
> * 802.3ad standard)
> */
>diff --git a/include/uapi/linux/if_bonding.h b/include/uapi/linux/if_bonding.h
>index 790585f0e61b..6829213a54c5 100644
>--- a/include/uapi/linux/if_bonding.h
>+++ b/include/uapi/linux/if_bonding.h
>@@ -95,6 +95,16 @@
> #define BOND_XMIT_POLICY_ENCAP23 3 /* encapsulated layer 2+3 */
> #define BOND_XMIT_POLICY_ENCAP34 4 /* encapsulated layer 3+4 */
>
>+/* 802.3ad port state definitions (43.4.2.2 in the 802.3ad standard) */
>+#define AD_STATE_LACP_ACTIVITY 0x1
>+#define AD_STATE_LACP_TIMEOUT 0x2
>+#define AD_STATE_AGGREGATION 0x4
>+#define AD_STATE_SYNCHRONIZATION 0x8
>+#define AD_STATE_COLLECTING 0x10
>+#define AD_STATE_DISTRIBUTING 0x20
>+#define AD_STATE_DEFAULTED 0x40
>+#define AD_STATE_EXPIRED 0x80
>+
> typedef struct ifbond {
> __s32 bond_mode;
> __s32 num_slaves;
>--
>2.20.1
>
Powered by blists - more mailing lists