mirror of
https://gitlab.freedesktop.org/NetworkManager/NetworkManager
synced 2024-10-15 12:34:55 +00:00
bond: fix arp_all_target option when arp_interval is disabled
The bond option arp_all_target can be set even if arp_interval is
disabled.
https://bugzilla.redhat.com/show_bug.cgi?id=2123311
Fixes: e064eb9d13
('bond: use netlink to set bond options')
This commit is contained in:
parent
f54c85ef8c
commit
3871c670ab
|
@ -455,7 +455,6 @@ _platform_lnk_bond_init_from_setting(NMSettingBond *s_bond, NMPlatformLnkBond *p
|
|||
props->updelay_has = props->miimon_has && props->miimon;
|
||||
props->downdelay_has = props->miimon_has && props->miimon;
|
||||
props->peer_notif_delay_has = (props->miimon || props->arp_interval) && props->peer_notif_delay;
|
||||
props->arp_all_targets_has = props->arp_interval && props->arp_all_targets;
|
||||
props->resend_igmp_has = props->resend_igmp != 1;
|
||||
props->lp_interval_has = props->lp_interval != 1;
|
||||
props->tlb_dynamic_lb_has = NM_IN_SET(props->mode, NM_BOND_MODE_TLB, NM_BOND_MODE_ALB);
|
||||
|
|
|
@ -1628,12 +1628,8 @@ _parse_lnk_bond(const char *kind, struct nlattr *info_data)
|
|||
}
|
||||
if (tb[IFLA_BOND_ARP_VALIDATE])
|
||||
props->arp_validate = nla_get_u32(tb[IFLA_BOND_ARP_VALIDATE]);
|
||||
if (tb[IFLA_BOND_ARP_ALL_TARGETS]) {
|
||||
props->arp_all_targets = nla_get_u32(tb[IFLA_BOND_ARP_ALL_TARGETS]);
|
||||
props->arp_all_targets_has = TRUE;
|
||||
} else {
|
||||
props->arp_all_targets_has = FALSE;
|
||||
}
|
||||
if (tb[IFLA_BOND_ARP_ALL_TARGETS])
|
||||
props->arp_all_targets = nla_get_u32(tb[IFLA_BOND_ARP_ALL_TARGETS]);
|
||||
if (tb[IFLA_BOND_PRIMARY_RESELECT])
|
||||
props->primary_reselect = nla_get_u8(tb[IFLA_BOND_PRIMARY_RESELECT]);
|
||||
if (tb[IFLA_BOND_FAIL_OVER_MAC])
|
||||
|
@ -4517,7 +4513,7 @@ _nl_msg_new_link_set_linkinfo(struct nl_msg *msg, NMLinkType link_type, gconstpo
|
|||
nla_nest_end(msg, targets);
|
||||
}
|
||||
|
||||
if (props->arp_all_targets_has)
|
||||
if (props->arp_all_targets)
|
||||
NLA_PUT_U32(msg, IFLA_BOND_ARP_ALL_TARGETS, props->arp_all_targets);
|
||||
if (props->arp_interval)
|
||||
NLA_PUT_U32(msg, IFLA_BOND_ARP_INTERVAL, props->arp_interval);
|
||||
|
|
|
@ -5943,7 +5943,6 @@ nm_platform_lnk_bond_to_string(const NMPlatformLnkBond *lnk, char *buf, gsize le
|
|||
char sbuf_updelay[30];
|
||||
char sbuf_downdelay[30];
|
||||
char sbuf_peer_notif_delay[60];
|
||||
char sbuf_arp_all_targets[30];
|
||||
char sbuf_resend_igmp[30];
|
||||
char sbuf_lp_interval[30];
|
||||
char sbuf_tlb_dynamic_lb[30];
|
||||
|
@ -5967,7 +5966,7 @@ nm_platform_lnk_bond_to_string(const NMPlatformLnkBond *lnk, char *buf, gsize le
|
|||
"%s" /* lp_interval */
|
||||
" packets_per_port %u"
|
||||
"%s" /* peer_notif_delay */
|
||||
"%s" /* arp_all_targets */
|
||||
" arp_all_targets %u"
|
||||
" arp_validate %u"
|
||||
" ad_actor_sys_prio %u"
|
||||
" ad_user_port_key %u"
|
||||
|
@ -6017,12 +6016,7 @@ nm_platform_lnk_bond_to_string(const NMPlatformLnkBond *lnk, char *buf, gsize le
|
|||
!lnk->peer_notif_delay_has ? "?" : "",
|
||||
lnk->peer_notif_delay)
|
||||
: "",
|
||||
lnk->arp_all_targets_has || lnk->arp_all_targets != 0
|
||||
? nm_sprintf_buf(sbuf_arp_all_targets,
|
||||
" arp_all_targets%s %u",
|
||||
!lnk->arp_all_targets_has ? "?" : "",
|
||||
lnk->arp_all_targets)
|
||||
: "",
|
||||
lnk->arp_all_targets,
|
||||
lnk->arp_validate,
|
||||
lnk->ad_actor_sys_prio,
|
||||
lnk->ad_user_port_key,
|
||||
|
@ -7651,7 +7645,6 @@ nm_platform_lnk_bond_hash_update(const NMPlatformLnkBond *obj, NMHashState *h)
|
|||
obj->primary_reselect,
|
||||
obj->xmit_hash_policy,
|
||||
NM_HASH_COMBINE_BOOLS(guint16,
|
||||
obj->arp_all_targets_has,
|
||||
obj->downdelay_has,
|
||||
obj->lp_interval_has,
|
||||
obj->miimon_has,
|
||||
|
@ -7697,7 +7690,6 @@ nm_platform_lnk_bond_cmp(const NMPlatformLnkBond *a, const NMPlatformLnkBond *b)
|
|||
NM_CMP_FIELD(a, b, mode);
|
||||
NM_CMP_FIELD(a, b, primary_reselect);
|
||||
NM_CMP_FIELD(a, b, xmit_hash_policy);
|
||||
NM_CMP_FIELD_BOOL(a, b, arp_all_targets_has);
|
||||
NM_CMP_FIELD_BOOL(a, b, downdelay_has);
|
||||
NM_CMP_FIELD_BOOL(a, b, lp_interval_has);
|
||||
NM_CMP_FIELD_BOOL(a, b, miimon_has);
|
||||
|
|
|
@ -714,7 +714,6 @@ typedef struct {
|
|||
guint8 mode;
|
||||
guint8 primary_reselect;
|
||||
guint8 xmit_hash_policy;
|
||||
bool arp_all_targets_has : 1;
|
||||
bool downdelay_has : 1;
|
||||
bool lp_interval_has : 1;
|
||||
bool miimon_has : 1;
|
||||
|
|
Loading…
Reference in a new issue