aboutsummaryrefslogtreecommitdiffstats
path: root/include/uapi/linux/if_bonding.h
diff options
context:
space:
mode:
authorAndy Roulin <aroulin@cumulusnetworks.com>2019-12-11 14:30:58 -0800
committerJakub Kicinski <jakub.kicinski@netronome.com>2019-12-14 13:07:44 -0800
commit826f66b30c2e3d4df533e4224cb8c734afa0a17c (patch)
tree55415c6bf31d5aef895cd1128e2eaaa64b08b23c /include/uapi/linux/if_bonding.h
parentRevert "nfp: abm: fix memory leak in nfp_abm_u32_knode_replace" (diff)
downloadlinux-dev-826f66b30c2e3d4df533e4224cb8c734afa0a17c.tar.xz
linux-dev-826f66b30c2e3d4df533e4224cb8c734afa0a17c.zip
bonding: move 802.3ad port state flags to uapi
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@cumulusnetworks.com> Acked-by: Roopa Prabhu <roopa@cumulusnetworks.com> Acked-by: Jay Vosburgh <jay.vosburgh@canonical.com> Signed-off-by: Jakub Kicinski <jakub.kicinski@netronome.com>
Diffstat (limited to '')
-rw-r--r--include/uapi/linux/if_bonding.h10
1 files changed, 10 insertions, 0 deletions
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;