[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <4f3dc357-8c90-49fd-96ea-bc28932ea509@gmail.com>
Date: Thu, 25 Jan 2024 11:08:54 -0700
From: David Ahern <dsahern@...il.com>
To: Aahil Awatramani <aahila@...gle.com>, Mahesh Bandewar
<maheshb@...gle.com>, David Dillow <dillow@...gle.com>,
Jay Vosburgh <j.vosburgh@...il.com>, Hangbin Liu <liuhangbin@...il.com>,
netdev@...r.kernel.org
Subject: Re: [PATCH] ip/bond: add coupled_control support
On 1/24/24 5:38 PM, Aahil Awatramani wrote:
> diff --git a/include/uapi/linux/if_link.h b/include/uapi/linux/if_link.h
> index d17271fb..ff4ceeaf 100644
> --- a/include/uapi/linux/if_link.h
> +++ b/include/uapi/linux/if_link.h
> @@ -1503,6 +1503,7 @@ enum {
> IFLA_BOND_AD_LACP_ACTIVE,
> IFLA_BOND_MISSED_MAX,
> IFLA_BOND_NS_IP6_TARGET,
> + IFLA_BOND_COUPLED_CONTROL,
> __IFLA_BOND_MAX,
> };
>
at best uapi changes should be a separate patch which gets dropped when
we sync headers with the kernel.
> diff --git a/ip/iplink_bond.c b/ip/iplink_bond.c
> index 214244da..68bc157a 100644
> --- a/ip/iplink_bond.c
> +++ b/ip/iplink_bond.c
> @@ -176,7 +184,7 @@ static int bond_parse_opt(struct link_util *lu, int argc, char **argv,
> {
> __u8 mode, use_carrier, primary_reselect, fail_over_mac;
> __u8 xmit_hash_policy, num_peer_notif, all_slaves_active;
> - __u8 lacp_active, lacp_rate, ad_select, tlb_dynamic_lb;
> + __u8 lacp_active, lacp_rate, ad_select, tlb_dynamic_lb, coupled_control;
> __u16 ad_user_port_key, ad_actor_sys_prio;
> __u32 miimon, updelay, downdelay, peer_notify_delay, arp_interval, arp_validate;
> __u32 arp_all_targets, resend_igmp, min_links, lp_interval;
> @@ -367,6 +375,13 @@ static int bond_parse_opt(struct link_util *lu, int argc, char **argv,
>
> lacp_active = get_index(lacp_active_tbl, *argv);
> addattr8(n, 1024, IFLA_BOND_AD_LACP_ACTIVE, lacp_active);
> + } else if (strcmp(*argv, "coupled_control") == 0) {
> + NEXT_ARG();
> + if (get_index(coupled_control_tbl, *argv) < 0)
> + invarg("invalid coupled_control", *argv);
> +
> + coupled_control = get_index(coupled_control_tbl, *argv);
parse_on_off
> + addattr8(n, 1024, IFLA_BOND_COUPLED_CONTROL, coupled_control);
> } else if (matches(*argv, "ad_select") == 0) {
> NEXT_ARG();
> if (get_index(ad_select_tbl, *argv) < 0)
> @@ -659,6 +674,15 @@ static void bond_print_opt(struct link_util *lu, FILE *f, struct rtattr *tb[])
> lacp_rate);
> }
>
> + if (tb[IFLA_BOND_COUPLED_CONTROL]) {
> + const char *coupled_control = get_name(coupled_control_tbl,
> + rta_getattr_u8(tb[IFLA_BOND_COUPLED_CONTROL]));
> + print_string(PRINT_ANY,
> + "coupled_control",
> + "coupled_control %s ",
> + coupled_control);
print_on_off
> + }
> +
> if (tb[IFLA_BOND_AD_SELECT]) {
> const char *ad_select = get_name(ad_select_tbl,
> rta_getattr_u8(tb[IFLA_BOND_AD_SELECT]));
pw-bot: cr
Powered by blists - more mailing lists