bond: make _platform_lnk_bond_init_from_setting() more readable via a macro

Use macros to make the code shorter and easier to read.

(cherry picked from commit b7c56c3ae1)
This commit is contained in:
Thomas Haller 2022-09-18 20:28:54 +02:00
parent 1ae5af9898
commit bb0fb83694
No known key found for this signature in database
GPG key ID: 29C2366E4DFC5728

View file

@ -395,46 +395,48 @@ _platform_lnk_bond_init_from_setting(NMSettingBond *s_bond, NMPlatformLnkBond *p
{
const char *opt_value;
#define _v_fcn(fcn, s_bond, opt) (fcn(nm_setting_bond_get_option_normalized((s_bond), (opt))))
#define _v_u8(s_bond, opt) _nm_setting_bond_opt_value_as_u8((s_bond), (opt))
#define _v_u16(s_bond, opt) _nm_setting_bond_opt_value_as_u16((s_bond), (opt))
#define _v_u32(s_bond, opt) _nm_setting_bond_opt_value_as_u32((s_bond), (opt))
*props = (NMPlatformLnkBond){
.mode = _nm_setting_bond_mode_from_string(
nm_setting_bond_get_option_normalized(s_bond, NM_SETTING_BOND_OPTION_MODE)),
.mode = _v_fcn(_nm_setting_bond_mode_from_string, s_bond, NM_SETTING_BOND_OPTION_MODE),
.primary = _setting_bond_primary_opt_as_ifindex(s_bond),
.miimon = _nm_setting_bond_opt_value_as_u32(s_bond, NM_SETTING_BOND_OPTION_MIIMON),
.updelay = _nm_setting_bond_opt_value_as_u32(s_bond, NM_SETTING_BOND_OPTION_UPDELAY),
.downdelay = _nm_setting_bond_opt_value_as_u32(s_bond, NM_SETTING_BOND_OPTION_DOWNDELAY),
.arp_interval =
_nm_setting_bond_opt_value_as_u32(s_bond, NM_SETTING_BOND_OPTION_ARP_INTERVAL),
.resend_igmp =
_nm_setting_bond_opt_value_as_u32(s_bond, NM_SETTING_BOND_OPTION_RESEND_IGMP),
.min_links = _nm_setting_bond_opt_value_as_u32(s_bond, NM_SETTING_BOND_OPTION_MIN_LINKS),
.lp_interval =
_nm_setting_bond_opt_value_as_u32(s_bond, NM_SETTING_BOND_OPTION_LP_INTERVAL),
.packets_per_port =
_nm_setting_bond_opt_value_as_u32(s_bond, NM_SETTING_BOND_OPTION_PACKETS_PER_SLAVE),
.peer_notif_delay =
_nm_setting_bond_opt_value_as_u32(s_bond, NM_SETTING_BOND_OPTION_PEER_NOTIF_DELAY),
.arp_all_targets = _nm_setting_bond_arp_all_targets_from_string(
nm_setting_bond_get_option_normalized(s_bond, NM_SETTING_BOND_OPTION_ARP_ALL_TARGETS)),
.arp_validate = _nm_setting_bond_arp_validate_from_string(
nm_setting_bond_get_option_normalized(s_bond, NM_SETTING_BOND_OPTION_ARP_VALIDATE)),
.ad_actor_sys_prio =
_nm_setting_bond_opt_value_as_u16(s_bond, NM_SETTING_BOND_OPTION_AD_ACTOR_SYS_PRIO),
.ad_user_port_key =
_nm_setting_bond_opt_value_as_u16(s_bond, NM_SETTING_BOND_OPTION_AD_USER_PORT_KEY),
.primary_reselect = _nm_setting_bond_primary_reselect_from_string(
nm_setting_bond_get_option_normalized(s_bond, NM_SETTING_BOND_OPTION_PRIMARY_RESELECT)),
.fail_over_mac = _nm_setting_bond_fail_over_mac_from_string(
nm_setting_bond_get_option_normalized(s_bond, NM_SETTING_BOND_OPTION_FAIL_OVER_MAC)),
.xmit_hash_policy = _nm_setting_bond_xmit_hash_policy_from_string(
nm_setting_bond_get_option_normalized(s_bond, NM_SETTING_BOND_OPTION_XMIT_HASH_POLICY)),
.num_grat_arp =
_nm_setting_bond_opt_value_as_u8(s_bond, NM_SETTING_BOND_OPTION_NUM_GRAT_ARP),
.all_ports_active =
_nm_setting_bond_opt_value_as_u8(s_bond, NM_SETTING_BOND_OPTION_ALL_SLAVES_ACTIVE),
.lacp_rate = _nm_setting_bond_lacp_rate_from_string(
nm_setting_bond_get_option_normalized(s_bond, NM_SETTING_BOND_OPTION_LACP_RATE)),
.ad_select = _nm_setting_bond_ad_select_from_string(
nm_setting_bond_get_option_normalized(s_bond, NM_SETTING_BOND_OPTION_AD_SELECT)),
.miimon = _v_u32(s_bond, NM_SETTING_BOND_OPTION_MIIMON),
.updelay = _v_u32(s_bond, NM_SETTING_BOND_OPTION_UPDELAY),
.downdelay = _v_u32(s_bond, NM_SETTING_BOND_OPTION_DOWNDELAY),
.arp_interval = _v_u32(s_bond, NM_SETTING_BOND_OPTION_ARP_INTERVAL),
.resend_igmp = _v_u32(s_bond, NM_SETTING_BOND_OPTION_RESEND_IGMP),
.min_links = _v_u32(s_bond, NM_SETTING_BOND_OPTION_MIN_LINKS),
.lp_interval = _v_u32(s_bond, NM_SETTING_BOND_OPTION_LP_INTERVAL),
.packets_per_port = _v_u32(s_bond, NM_SETTING_BOND_OPTION_PACKETS_PER_SLAVE),
.peer_notif_delay = _v_u32(s_bond, NM_SETTING_BOND_OPTION_PEER_NOTIF_DELAY),
.arp_all_targets = _v_fcn(_nm_setting_bond_arp_all_targets_from_string,
s_bond,
NM_SETTING_BOND_OPTION_ARP_ALL_TARGETS),
.arp_validate = _v_fcn(_nm_setting_bond_arp_validate_from_string,
s_bond,
NM_SETTING_BOND_OPTION_ARP_VALIDATE),
.ad_actor_sys_prio = _v_u16(s_bond, NM_SETTING_BOND_OPTION_AD_ACTOR_SYS_PRIO),
.ad_user_port_key = _v_u16(s_bond, NM_SETTING_BOND_OPTION_AD_USER_PORT_KEY),
.primary_reselect = _v_fcn(_nm_setting_bond_primary_reselect_from_string,
s_bond,
NM_SETTING_BOND_OPTION_PRIMARY_RESELECT),
.fail_over_mac = _v_fcn(_nm_setting_bond_fail_over_mac_from_string,
s_bond,
NM_SETTING_BOND_OPTION_FAIL_OVER_MAC),
.xmit_hash_policy = _v_fcn(_nm_setting_bond_xmit_hash_policy_from_string,
s_bond,
NM_SETTING_BOND_OPTION_XMIT_HASH_POLICY),
.num_grat_arp = _v_u8(s_bond, NM_SETTING_BOND_OPTION_NUM_GRAT_ARP),
.all_ports_active = _v_u8(s_bond, NM_SETTING_BOND_OPTION_ALL_SLAVES_ACTIVE),
.lacp_rate = _v_fcn(_nm_setting_bond_lacp_rate_from_string,
s_bond,
NM_SETTING_BOND_OPTION_LACP_RATE),
.ad_select = _v_fcn(_nm_setting_bond_ad_select_from_string,
s_bond,
NM_SETTING_BOND_OPTION_AD_SELECT),
};
nm_ether_addr_from_string(