From 5b80ecea55c4bce3534ed75abf9cef437850aefb Mon Sep 17 00:00:00 2001 From: Zbigniew Jędrzejewski-Szmek Date: Tue, 4 Jan 2022 19:16:01 +0100 Subject: network: replace detailed netlink append messages with a single generic message MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This commit is the first in the series, and they generally follow the same idea: we had very detailed logging for message append operations which would only fail either with some type error or intrinsic limit (and then they would fail everywhere, so this would be noticed during development or in CI), or they would fail with ENOMEM, in which case the exact location is not very interesting since this is not repeatable. I am in general in favour of detailed logging messages, because it helps with diagnosis of errors, but I think case is an exception. Despite not being very useful, those messages required a lot of effort, because they were customized for each and every append operation. In fact some of the messages contained copy errors. The text of the messages (since they are generally unique) also added up to a considerable size. This removes the log messages after each sd_netlink_message_append_*() in fill_message_create() with a single line in netdev_create(). As described above, we are just appending fields to a message, so those calls would almost never fail. A forgotten 'return' was added in one place. $ size build/systemd-networkd{.0,} text data bss dec hex filename 1878634 394016 36 2272686 22adae build/systemd-networkd.0 1842450 394080 36 2236566 222096 build/systemd-networkd … so we save 30k too. --- src/network/netdev/bareudp.c | 4 +- src/network/netdev/batadv.c | 4 +- src/network/netdev/bond.c | 50 ++++++++++---------- src/network/netdev/geneve.c | 22 ++++----- src/network/netdev/ipoib.c | 6 +-- src/network/netdev/ipvlan.c | 4 +- src/network/netdev/macsec.c | 8 ++-- src/network/netdev/macvlan.c | 14 +++--- src/network/netdev/netdev.c | 2 +- src/network/netdev/tunnel.c | 106 +++++++++++++++++++++---------------------- src/network/netdev/veth.c | 12 ++--- src/network/netdev/vlan.c | 18 ++++---- src/network/netdev/vrf.c | 4 +- src/network/netdev/vxcan.c | 8 ++-- src/network/netdev/vxlan.c | 56 +++++++++++------------ src/network/netdev/xfrm.c | 4 +- 16 files changed, 161 insertions(+), 161 deletions(-) diff --git a/src/network/netdev/bareudp.c b/src/network/netdev/bareudp.c index 8ff0eb1360..24d3afb877 100644 --- a/src/network/netdev/bareudp.c +++ b/src/network/netdev/bareudp.c @@ -33,11 +33,11 @@ static int netdev_bare_udp_fill_message_create(NetDev *netdev, Link *link, sd_ne r = sd_netlink_message_append_u16(m, IFLA_BAREUDP_ETHERTYPE, htobe16(u->iftype)); if (r < 0) - return log_netdev_error_errno(netdev, r, "Could not append IFLA_BAREUDP_ETHERTYPE attribute: %m"); + return r; r = sd_netlink_message_append_u16(m, IFLA_BAREUDP_PORT, htobe16(u->dest_port)); if (r < 0) - return log_netdev_error_errno(netdev, r, "Could not append IFLA_BAREUDP_PORT attribute: %m"); + return r; return 0; } diff --git a/src/network/netdev/batadv.c b/src/network/netdev/batadv.c index 15f3aee3a6..b67fc8cb6e 100644 --- a/src/network/netdev/batadv.c +++ b/src/network/netdev/batadv.c @@ -190,9 +190,9 @@ static int netdev_batadv_fill_message_create(NetDev *netdev, Link *link, sd_netl r = sd_netlink_message_append_string(m, IFLA_BATADV_ALGO_NAME, batadv_routing_algorithm_kernel_to_string(b->routing_algorithm)); if (r < 0) - return log_netdev_error_errno(netdev, r, "Could not append IFLA_BATADV_ALGO_NAME attribute: %m"); + return r; - return r; + return 0; } const NetDevVTable batadv_vtable = { diff --git a/src/network/netdev/bond.c b/src/network/netdev/bond.c index 5d94aa1d68..b0af12c8e2 100644 --- a/src/network/netdev/bond.c +++ b/src/network/netdev/bond.c @@ -71,50 +71,50 @@ static int netdev_bond_fill_message_create(NetDev *netdev, Link *link, sd_netlin if (b->mode != _NETDEV_BOND_MODE_INVALID) { r = sd_netlink_message_append_u8(m, IFLA_BOND_MODE, b->mode); if (r < 0) - return log_netdev_error_errno(netdev, r, "Could not append IFLA_BOND_MODE attribute: %m"); + return r; } if (b->xmit_hash_policy != _NETDEV_BOND_XMIT_HASH_POLICY_INVALID) { r = sd_netlink_message_append_u8(m, IFLA_BOND_XMIT_HASH_POLICY, b->xmit_hash_policy); if (r < 0) - return log_netdev_error_errno(netdev, r, "Could not append IFLA_BOND_XMIT_HASH_POLICY attribute: %m"); + return r; } if (b->lacp_rate != _NETDEV_BOND_LACP_RATE_INVALID && b->mode == NETDEV_BOND_MODE_802_3AD) { r = sd_netlink_message_append_u8(m, IFLA_BOND_AD_LACP_RATE, b->lacp_rate); if (r < 0) - return log_netdev_error_errno(netdev, r, "Could not append IFLA_BOND_AD_LACP_RATE attribute: %m"); + return r; } if (b->miimon != 0) { r = sd_netlink_message_append_u32(m, IFLA_BOND_MIIMON, b->miimon / USEC_PER_MSEC); if (r < 0) - log_netdev_error_errno(netdev, r, "Could not append IFLA_BOND_BOND_MIIMON attribute: %m"); + return r; } if (b->downdelay != 0) { r = sd_netlink_message_append_u32(m, IFLA_BOND_DOWNDELAY, b->downdelay / USEC_PER_MSEC); if (r < 0) - return log_netdev_error_errno(netdev, r, "Could not append IFLA_BOND_DOWNDELAY attribute: %m"); + return r; } if (b->updelay != 0) { r = sd_netlink_message_append_u32(m, IFLA_BOND_UPDELAY, b->updelay / USEC_PER_MSEC); if (r < 0) - return log_netdev_error_errno(netdev, r, "Could not append IFLA_BOND_UPDELAY attribute: %m"); + return r; } if (b->arp_interval != 0) { r = sd_netlink_message_append_u32(m, IFLA_BOND_ARP_INTERVAL, b->arp_interval / USEC_PER_MSEC); if (r < 0) - return log_netdev_error_errno(netdev, r, "Could not append IFLA_BOND_ARP_INTERVAL attribute: %m"); + return r; if (b->lp_interval >= LEARNING_PACKETS_INTERVAL_MIN_SEC && b->lp_interval <= LEARNING_PACKETS_INTERVAL_MAX_SEC) { r = sd_netlink_message_append_u32(m, IFLA_BOND_LP_INTERVAL, b->lp_interval / USEC_PER_SEC); if (r < 0) - return log_netdev_error_errno(netdev, r, "Could not append IFLA_BOND_LP_INTERVAL attribute: %m"); + return r; } } @@ -122,85 +122,85 @@ static int netdev_bond_fill_message_create(NetDev *netdev, Link *link, sd_netlin b->mode == NETDEV_BOND_MODE_802_3AD) { r = sd_netlink_message_append_u8(m, IFLA_BOND_AD_SELECT, b->ad_select); if (r < 0) - return log_netdev_error_errno(netdev, r, "Could not append IFLA_BOND_AD_SELECT attribute: %m"); + return r; } if (b->fail_over_mac != _NETDEV_BOND_FAIL_OVER_MAC_INVALID && b->mode == NETDEV_BOND_MODE_ACTIVE_BACKUP) { r = sd_netlink_message_append_u8(m, IFLA_BOND_FAIL_OVER_MAC, b->fail_over_mac); if (r < 0) - return log_netdev_error_errno(netdev, r, "Could not append IFLA_BOND_FAIL_OVER_MAC attribute: %m"); + return r; } if (b->arp_validate != _NETDEV_BOND_ARP_VALIDATE_INVALID) { r = sd_netlink_message_append_u32(m, IFLA_BOND_ARP_VALIDATE, b->arp_validate); if (r < 0) - return log_netdev_error_errno(netdev, r, "Could not append IFLA_BOND_ARP_VALIDATE attribute: %m"); + return r; } if (b->arp_all_targets != _NETDEV_BOND_ARP_ALL_TARGETS_INVALID) { r = sd_netlink_message_append_u32(m, IFLA_BOND_ARP_ALL_TARGETS, b->arp_all_targets); if (r < 0) - return log_netdev_error_errno(netdev, r, "Could not append IFLA_BOND_ARP_ALL_TARGETS attribute: %m"); + return r; } if (b->primary_reselect != _NETDEV_BOND_PRIMARY_RESELECT_INVALID) { r = sd_netlink_message_append_u8(m, IFLA_BOND_PRIMARY_RESELECT, b->primary_reselect); if (r < 0) - return log_netdev_error_errno(netdev, r, "Could not append IFLA_BOND_PRIMARY_RESELECT attribute: %m"); + return r; } if (b->resend_igmp <= RESEND_IGMP_MAX) { r = sd_netlink_message_append_u32(m, IFLA_BOND_RESEND_IGMP, b->resend_igmp); if (r < 0) - return log_netdev_error_errno(netdev, r, "Could not append IFLA_BOND_RESEND_IGMP attribute: %m"); + return r; } if (b->packets_per_slave <= PACKETS_PER_SLAVE_MAX && b->mode == NETDEV_BOND_MODE_BALANCE_RR) { r = sd_netlink_message_append_u32(m, IFLA_BOND_PACKETS_PER_SLAVE, b->packets_per_slave); if (r < 0) - return log_netdev_error_errno(netdev, r, "Could not append IFLA_BOND_PACKETS_PER_SLAVE attribute: %m"); + return r; } if (b->num_grat_arp <= GRATUITOUS_ARP_MAX) { r = sd_netlink_message_append_u8(m, IFLA_BOND_NUM_PEER_NOTIF, b->num_grat_arp); if (r < 0) - return log_netdev_error_errno(netdev, r, "Could not append IFLA_BOND_NUM_PEER_NOTIF attribute: %m"); + return r; } if (b->min_links != 0) { r = sd_netlink_message_append_u32(m, IFLA_BOND_MIN_LINKS, b->min_links); if (r < 0) - return log_netdev_error_errno(netdev, r, "Could not append IFLA_BOND_MIN_LINKS attribute: %m"); + return r; } if (b->ad_actor_sys_prio != 0) { r = sd_netlink_message_append_u16(m, IFLA_BOND_AD_ACTOR_SYS_PRIO, b->ad_actor_sys_prio); if (r < 0) - return log_netdev_error_errno(netdev, r, "Could not append IFLA_BOND_AD_ACTOR_SYS_PRIO attribute: %m"); + return r; } if (b->ad_user_port_key != 0) { r = sd_netlink_message_append_u16(m, IFLA_BOND_AD_USER_PORT_KEY, b->ad_user_port_key); if (r < 0) - return log_netdev_error_errno(netdev, r, "Could not append IFLA_BOND_AD_USER_PORT_KEY attribute: %m"); + return r; } if (!ether_addr_is_null(&b->ad_actor_system)) { r = sd_netlink_message_append_ether_addr(m, IFLA_BOND_AD_ACTOR_SYSTEM, &b->ad_actor_system); if (r < 0) - return log_netdev_error_errno(netdev, r, "Could not append IFLA_BOND_AD_ACTOR_SYSTEM attribute: %m"); + return r; } r = sd_netlink_message_append_u8(m, IFLA_BOND_ALL_SLAVES_ACTIVE, b->all_slaves_active); if (r < 0) - return log_netdev_error_errno(netdev, r, "Could not append IFLA_BOND_ALL_SLAVES_ACTIVE attribute: %m"); + return r; if (b->tlb_dynamic_lb >= 0) { r = sd_netlink_message_append_u8(m, IFLA_BOND_TLB_DYNAMIC_LB, b->tlb_dynamic_lb); if (r < 0) - return log_netdev_error_errno(netdev, r, "Could not append IFLA_BOND_TLB_DYNAMIC_LB attribute: %m"); + return r; } if (b->arp_interval > 0 && !ordered_set_isempty(b->arp_ip_targets)) { @@ -209,17 +209,17 @@ static int netdev_bond_fill_message_create(NetDev *netdev, Link *link, sd_netlin r = sd_netlink_message_open_container(m, IFLA_BOND_ARP_IP_TARGET); if (r < 0) - return log_netdev_error_errno(netdev, r, "Could not open contaniner IFLA_BOND_ARP_IP_TARGET : %m"); + return r; ORDERED_SET_FOREACH(val, b->arp_ip_targets) { r = sd_netlink_message_append_u32(m, n++, PTR_TO_UINT32(val)); if (r < 0) - return log_netdev_error_errno(netdev, r, "Could not append IFLA_BOND_ARP_ALL_TARGETS attribute: %m"); + return r; } r = sd_netlink_message_close_container(m); if (r < 0) - return log_netdev_error_errno(netdev, r, "Could not close contaniner IFLA_BOND_ARP_IP_TARGET : %m"); + return r; } return 0; diff --git a/src/network/netdev/geneve.c b/src/network/netdev/geneve.c index 224c17e979..777a32d75c 100644 --- a/src/network/netdev/geneve.c +++ b/src/network/netdev/geneve.c @@ -39,7 +39,7 @@ static int netdev_geneve_fill_message_create(NetDev *netdev, Link *link, sd_netl if (v->id <= GENEVE_VID_MAX) { r = sd_netlink_message_append_u32(m, IFLA_GENEVE_ID, v->id); if (r < 0) - return log_netdev_error_errno(netdev, r, "Could not append IFLA_GENEVE_ID attribute: %m"); + return r; } if (in_addr_is_set(v->remote_family, &v->remote)) { @@ -48,51 +48,51 @@ static int netdev_geneve_fill_message_create(NetDev *netdev, Link *link, sd_netl else r = sd_netlink_message_append_in6_addr(m, IFLA_GENEVE_REMOTE6, &v->remote.in6); if (r < 0) - return log_netdev_error_errno(netdev, r, "Could not append IFLA_GENEVE_REMOTE/IFLA_GENEVE_REMOTE6 attribute: %m"); + return r; } if (v->inherit) { r = sd_netlink_message_append_u8(m, IFLA_GENEVE_TTL_INHERIT, 1); if (r < 0) - return log_netdev_error_errno(netdev, r, "Could not append IFLA_GENEVE_TTL_INHERIT attribute: %m"); + return r; } else { r = sd_netlink_message_append_u8(m, IFLA_GENEVE_TTL, v->ttl); if (r < 0) - return log_netdev_error_errno(netdev, r, "Could not append IFLA_GENEVE_TTL attribute: %m"); + return r; } r = sd_netlink_message_append_u8(m, IFLA_GENEVE_TOS, v->tos); if (r < 0) - return log_netdev_error_errno(netdev, r, "Could not append IFLA_GENEVE_TOS attribute: %m"); + return r; r = sd_netlink_message_append_u8(m, IFLA_GENEVE_UDP_CSUM, v->udpcsum); if (r < 0) - return log_netdev_error_errno(netdev, r, "Could not append IFLA_GENEVE_UDP_CSUM attribute: %m"); + return r; r = sd_netlink_message_append_u8(m, IFLA_GENEVE_UDP_ZERO_CSUM6_TX, v->udp6zerocsumtx); if (r < 0) - return log_netdev_error_errno(netdev, r, "Could not append IFLA_GENEVE_UDP_ZERO_CSUM6_TX attribute: %m"); + return r; r = sd_netlink_message_append_u8(m, IFLA_GENEVE_UDP_ZERO_CSUM6_RX, v->udp6zerocsumrx); if (r < 0) - return log_netdev_error_errno(netdev, r, "Could not append IFLA_GENEVE_UDP_ZERO_CSUM6_RX attribute: %m"); + return r; if (v->dest_port != DEFAULT_GENEVE_DESTINATION_PORT) { r = sd_netlink_message_append_u16(m, IFLA_GENEVE_PORT, htobe16(v->dest_port)); if (r < 0) - return log_netdev_error_errno(netdev, r, "Could not append IFLA_GENEVE_PORT attribute: %m"); + return r; } if (v->flow_label > 0) { r = sd_netlink_message_append_u32(m, IFLA_GENEVE_LABEL, htobe32(v->flow_label)); if (r < 0) - return log_netdev_error_errno(netdev, r, "Could not append IFLA_GENEVE_LABEL attribute: %m"); + return r; } if (v->geneve_df != _NETDEV_GENEVE_DF_INVALID) { r = sd_netlink_message_append_u8(m, IFLA_GENEVE_DF, v->geneve_df); if (r < 0) - return log_netdev_error_errno(netdev, r, "Could not append IFLA_GENEVE_DF attribute: %m"); + return r; } return 0; diff --git a/src/network/netdev/ipoib.c b/src/network/netdev/ipoib.c index e0ff9e8c62..630488cda9 100644 --- a/src/network/netdev/ipoib.c +++ b/src/network/netdev/ipoib.c @@ -39,19 +39,19 @@ static int netdev_ipoib_fill_message_create(NetDev *netdev, Link *link, sd_netli if (ipoib->pkey > 0) { r = sd_netlink_message_append_u16(m, IFLA_IPOIB_PKEY, ipoib->pkey); if (r < 0) - return log_netdev_error_errno(netdev, r, "Could not append IFLA_IPOIB_PKEY attribute: %m"); + return r; } if (ipoib->mode >= 0) { r = sd_netlink_message_append_u16(m, IFLA_IPOIB_MODE, ipoib->mode); if (r < 0) - return log_netdev_error_errno(netdev, r, "Could not append IFLA_IPOIB_MODE attribute: %m"); + return r; } if (ipoib->umcast >= 0) { r = sd_netlink_message_append_u16(m, IFLA_IPOIB_UMCAST, ipoib->umcast); if (r < 0) - return log_netdev_error_errno(netdev, r, "Could not append IFLA_IPOIB_UMCAST attribute: %m"); + return r; } return 0; diff --git a/src/network/netdev/ipvlan.c b/src/network/netdev/ipvlan.c index d15766cd7b..727e46085b 100644 --- a/src/network/netdev/ipvlan.c +++ b/src/network/netdev/ipvlan.c @@ -31,13 +31,13 @@ static int netdev_ipvlan_fill_message_create(NetDev *netdev, Link *link, sd_netl if (m->mode != _NETDEV_IPVLAN_MODE_INVALID) { r = sd_netlink_message_append_u16(req, IFLA_IPVLAN_MODE, m->mode); if (r < 0) - return log_netdev_error_errno(netdev, r, "Could not append IFLA_IPVLAN_MODE attribute: %m"); + return r; } if (m->flags != _NETDEV_IPVLAN_FLAGS_INVALID) { r = sd_netlink_message_append_u16(req, IFLA_IPVLAN_FLAGS, m->flags); if (r < 0) - return log_netdev_error_errno(netdev, r, "Could not append IFLA_IPVLAN_FLAGS attribute: %m"); + return r; } return 0; diff --git a/src/network/netdev/macsec.c b/src/network/netdev/macsec.c index f1a566a9ca..f70cde7177 100644 --- a/src/network/netdev/macsec.c +++ b/src/network/netdev/macsec.c @@ -516,20 +516,20 @@ static int netdev_macsec_fill_message_create(NetDev *netdev, Link *link, sd_netl if (v->port > 0) { r = sd_netlink_message_append_u16(m, IFLA_MACSEC_PORT, v->port); if (r < 0) - return log_netdev_error_errno(netdev, r, "Could not append IFLA_MACSEC_PORT attribute: %m"); + return r; } if (v->encrypt >= 0) { r = sd_netlink_message_append_u8(m, IFLA_MACSEC_ENCRYPT, v->encrypt); if (r < 0) - return log_netdev_error_errno(netdev, r, "Could not append IFLA_MACSEC_ENCRYPT attribute: %m"); + return r; } r = sd_netlink_message_append_u8(m, IFLA_MACSEC_ENCODING_SA, v->encoding_an); if (r < 0) - return log_netdev_error_errno(netdev, r, "Could not append IFLA_MACSEC_ENCODING_SA attribute: %m"); + return r; - return r; + return 0; } int config_parse_macsec_port( diff --git a/src/network/netdev/macvlan.c b/src/network/netdev/macvlan.c index c41be6e78f..aca05f0f77 100644 --- a/src/network/netdev/macvlan.c +++ b/src/network/netdev/macvlan.c @@ -33,40 +33,40 @@ static int netdev_macvlan_fill_message_create(NetDev *netdev, Link *link, sd_net r = sd_netlink_message_append_u32(req, IFLA_MACVLAN_MACADDR_MODE, MACVLAN_MACADDR_SET); if (r < 0) - return log_netdev_error_errno(netdev, r, "Could not append IFLA_MACVLAN_MACADDR_MODE attribute: %m"); + return r; r = sd_netlink_message_open_container(req, IFLA_MACVLAN_MACADDR_DATA); if (r < 0) - return log_netdev_error_errno(netdev, r, "Could not open IFLA_MACVLAN_MACADDR_DATA container: %m"); + return r; SET_FOREACH(mac_addr, m->match_source_mac) { r = sd_netlink_message_append_ether_addr(req, IFLA_MACVLAN_MACADDR, mac_addr); if (r < 0) - return log_netdev_error_errno(netdev, r, "Could not append IFLA_MACVLAN_MACADDR attribute: %m"); + return r; } r = sd_netlink_message_close_container(req); if (r < 0) - return log_netdev_error_errno(netdev, r, "Could not close IFLA_MACVLAN_MACADDR_DATA container: %m"); + return r; } if (m->mode != _NETDEV_MACVLAN_MODE_INVALID) { r = sd_netlink_message_append_u32(req, IFLA_MACVLAN_MODE, m->mode); if (r < 0) - return log_netdev_error_errno(netdev, r, "Could not append IFLA_MACVLAN_MODE attribute: %m"); + return r; } /* set the nopromisc flag if Promiscuous= of the link is explicitly set to false */ if (m->mode == NETDEV_MACVLAN_MODE_PASSTHRU && link->network->promiscuous == 0) { r = sd_netlink_message_append_u16(req, IFLA_MACVLAN_FLAGS, MACVLAN_FLAG_NOPROMISC); if (r < 0) - return log_netdev_error_errno(netdev, r, "Could not append IFLA_MACVLAN_FLAGS attribute: %m"); + return r; } if (m->bc_queue_length != UINT32_MAX) { r = sd_netlink_message_append_u32(req, IFLA_MACVLAN_BC_QUEUE_LEN, m->bc_queue_length); if (r < 0) - return log_netdev_error_errno(netdev, r, "Could not append IFLA_MACVLAN_BC_QUEUE_LEN attribute: %m"); + return r; } return 0; diff --git a/src/network/netdev/netdev.c b/src/network/netdev/netdev.c index 97d06a0d16..f93694e469 100644 --- a/src/network/netdev/netdev.c +++ b/src/network/netdev/netdev.c @@ -540,7 +540,7 @@ static int netdev_create(NetDev *netdev, Link *link, link_netlink_message_handle r = NETDEV_VTABLE(netdev)->fill_message_create(netdev, link, m); if (r < 0) - return r; + return log_netdev_error_errno(netdev, r, "Could not create netlink message: %m"); r = sd_netlink_message_close_container(m); if (r < 0) diff --git a/src/network/netdev/tunnel.c b/src/network/netdev/tunnel.c index b2e88eaa2f..ca24272ea4 100644 --- a/src/network/netdev/tunnel.c +++ b/src/network/netdev/tunnel.c @@ -198,7 +198,7 @@ static int netdev_ipip_sit_fill_message_create(NetDev *netdev, Link *link, sd_ne if (link || t->assign_to_loopback) { r = sd_netlink_message_append_u32(m, IFLA_IPTUN_LINK, link ? link->ifindex : LOOPBACK_IFINDEX); if (r < 0) - return log_netdev_error_errno(netdev, r, "Could not append IFLA_IPTUN_LINK attribute: %m"); + return r; } r = tunnel_get_local_address(t, link, &local); @@ -207,46 +207,46 @@ static int netdev_ipip_sit_fill_message_create(NetDev *netdev, Link *link, sd_ne r = sd_netlink_message_append_in_addr(m, IFLA_IPTUN_LOCAL, &local.in); if (r < 0) - return log_netdev_error_errno(netdev, r, "Could not append IFLA_IPTUN_LOCAL attribute: %m"); + return r; r = sd_netlink_message_append_in_addr(m, IFLA_IPTUN_REMOTE, &t->remote.in); if (r < 0) - return log_netdev_error_errno(netdev, r, "Could not append IFLA_IPTUN_REMOTE attribute: %m"); + return r; r = sd_netlink_message_append_u8(m, IFLA_IPTUN_TTL, t->ttl); if (r < 0) - return log_netdev_error_errno(netdev, r, "Could not append IFLA_IPTUN_TTL attribute: %m"); + return r; r = sd_netlink_message_append_u8(m, IFLA_IPTUN_PMTUDISC, t->pmtudisc); if (r < 0) - return log_netdev_error_errno(netdev, r, "Could not append IFLA_IPTUN_PMTUDISC attribute: %m"); + return r; if (t->fou_tunnel) { r = sd_netlink_message_append_u16(m, IFLA_IPTUN_ENCAP_TYPE, t->fou_encap_type); if (r < 0) - return log_netdev_error_errno(netdev, r, "Could not append IFLA_IPTUN_ENCAP_TYPE attribute: %m"); + return r; r = sd_netlink_message_append_u16(m, IFLA_IPTUN_ENCAP_SPORT, htobe16(t->encap_src_port)); if (r < 0) - return log_netdev_error_errno(netdev, r, "Could not append IFLA_IPTUN_ENCAP_SPORT attribute: %m"); + return r; r = sd_netlink_message_append_u16(m, IFLA_IPTUN_ENCAP_DPORT, htobe16(t->fou_destination_port)); if (r < 0) - return log_netdev_error_errno(netdev, r, "Could not append IFLA_IPTUN_ENCAP_DPORT attribute: %m"); + return r; } if (netdev->kind == NETDEV_KIND_SIT) { if (t->sixrd_prefixlen > 0) { r = sd_netlink_message_append_in6_addr(m, IFLA_IPTUN_6RD_PREFIX, &t->sixrd_prefix); if (r < 0) - return log_netdev_error_errno(netdev, r, "Could not append IFLA_IPTUN_6RD_PREFIX attribute: %m"); + return r; /* u16 is deliberate here, even though we're passing a netmask that can never be >128. The kernel is * expecting to receive the prefixlen as a u16. */ r = sd_netlink_message_append_u16(m, IFLA_IPTUN_6RD_PREFIXLEN, t->sixrd_prefixlen); if (r < 0) - return log_netdev_error_errno(netdev, r, "Could not append IFLA_IPTUN_6RD_PREFIXLEN attribute: %m"); + return r; } if (t->isatap >= 0) { @@ -256,11 +256,11 @@ static int netdev_ipip_sit_fill_message_create(NetDev *netdev, Link *link, sd_ne r = sd_netlink_message_append_u16(m, IFLA_IPTUN_FLAGS, flags); if (r < 0) - return log_netdev_error_errno(netdev, r, "Could not append IFLA_IPTUN_FLAGS attribute: %m"); + return r; } } - return r; + return 0; } static int netdev_gre_erspan_fill_message_create(NetDev *netdev, Link *link, sd_netlink_message *m) { @@ -294,13 +294,13 @@ static int netdev_gre_erspan_fill_message_create(NetDev *netdev, Link *link, sd_ if (link || t->assign_to_loopback) { r = sd_netlink_message_append_u32(m, IFLA_GRE_LINK, link ? link->ifindex : LOOPBACK_IFINDEX); if (r < 0) - return log_netdev_error_errno(netdev, r, "Could not append IFLA_GRE_LINK attribute: %m"); + return r; } if (netdev->kind == NETDEV_KIND_ERSPAN) { r = sd_netlink_message_append_u32(m, IFLA_GRE_ERSPAN_INDEX, t->erspan_index); if (r < 0) - return log_netdev_error_errno(netdev, r, "Could not append IFLA_GRE_ERSPAN_INDEX attribute: %m"); + return r; } r = tunnel_get_local_address(t, link, &local); @@ -309,23 +309,23 @@ static int netdev_gre_erspan_fill_message_create(NetDev *netdev, Link *link, sd_ r = sd_netlink_message_append_in_addr(m, IFLA_GRE_LOCAL, &local.in); if (r < 0) - return log_netdev_error_errno(netdev, r, "Could not append IFLA_GRE_LOCAL attribute: %m"); + return r; r = sd_netlink_message_append_in_addr(m, IFLA_GRE_REMOTE, &t->remote.in); if (r < 0) - return log_netdev_error_errno(netdev, r, "Could not append IFLA_GRE_REMOTE attribute: %m"); + return r; r = sd_netlink_message_append_u8(m, IFLA_GRE_TTL, t->ttl); if (r < 0) - return log_netdev_error_errno(netdev, r, "Could not append IFLA_GRE_TTL attribute: %m"); + return r; r = sd_netlink_message_append_u8(m, IFLA_GRE_TOS, t->tos); if (r < 0) - return log_netdev_error_errno(netdev, r, "Could not append IFLA_GRE_TOS attribute: %m"); + return r; r = sd_netlink_message_append_u8(m, IFLA_GRE_PMTUDISC, t->pmtudisc); if (r < 0) - return log_netdev_error_errno(netdev, r, "Could not append IFLA_GRE_PMTUDISC attribute: %m"); + return r; if (t->key != 0) { ikey = okey = htobe32(t->key); @@ -353,35 +353,35 @@ static int netdev_gre_erspan_fill_message_create(NetDev *netdev, Link *link, sd_ r = sd_netlink_message_append_u32(m, IFLA_GRE_IKEY, ikey); if (r < 0) - return log_netdev_error_errno(netdev, r, "Could not append IFLA_GRE_IKEY attribute: %m"); + return r; r = sd_netlink_message_append_u32(m, IFLA_GRE_OKEY, okey); if (r < 0) - return log_netdev_error_errno(netdev, r, "Could not append IFLA_GRE_OKEY attribute: %m"); + return r; r = sd_netlink_message_append_u16(m, IFLA_GRE_IFLAGS, iflags); if (r < 0) - return log_netdev_error_errno(netdev, r, "Could not append IFLA_GRE_IFLAGS attribute: %m"); + return r; r = sd_netlink_message_append_u16(m, IFLA_GRE_OFLAGS, oflags); if (r < 0) - return log_netdev_error_errno(netdev, r, "Could not append IFLA_GRE_OFLAGS, attribute: %m"); + return r; if (t->fou_tunnel) { r = sd_netlink_message_append_u16(m, IFLA_GRE_ENCAP_TYPE, t->fou_encap_type); if (r < 0) - return log_netdev_error_errno(netdev, r, "Could not append IFLA_GRE_ENCAP_TYPE attribute: %m"); + return r; r = sd_netlink_message_append_u16(m, IFLA_GRE_ENCAP_SPORT, htobe16(t->encap_src_port)); if (r < 0) - return log_netdev_error_errno(netdev, r, "Could not append IFLA_GRE_ENCAP_SPORT attribute: %m"); + return r; r = sd_netlink_message_append_u16(m, IFLA_GRE_ENCAP_DPORT, htobe16(t->fou_destination_port)); if (r < 0) - return log_netdev_error_errno(netdev, r, "Could not append IFLA_GRE_ENCAP_DPORT attribute: %m"); + return r; } - return r; + return 0; } static int netdev_ip6gre_fill_message_create(NetDev *netdev, Link *link, sd_netlink_message *m) { @@ -406,7 +406,7 @@ static int netdev_ip6gre_fill_message_create(NetDev *netdev, Link *link, sd_netl if (link || t->assign_to_loopback) { r = sd_netlink_message_append_u32(m, IFLA_GRE_LINK, link ? link->ifindex : LOOPBACK_IFINDEX); if (r < 0) - return log_netdev_error_errno(netdev, r, "Could not append IFLA_GRE_LINK attribute: %m"); + return r; } r = tunnel_get_local_address(t, link, &local); @@ -415,25 +415,25 @@ static int netdev_ip6gre_fill_message_create(NetDev *netdev, Link *link, sd_netl r = sd_netlink_message_append_in6_addr(m, IFLA_GRE_LOCAL, &local.in6); if (r < 0) - return log_netdev_error_errno(netdev, r, "Could not append IFLA_GRE_LOCAL attribute: %m"); + return r; r = sd_netlink_message_append_in6_addr(m, IFLA_GRE_REMOTE, &t->remote.in6); if (r < 0) - return log_netdev_error_errno(netdev, r, "Could not append IFLA_GRE_REMOTE attribute: %m"); + return r; r = sd_netlink_message_append_u8(m, IFLA_GRE_TTL, t->ttl); if (r < 0) - return log_netdev_error_errno(netdev, r, "Could not append IFLA_GRE_TTL attribute: %m"); + return r; if (t->ipv6_flowlabel != _NETDEV_IPV6_FLOWLABEL_INVALID) { r = sd_netlink_message_append_u32(m, IFLA_GRE_FLOWINFO, t->ipv6_flowlabel); if (r < 0) - return log_netdev_error_errno(netdev, r, "Could not append IFLA_GRE_FLOWINFO attribute: %m"); + return r; } r = sd_netlink_message_append_u32(m, IFLA_GRE_FLAGS, t->flags); if (r < 0) - return log_netdev_error_errno(netdev, r, "Could not append IFLA_GRE_FLAGS attribute: %m"); + return r; if (t->key != 0) { ikey = okey = htobe32(t->key); @@ -453,21 +453,21 @@ static int netdev_ip6gre_fill_message_create(NetDev *netdev, Link *link, sd_netl r = sd_netlink_message_append_u32(m, IFLA_GRE_IKEY, ikey); if (r < 0) - return log_netdev_error_errno(netdev, r, "Could not append IFLA_GRE_IKEY attribute: %m"); + return r; r = sd_netlink_message_append_u32(m, IFLA_GRE_OKEY, okey); if (r < 0) - return log_netdev_error_errno(netdev, r, "Could not append IFLA_GRE_OKEY attribute: %m"); + return r; r = sd_netlink_message_append_u16(m, IFLA_GRE_IFLAGS, iflags); if (r < 0) - return log_netdev_error_errno(netdev, r, "Could not append IFLA_GRE_IFLAGS attribute: %m"); + return r; r = sd_netlink_message_append_u16(m, IFLA_GRE_OFLAGS, oflags); if (r < 0) - return log_netdev_error_errno(netdev, r, "Could not append IFLA_GRE_OFLAGS, attribute: %m"); + return r; - return r; + return 0; } static int netdev_vti_fill_message_create(NetDev *netdev, Link *link, sd_netlink_message *m) { @@ -489,7 +489,7 @@ static int netdev_vti_fill_message_create(NetDev *netdev, Link *link, sd_netlink if (link || t->assign_to_loopback) { r = sd_netlink_message_append_u32(m, IFLA_VTI_LINK, link ? link->ifindex : LOOPBACK_IFINDEX); if (r < 0) - return log_netdev_error_errno(netdev, r, "Could not append IFLA_VTI_LINK attribute: %m"); + return r; } if (t->key != 0) @@ -501,11 +501,11 @@ static int netdev_vti_fill_message_create(NetDev *netdev, Link *link, sd_netlink r = sd_netlink_message_append_u32(m, IFLA_VTI_IKEY, ikey); if (r < 0) - return log_netdev_error_errno(netdev, r, "Could not append IFLA_VTI_IKEY attribute: %m"); + return r; r = sd_netlink_message_append_u32(m, IFLA_VTI_OKEY, okey); if (r < 0) - return log_netdev_error_errno(netdev, r, "Could not append IFLA_VTI_OKEY attribute: %m"); + return r; r = tunnel_get_local_address(t, link, &local); if (r < 0) @@ -513,13 +513,13 @@ static int netdev_vti_fill_message_create(NetDev *netdev, Link *link, sd_netlink r = netlink_message_append_in_addr_union(m, IFLA_VTI_LOCAL, t->family, &local); if (r < 0) - return log_netdev_error_errno(netdev, r, "Could not append IFLA_VTI_LOCAL attribute: %m"); + return r; r = netlink_message_append_in_addr_union(m, IFLA_VTI_REMOTE, t->family, &t->remote); if (r < 0) - return log_netdev_error_errno(netdev, r, "Could not append IFLA_VTI_REMOTE attribute: %m"); + return r; - return r; + return 0; } static int netdev_ip6tnl_fill_message_create(NetDev *netdev, Link *link, sd_netlink_message *m) { @@ -538,7 +538,7 @@ static int netdev_ip6tnl_fill_message_create(NetDev *netdev, Link *link, sd_netl if (link || t->assign_to_loopback) { r = sd_netlink_message_append_u32(m, IFLA_IPTUN_LINK, link ? link->ifindex : LOOPBACK_IFINDEX); if (r < 0) - return log_netdev_error_errno(netdev, r, "Could not append IFLA_IPTUN_LINK attribute: %m"); + return r; } r = tunnel_get_local_address(t, link, &local); @@ -547,20 +547,20 @@ static int netdev_ip6tnl_fill_message_create(NetDev *netdev, Link *link, sd_netl r = sd_netlink_message_append_in6_addr(m, IFLA_IPTUN_LOCAL, &local.in6); if (r < 0) - return log_netdev_error_errno(netdev, r, "Could not append IFLA_IPTUN_LOCAL attribute: %m"); + return r; r = sd_netlink_message_append_in6_addr(m, IFLA_IPTUN_REMOTE, &t->remote.in6); if (r < 0) - return log_netdev_error_errno(netdev, r, "Could not append IFLA_IPTUN_REMOTE attribute: %m"); + return r; r = sd_netlink_message_append_u8(m, IFLA_IPTUN_TTL, t->ttl); if (r < 0) - return log_netdev_error_errno(netdev, r, "Could not append IFLA_IPTUN_TTL attribute: %m"); + return r; if (t->ipv6_flowlabel != _NETDEV_IPV6_FLOWLABEL_INVALID) { r = sd_netlink_message_append_u32(m, IFLA_IPTUN_FLOWINFO, t->ipv6_flowlabel); if (r < 0) - return log_netdev_error_errno(netdev, r, "Could not append IFLA_IPTUN_FLOWINFO attribute: %m"); + return r; } if (t->copy_dscp) @@ -572,12 +572,12 @@ static int netdev_ip6tnl_fill_message_create(NetDev *netdev, Link *link, sd_netl if (t->encap_limit != 0) { r = sd_netlink_message_append_u8(m, IFLA_IPTUN_ENCAP_LIMIT, t->encap_limit); if (r < 0) - return log_netdev_error_errno(netdev, r, "Could not append IFLA_IPTUN_ENCAP_LIMIT attribute: %m"); + return r; } r = sd_netlink_message_append_u32(m, IFLA_IPTUN_FLAGS, t->flags); if (r < 0) - return log_netdev_error_errno(netdev, r, "Could not append IFLA_IPTUN_FLAGS attribute: %m"); + return r; switch (t->ip6tnl_mode) { case NETDEV_IP6_TNL_MODE_IP6IP6: @@ -594,9 +594,9 @@ static int netdev_ip6tnl_fill_message_create(NetDev *netdev, Link *link, sd_netl r = sd_netlink_message_append_u8(m, IFLA_IPTUN_PROTO, proto); if (r < 0) - return log_netdev_error_errno(netdev, r, "Could not append IFLA_IPTUN_PROTO attribute: %m"); + return r; - return r; + return 0; } static int netdev_tunnel_is_ready_to_create(NetDev *netdev, Link *link) { diff --git a/src/network/netdev/veth.c b/src/network/netdev/veth.c index c946e81fc0..fb00e6667f 100644 --- a/src/network/netdev/veth.c +++ b/src/network/netdev/veth.c @@ -24,12 +24,12 @@ static int netdev_veth_fill_message_create(NetDev *netdev, Link *link, sd_netlin r = sd_netlink_message_open_container(m, VETH_INFO_PEER); if (r < 0) - return log_netdev_error_errno(netdev, r, "Could not append VETH_INFO_PEER attribute: %m"); + return r; if (v->ifname_peer) { r = sd_netlink_message_append_string(m, IFLA_IFNAME, v->ifname_peer); if (r < 0) - return log_netdev_error_errno(netdev, r, "Failed to add netlink interface name: %m"); + return r; } r = netdev_generate_hw_addr(netdev, NULL, v->ifname_peer, &v->hw_addr_peer, &hw_addr); @@ -40,20 +40,20 @@ static int netdev_veth_fill_message_create(NetDev *netdev, Link *link, sd_netlin log_netdev_debug(netdev, "Using MAC address for peer: %s", HW_ADDR_TO_STR(&hw_addr)); r = netlink_message_append_hw_addr(m, IFLA_ADDRESS, &hw_addr); if (r < 0) - return log_netdev_error_errno(netdev, r, "Could not append IFLA_ADDRESS attribute: %m"); + return r; } if (netdev->mtu != 0) { r = sd_netlink_message_append_u32(m, IFLA_MTU, netdev->mtu); if (r < 0) - return log_netdev_error_errno(netdev, r, "Could not append IFLA_MTU attribute: %m"); + return r; } r = sd_netlink_message_close_container(m); if (r < 0) - return log_netdev_error_errno(netdev, r, "Could not append IFLA_INFO_DATA attribute: %m"); + return r; - return r; + return 0; } static int netdev_veth_verify(NetDev *netdev, const char *filename) { diff --git a/src/network/netdev/vlan.c b/src/network/netdev/vlan.c index af3e77963e..3f9f594759 100644 --- a/src/network/netdev/vlan.c +++ b/src/network/netdev/vlan.c @@ -24,12 +24,12 @@ static int netdev_vlan_fill_message_create(NetDev *netdev, Link *link, sd_netlin r = sd_netlink_message_append_u16(req, IFLA_VLAN_ID, v->id); if (r < 0) - return log_netdev_error_errno(netdev, r, "Could not append IFLA_VLAN_ID attribute: %m"); + return r; if (v->protocol >= 0) { r = sd_netlink_message_append_u16(req, IFLA_VLAN_PROTOCOL, htobe16(v->protocol)); if (r < 0) - return log_netdev_error_errno(netdev, r, "Could not append IFLA_VLAN_PROTOCOL attribute: %m"); + return r; } if (v->gvrp != -1) { @@ -54,24 +54,24 @@ static int netdev_vlan_fill_message_create(NetDev *netdev, Link *link, sd_netlin r = sd_netlink_message_append_data(req, IFLA_VLAN_FLAGS, &flags, sizeof(struct ifla_vlan_flags)); if (r < 0) - return log_netdev_error_errno(netdev, r, "Could not append IFLA_VLAN_FLAGS attribute: %m"); + return r; if (!set_isempty(v->egress_qos_maps)) { struct ifla_vlan_qos_mapping *m; r = sd_netlink_message_open_container(req, IFLA_VLAN_EGRESS_QOS); if (r < 0) - return log_netdev_error_errno(netdev, r, "Could not open container IFLA_VLAN_EGRESS_QOS: %m"); + return r; SET_FOREACH(m, v->egress_qos_maps) { r = sd_netlink_message_append_data(req, IFLA_VLAN_QOS_MAPPING, m, sizeof(struct ifla_vlan_qos_mapping)); if (r < 0) - return log_netdev_error_errno(netdev, r, "Could not append IFLA_VLAN_QOS_MAPPING attribute: %m"); + return r; } r = sd_netlink_message_close_container(req); if (r < 0) - return log_netdev_error_errno(netdev, r, "Could not close container IFLA_VLAN_EGRESS_QOS: %m"); + return r; } if (!set_isempty(v->ingress_qos_maps)) { @@ -79,17 +79,17 @@ static int netdev_vlan_fill_message_create(NetDev *netdev, Link *link, sd_netlin r = sd_netlink_message_open_container(req, IFLA_VLAN_INGRESS_QOS); if (r < 0) - return log_netdev_error_errno(netdev, r, "Could not open container IFLA_VLAN_INGRESS_QOS: %m"); + return r; SET_FOREACH(m, v->ingress_qos_maps) { r = sd_netlink_message_append_data(req, IFLA_VLAN_QOS_MAPPING, m, sizeof(struct ifla_vlan_qos_mapping)); if (r < 0) - return log_netdev_error_errno(netdev, r, "Could not append IFLA_VLAN_QOS_MAPPING attribute: %m"); + return r; } r = sd_netlink_message_close_container(req); if (r < 0) - return log_netdev_error_errno(netdev, r, "Could not close container IFLA_VLAN_INGRESS_QOS: %m"); + return r; } return 0; diff --git a/src/network/netdev/vrf.c b/src/network/netdev/vrf.c index b1b6707441..9f75eb63cf 100644 --- a/src/network/netdev/vrf.c +++ b/src/network/netdev/vrf.c @@ -20,9 +20,9 @@ static int netdev_vrf_fill_message_create(NetDev *netdev, Link *link, sd_netlink r = sd_netlink_message_append_u32(m, IFLA_VRF_TABLE, v->table); if (r < 0) - return log_netdev_error_errno(netdev, r, "Could not append IFLA_VRF_TABLE attribute: %m"); + return r; - return r; + return 0; } const NetDevVTable vrf_vtable = { diff --git a/src/network/netdev/vxcan.c b/src/network/netdev/vxcan.c index a0ba048eb1..981854a3f1 100644 --- a/src/network/netdev/vxcan.c +++ b/src/network/netdev/vxcan.c @@ -19,19 +19,19 @@ static int netdev_vxcan_fill_message_create(NetDev *netdev, Link *link, sd_netli r = sd_netlink_message_open_container(m, VXCAN_INFO_PEER); if (r < 0) - return log_netdev_error_errno(netdev, r, "Could not append VXCAN_INFO_PEER attribute: %m"); + return r; if (v->ifname_peer) { r = sd_netlink_message_append_string(m, IFLA_IFNAME, v->ifname_peer); if (r < 0) - return log_netdev_error_errno(netdev, r, "Failed to add vxcan netlink interface peer name: %m"); + return r; } r = sd_netlink_message_close_container(m); if (r < 0) - return log_netdev_error_errno(netdev, r, "Could not append VXCAN_INFO_PEER attribute: %m"); + return r; - return r; + return 0; } static int netdev_vxcan_verify(NetDev *netdev, const char *filename) { diff --git a/src/network/netdev/vxlan.c b/src/network/netdev/vxlan.c index addeb907dd..bdedf3e7a9 100644 --- a/src/network/netdev/vxlan.c +++ b/src/network/netdev/vxlan.c @@ -51,7 +51,7 @@ static int netdev_vxlan_fill_message_create(NetDev *netdev, Link *link, sd_netli if (v->vni <= VXLAN_VID_MAX) { r = sd_netlink_message_append_u32(m, IFLA_VXLAN_ID, v->vni); if (r < 0) - return log_netdev_error_errno(netdev, r, "Could not append IFLA_VXLAN_ID attribute: %m"); + return r; } if (in_addr_is_set(v->group_family, &v->group)) { @@ -60,19 +60,19 @@ static int netdev_vxlan_fill_message_create(NetDev *netdev, Link *link, sd_netli else r = sd_netlink_message_append_in6_addr(m, IFLA_VXLAN_GROUP6, &v->group.in6); if (r < 0) - return log_netdev_error_errno(netdev, r, "Could not append IFLA_VXLAN_GROUP attribute: %m"); + return r; } else if (in_addr_is_set(v->remote_family, &v->remote)) { if (v->remote_family == AF_INET) r = sd_netlink_message_append_in_addr(m, IFLA_VXLAN_GROUP, &v->remote.in); else r = sd_netlink_message_append_in6_addr(m, IFLA_VXLAN_GROUP6, &v->remote.in6); if (r < 0) - return log_netdev_error_errno(netdev, r, "Could not append IFLA_VXLAN_GROUP attribute: %m"); + return r; } r = vxlan_get_local_address(v, link, &local_family, &local); if (r < 0) - return log_netdev_error_errno(netdev, r, "Could not find local address: %m"); + return r; if (in_addr_is_set(local_family, &local)) { if (local_family == AF_INET) @@ -80,84 +80,84 @@ static int netdev_vxlan_fill_message_create(NetDev *netdev, Link *link, sd_netli else r = sd_netlink_message_append_in6_addr(m, IFLA_VXLAN_LOCAL6, &local.in6); if (r < 0) - return log_netdev_error_errno(netdev, r, "Could not append IFLA_VXLAN_LOCAL attribute: %m"); + return r; } r = sd_netlink_message_append_u32(m, IFLA_VXLAN_LINK, link ? link->ifindex : 0); if (r < 0) - return log_netdev_error_errno(netdev, r, "Could not append IFLA_VXLAN_LINK attribute: %m"); + return r; if (v->inherit) { r = sd_netlink_message_append_flag(m, IFLA_VXLAN_TTL_INHERIT); if (r < 0) - return log_netdev_error_errno(netdev, r, "Could not append IFLA_VXLAN_TTL_INHERIT attribute: %m"); + return r; } else { r = sd_netlink_message_append_u8(m, IFLA_VXLAN_TTL, v->ttl); if (r < 0) - return log_netdev_error_errno(netdev, r, "Could not append IFLA_VXLAN_TTL attribute: %m"); + return r; } if (v->tos != 0) { r = sd_netlink_message_append_u8(m, IFLA_VXLAN_TOS, v->tos); if (r < 0) - return log_netdev_error_errno(netdev, r, "Could not append IFLA_VXLAN_TOS attribute: %m"); + return r; } r = sd_netlink_message_append_u8(m, IFLA_VXLAN_LEARNING, v->learning); if (r < 0) - return log_netdev_error_errno(netdev, r, "Could not append IFLA_VXLAN_LEARNING attribute: %m"); + return r; r = sd_netlink_message_append_u8(m, IFLA_VXLAN_RSC, v->route_short_circuit); if (r < 0) - return log_netdev_error_errno(netdev, r, "Could not append IFLA_VXLAN_RSC attribute: %m"); + return r; r = sd_netlink_message_append_u8(m, IFLA_VXLAN_PROXY, v->arp_proxy); if (r < 0) - return log_netdev_error_errno(netdev, r, "Could not append IFLA_VXLAN_PROXY attribute: %m"); + return r; r = sd_netlink_message_append_u8(m, IFLA_VXLAN_L2MISS, v->l2miss); if (r < 0) - return log_netdev_error_errno(netdev, r, "Could not append IFLA_VXLAN_L2MISS attribute: %m"); + return r; r = sd_netlink_message_append_u8(m, IFLA_VXLAN_L3MISS, v->l3miss); if (r < 0) - return log_netdev_error_errno(netdev, r, "Could not append IFLA_VXLAN_L3MISS attribute: %m"); + return r; if (v->fdb_ageing != 0) { r = sd_netlink_message_append_u32(m, IFLA_VXLAN_AGEING, v->fdb_ageing / USEC_PER_SEC); if (r < 0) - return log_netdev_error_errno(netdev, r, "Could not append IFLA_VXLAN_AGEING attribute: %m"); + return r; } if (v->max_fdb != 0) { r = sd_netlink_message_append_u32(m, IFLA_VXLAN_LIMIT, v->max_fdb); if (r < 0) - return log_netdev_error_errno(netdev, r, "Could not append IFLA_VXLAN_LIMIT attribute: %m"); + return r; } r = sd_netlink_message_append_u8(m, IFLA_VXLAN_UDP_CSUM, v->udpcsum); if (r < 0) - return log_netdev_error_errno(netdev, r, "Could not append IFLA_VXLAN_UDP_CSUM attribute: %m"); + return r; r = sd_netlink_message_append_u8(m, IFLA_VXLAN_UDP_ZERO_CSUM6_TX, v->udp6zerocsumtx); if (r < 0) - return log_netdev_error_errno(netdev, r, "Could not append IFLA_VXLAN_UDP_ZERO_CSUM6_TX attribute: %m"); + return r; r = sd_netlink_message_append_u8(m, IFLA_VXLAN_UDP_ZERO_CSUM6_RX, v->udp6zerocsumrx); if (r < 0) - return log_netdev_error_errno(netdev, r, "Could not append IFLA_VXLAN_UDP_ZERO_CSUM6_RX attribute: %m"); + return r; r = sd_netlink_message_append_u8(m, IFLA_VXLAN_REMCSUM_TX, v->remote_csum_tx); if (r < 0) - return log_netdev_error_errno(netdev, r, "Could not append IFLA_VXLAN_REMCSUM_TX attribute: %m"); + return r; r = sd_netlink_message_append_u8(m, IFLA_VXLAN_REMCSUM_RX, v->remote_csum_rx); if (r < 0) - return log_netdev_error_errno(netdev, r, "Could not append IFLA_VXLAN_REMCSUM_RX attribute: %m"); + return r; r = sd_netlink_message_append_u16(m, IFLA_VXLAN_PORT, htobe16(v->dest_port)); if (r < 0) - return log_netdev_error_errno(netdev, r, "Could not append IFLA_VXLAN_PORT attribute: %m"); + return r; if (v->port_range.low != 0 || v->port_range.high != 0) { struct ifla_vxlan_port_range port_range; @@ -167,32 +167,32 @@ static int netdev_vxlan_fill_message_create(NetDev *netdev, Link *link, sd_netli r = sd_netlink_message_append_data(m, IFLA_VXLAN_PORT_RANGE, &port_range, sizeof(port_range)); if (r < 0) - return log_netdev_error_errno(netdev, r, "Could not append IFLA_VXLAN_PORT_RANGE attribute: %m"); + return r; } r = sd_netlink_message_append_u32(m, IFLA_VXLAN_LABEL, htobe32(v->flow_label)); if (r < 0) - return log_netdev_error_errno(netdev, r, "Could not append IFLA_VXLAN_LABEL attribute: %m"); + return r; if (v->group_policy) { r = sd_netlink_message_append_flag(m, IFLA_VXLAN_GBP); if (r < 0) - return log_netdev_error_errno(netdev, r, "Could not append IFLA_VXLAN_GBP attribute: %m"); + return r; } if (v->generic_protocol_extension) { r = sd_netlink_message_append_flag(m, IFLA_VXLAN_GPE); if (r < 0) - return log_netdev_error_errno(netdev, r, "Could not append IFLA_VXLAN_GPE attribute: %m"); + return r; } if (v->df != _NETDEV_VXLAN_DF_INVALID) { r = sd_netlink_message_append_u8(m, IFLA_VXLAN_DF, v->df); if (r < 0) - return log_netdev_error_errno(netdev, r, "Could not append IFLA_VXLAN_DF attribute: %m"); + return r; } - return r; + return 0; } int config_parse_vxlan_address( diff --git a/src/network/netdev/xfrm.c b/src/network/netdev/xfrm.c index 4b7e73b37a..05844b8321 100644 --- a/src/network/netdev/xfrm.c +++ b/src/network/netdev/xfrm.c @@ -18,11 +18,11 @@ static int xfrm_fill_message_create(NetDev *netdev, Link *link, sd_netlink_messa r = sd_netlink_message_append_u32(message, IFLA_XFRM_LINK, link ? link->ifindex : LOOPBACK_IFINDEX); if (r < 0) - return log_netdev_error_errno(netdev, r, "Could not append IFLA_XFRM_LINK: %m"); + return r; r = sd_netlink_message_append_u32(message, IFLA_XFRM_IF_ID, x->if_id); if (r < 0) - return log_netdev_error_errno(netdev, r, "Could not append IFLA_XFRM_IF_ID: %m"); + return r; return 0; } -- cgit v1.2.3 From d15cba96470b86194a0a5268c259c22eb593f106 Mon Sep 17 00:00:00 2001 From: Zbigniew Jędrzejewski-Szmek Date: Tue, 4 Jan 2022 19:16:16 +0100 Subject: network: use SYNTHETIC_ERRNO in one more place --- src/network/netdev/vxcan.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/network/netdev/vxcan.c b/src/network/netdev/vxcan.c index 981854a3f1..83269b0707 100644 --- a/src/network/netdev/vxcan.c +++ b/src/network/netdev/vxcan.c @@ -44,10 +44,9 @@ static int netdev_vxcan_verify(NetDev *netdev, const char *filename) { assert(v); - if (!v->ifname_peer) { - log_netdev_warning(netdev, "VxCan NetDev without peer name configured in %s. Ignoring", filename); - return -EINVAL; - } + if (!v->ifname_peer) + return log_netdev_warning_errno(netdev, SYNTHETIC_ERRNO(EINVAL), + "VxCan NetDev without peer name configured in %s. Ignoring", filename); return 0; } -- cgit v1.2.3 From 81f01be0b8ea5886f7d4d3a3a8ace65c8e780d6d Mon Sep 17 00:00:00 2001 From: Zbigniew Jędrzejewski-Szmek Date: Tue, 4 Jan 2022 19:37:55 +0100 Subject: network: replace more detailed netlink append messages Some refactoring was needed here to avoid duplicate messages. Some select-and-paste errors were fixed on the way. systemd-networkd is thinner by 8k. --- src/network/netdev/batadv.c | 51 ++++++++++++++++++------------- src/network/netdev/bridge.c | 74 +++++++++++++++++++++++++-------------------- 2 files changed, 71 insertions(+), 54 deletions(-) diff --git a/src/network/netdev/batadv.c b/src/network/netdev/batadv.c index b67fc8cb6e..2a13aa31dd 100644 --- a/src/network/netdev/batadv.c +++ b/src/network/netdev/batadv.c @@ -114,64 +114,73 @@ static int netdev_batman_set_handler(sd_netlink *rtnl, sd_netlink_message *m, Ne return 1; } -static int netdev_batadv_post_create(NetDev *netdev, Link *link, sd_netlink_message *m) { +static int netdev_batadv_post_create_message(NetDev *netdev, sd_netlink_message *message) { BatmanAdvanced *b; int r; - _cleanup_(sd_netlink_message_unrefp) sd_netlink_message *message = NULL; - assert(netdev); - - b = BATADV(netdev); - assert(b); - - r = sd_genl_message_new(netdev->manager->genl, BATADV_NL_NAME, BATADV_CMD_SET_MESH, &message); - if (r < 0) - return log_netdev_error_errno(netdev, r, "Failed to allocate generic netlink message: %m"); + assert_se(b = BATADV(netdev)); r = sd_netlink_message_append_u32(message, BATADV_ATTR_MESH_IFINDEX, netdev->ifindex); if (r < 0) - return log_netdev_error_errno(netdev, r, "Failed to set ifindex: %m"); + return r; r = sd_netlink_message_append_u8(message, BATADV_ATTR_GW_MODE, b->gateway_mode); if (r < 0) - return log_netdev_error_errno(netdev, r, "Failed to set gateway_mode: %m"); + return r; r = sd_netlink_message_append_u8(message, BATADV_ATTR_AGGREGATED_OGMS_ENABLED, b->aggregation); if (r < 0) - return log_netdev_error_errno(netdev, r, "Failed to set aggregation: %m"); + return r; r = sd_netlink_message_append_u8(message, BATADV_ATTR_BRIDGE_LOOP_AVOIDANCE_ENABLED, b->bridge_loop_avoidance); if (r < 0) - return log_netdev_error_errno(netdev, r, "Failed to set bridge_loop_avoidance: %m"); + return r; r = sd_netlink_message_append_u8(message, BATADV_ATTR_DISTRIBUTED_ARP_TABLE_ENABLED, b->distributed_arp_table); if (r < 0) - return log_netdev_error_errno(netdev, r, "Failed to set distributed_arp_table: %m"); + return r; r = sd_netlink_message_append_u8(message, BATADV_ATTR_FRAGMENTATION_ENABLED, b->fragmentation); if (r < 0) - return log_netdev_error_errno(netdev, r, "Failed to set fragmentation: %m"); + return r; r = sd_netlink_message_append_u8(message, BATADV_ATTR_HOP_PENALTY, b->hop_penalty); if (r < 0) - return log_netdev_error_errno(netdev, r, "Failed to set hop_penalty: %m"); + return r; r = sd_netlink_message_append_u32(message, BATADV_ATTR_ORIG_INTERVAL, DIV_ROUND_UP(b->originator_interval, USEC_PER_MSEC)); if (r < 0) - return log_netdev_error_errno(netdev, r, "Failed to set orig_interval: %m"); + return r; r = sd_netlink_message_append_u32(message, BATADV_ATTR_GW_BANDWIDTH_DOWN, b->gateway_bandwidth_down); if (r < 0) - return log_netdev_error_errno(netdev, r, "Failed to set gateway_bandwidth_down: %m"); + return r; r = sd_netlink_message_append_u32(message, BATADV_ATTR_GW_BANDWIDTH_UP, b->gateway_bandwidth_up); if (r < 0) - return log_netdev_error_errno(netdev, r, "Failed to set gateway_bandwidth_up: %m"); + return r; + + return 0; +} + +static int netdev_batadv_post_create(NetDev *netdev, Link *link, sd_netlink_message *m) { + _cleanup_(sd_netlink_message_unrefp) sd_netlink_message *message = NULL; + int r; + + assert(netdev); + + r = sd_genl_message_new(netdev->manager->genl, BATADV_NL_NAME, BATADV_CMD_SET_MESH, &message); + if (r < 0) + return log_netdev_error_errno(netdev, r, "Could not allocate netlink message: %m"); + + r = netdev_batadv_post_create_message(netdev, message); + if (r < 0) + return log_netdev_error_errno(netdev, r, "Could not create netlink message: %m"); r = netlink_call_async(netdev->manager->genl, NULL, message, netdev_batman_set_handler, netdev_destroy_callback, netdev); if (r < 0) - return log_netdev_error_errno(netdev, r, "Could not send batman device message: %m"); + return log_netdev_error_errno(netdev, r, "Could not send netlink message: %m"); netdev_ref(netdev); diff --git a/src/network/netdev/bridge.c b/src/network/netdev/bridge.c index 64d65493ca..7c38708121 100644 --- a/src/network/netdev/bridge.c +++ b/src/network/netdev/bridge.c @@ -45,124 +45,132 @@ static int netdev_bridge_set_handler(sd_netlink *rtnl, sd_netlink_message *m, Ne return 1; } -static int netdev_bridge_post_create(NetDev *netdev, Link *link, sd_netlink_message *m) { - _cleanup_(sd_netlink_message_unrefp) sd_netlink_message *req = NULL; +static int netdev_bridge_post_create_message(NetDev *netdev, sd_netlink_message *req) { Bridge *b; int r; - assert(netdev); - - b = BRIDGE(netdev); - - assert(b); - - r = sd_rtnl_message_new_link(netdev->manager->rtnl, &req, RTM_NEWLINK, netdev->ifindex); - if (r < 0) - return log_netdev_error_errno(netdev, r, "Could not allocate RTM_SETLINK message: %m"); - - r = sd_netlink_message_set_flags(req, NLM_F_REQUEST | NLM_F_ACK); - if (r < 0) - return log_link_error_errno(link, r, "Could not set netlink flags: %m"); + assert_se(b = BRIDGE(netdev)); r = sd_netlink_message_open_container(req, IFLA_LINKINFO); if (r < 0) - return log_netdev_error_errno(netdev, r, "Could not append IFLA_LINKINFO attribute: %m"); + return r; r = sd_netlink_message_open_container_union(req, IFLA_INFO_DATA, netdev_kind_to_string(netdev->kind)); if (r < 0) - return log_netdev_error_errno(netdev, r, "Could not append IFLA_INFO_DATA attribute: %m"); + return r; /* convert to jiffes */ if (b->forward_delay != USEC_INFINITY) { r = sd_netlink_message_append_u32(req, IFLA_BR_FORWARD_DELAY, usec_to_jiffies(b->forward_delay)); if (r < 0) - return log_netdev_error_errno(netdev, r, "Could not append IFLA_BR_FORWARD_DELAY attribute: %m"); + return r; } if (b->hello_time > 0) { r = sd_netlink_message_append_u32(req, IFLA_BR_HELLO_TIME, usec_to_jiffies(b->hello_time)); if (r < 0) - return log_netdev_error_errno(netdev, r, "Could not append IFLA_BR_HELLO_TIME attribute: %m"); + return r; } if (b->max_age > 0) { r = sd_netlink_message_append_u32(req, IFLA_BR_MAX_AGE, usec_to_jiffies(b->max_age)); if (r < 0) - return log_netdev_error_errno(netdev, r, "Could not append IFLA_BR_MAX_AGE attribute: %m"); + return r; } if (b->ageing_time != USEC_INFINITY) { r = sd_netlink_message_append_u32(req, IFLA_BR_AGEING_TIME, usec_to_jiffies(b->ageing_time)); if (r < 0) - return log_netdev_error_errno(netdev, r, "Could not append IFLA_BR_AGEING_TIME attribute: %m"); + return r; } if (b->priority > 0) { r = sd_netlink_message_append_u16(req, IFLA_BR_PRIORITY, b->priority); if (r < 0) - return log_netdev_error_errno(netdev, r, "Could not append IFLA_BR_PRIORITY attribute: %m"); + return r; } if (b->group_fwd_mask > 0) { r = sd_netlink_message_append_u16(req, IFLA_BR_GROUP_FWD_MASK, b->group_fwd_mask); if (r < 0) - return log_netdev_error_errno(netdev, r, "Could not append IFLA_BR_GROUP_FWD_MASK attribute: %m"); + return r; } if (b->default_pvid != VLANID_INVALID) { r = sd_netlink_message_append_u16(req, IFLA_BR_VLAN_DEFAULT_PVID, b->default_pvid); if (r < 0) - return log_netdev_error_errno(netdev, r, "Could not append IFLA_BR_VLAN_DEFAULT_PVID attribute: %m"); + return r; } if (b->mcast_querier >= 0) { r = sd_netlink_message_append_u8(req, IFLA_BR_MCAST_QUERIER, b->mcast_querier); if (r < 0) - return log_netdev_error_errno(netdev, r, "Could not append IFLA_BR_MCAST_QUERIER attribute: %m"); + return r; } if (b->mcast_snooping >= 0) { r = sd_netlink_message_append_u8(req, IFLA_BR_MCAST_SNOOPING, b->mcast_snooping); if (r < 0) - return log_netdev_error_errno(netdev, r, "Could not append IFLA_BR_MCAST_SNOOPING attribute: %m"); + return r; } if (b->vlan_filtering >= 0) { r = sd_netlink_message_append_u8(req, IFLA_BR_VLAN_FILTERING, b->vlan_filtering); if (r < 0) - return log_netdev_error_errno(netdev, r, "Could not append IFLA_BR_VLAN_FILTERING attribute: %m"); + return r; } if (b->vlan_protocol >= 0) { r = sd_netlink_message_append_u16(req, IFLA_BR_VLAN_PROTOCOL, b->vlan_protocol); if (r < 0) - return log_netdev_error_errno(netdev, r, "Could not append IFLA_BR_VLAN_PROTOCOL attribute: %m"); + return r; } if (b->stp >= 0) { r = sd_netlink_message_append_u32(req, IFLA_BR_STP_STATE, b->stp); if (r < 0) - return log_netdev_error_errno(netdev, r, "Could not append IFLA_BR_STP_STATE attribute: %m"); + return r; } if (b->igmp_version > 0) { r = sd_netlink_message_append_u8(req, IFLA_BR_MCAST_IGMP_VERSION, b->igmp_version); if (r < 0) - return log_netdev_error_errno(netdev, r, "Could not append IFLA_BR_MCAST_IGMP_VERSION attribute: %m"); + return r; } r = sd_netlink_message_close_container(req); if (r < 0) - return log_netdev_error_errno(netdev, r, "Could not append IFLA_LINKINFO attribute: %m"); + return r; r = sd_netlink_message_close_container(req); if (r < 0) - return log_netdev_error_errno(netdev, r, "Could not append IFLA_INFO_DATA attribute: %m"); + return r; + + return 0; +} + +static int netdev_bridge_post_create(NetDev *netdev, Link *link, sd_netlink_message *m) { + _cleanup_(sd_netlink_message_unrefp) sd_netlink_message *req = NULL; + int r; + + assert(netdev); + + r = sd_rtnl_message_new_link(netdev->manager->rtnl, &req, RTM_NEWLINK, netdev->ifindex); + if (r < 0) + return log_netdev_error_errno(netdev, r, "Could not allocate netlink message: %m"); + + r = sd_netlink_message_set_flags(req, NLM_F_REQUEST | NLM_F_ACK); + if (r < 0) + return log_link_error_errno(link, r, "Could not set netlink message flags: %m"); + + r = netdev_bridge_post_create_message(netdev, req); + if (r < 0) + return log_netdev_error_errno(netdev, r, "Could not create netlink message: %m"); r = netlink_call_async(netdev->manager->rtnl, NULL, req, netdev_bridge_set_handler, netdev_destroy_callback, netdev); if (r < 0) - return log_netdev_error_errno(netdev, r, "Could not send rtnetlink message: %m"); + return log_netdev_error_errno(netdev, r, "Could not send netlink message: %m"); netdev_ref(netdev); -- cgit v1.2.3 From 0c50cb50bde80d22594de18077ab02fa8c04323b Mon Sep 17 00:00:00 2001 From: Zbigniew Jędrzejewski-Szmek Date: Tue, 4 Jan 2022 21:20:54 +0100 Subject: network: split out netdev_create_message(), simplify logging --- src/network/netdev/netdev.c | 78 +++++++++++++++++++++++++-------------------- 1 file changed, 44 insertions(+), 34 deletions(-) diff --git a/src/network/netdev/netdev.c b/src/network/netdev/netdev.c index f93694e469..18d118e230 100644 --- a/src/network/netdev/netdev.c +++ b/src/network/netdev/netdev.c @@ -478,34 +478,14 @@ finalize: return 0; } -static int netdev_create(NetDev *netdev, Link *link, link_netlink_message_handler_t callback) { - _cleanup_(sd_netlink_message_unrefp) sd_netlink_message *m = NULL; - struct hw_addr_data hw_addr; +static int netdev_create_message(NetDev *netdev, Link *link, sd_netlink_message *m) { int r; - assert(netdev); - assert(!link || callback); - - /* create netdev */ - if (NETDEV_VTABLE(netdev)->create) { - assert(!link); - - r = NETDEV_VTABLE(netdev)->create(netdev); - if (r < 0) - return r; - - log_netdev_debug(netdev, "Created"); - return 0; - } - - r = sd_rtnl_message_new_link(netdev->manager->rtnl, &m, RTM_NEWLINK, 0); - if (r < 0) - return log_netdev_error_errno(netdev, r, "Could not allocate RTM_NEWLINK message: %m"); - r = sd_netlink_message_append_string(m, IFLA_IFNAME, netdev->ifname); if (r < 0) - return log_netdev_error_errno(netdev, r, "Could not append IFLA_IFNAME, attribute: %m"); + return r; + struct hw_addr_data hw_addr; r = netdev_generate_hw_addr(netdev, link, netdev->ifname, &netdev->hw_addr, &hw_addr); if (r < 0) return r; @@ -514,59 +494,89 @@ static int netdev_create(NetDev *netdev, Link *link, link_netlink_message_handle log_netdev_debug(netdev, "Using MAC address: %s", HW_ADDR_TO_STR(&hw_addr)); r = netlink_message_append_hw_addr(m, IFLA_ADDRESS, &hw_addr); if (r < 0) - return log_netdev_error_errno(netdev, r, "Could not append IFLA_ADDRESS attribute: %m"); + return r; } if (netdev->mtu != 0) { r = sd_netlink_message_append_u32(m, IFLA_MTU, netdev->mtu); if (r < 0) - return log_netdev_error_errno(netdev, r, "Could not append IFLA_MTU attribute: %m"); + return r; } if (link) { r = sd_netlink_message_append_u32(m, IFLA_LINK, link->ifindex); if (r < 0) - return log_netdev_error_errno(netdev, r, "Could not append IFLA_LINK attribute: %m"); + return r; } r = sd_netlink_message_open_container(m, IFLA_LINKINFO); if (r < 0) - return log_netdev_error_errno(netdev, r, "Could not append IFLA_LINKINFO attribute: %m"); + return r; if (NETDEV_VTABLE(netdev)->fill_message_create) { r = sd_netlink_message_open_container_union(m, IFLA_INFO_DATA, netdev_kind_to_string(netdev->kind)); if (r < 0) - return log_netdev_error_errno(netdev, r, "Could not append IFLA_INFO_DATA attribute: %m"); + return r; r = NETDEV_VTABLE(netdev)->fill_message_create(netdev, link, m); if (r < 0) - return log_netdev_error_errno(netdev, r, "Could not create netlink message: %m"); + return r; r = sd_netlink_message_close_container(m); if (r < 0) - return log_netdev_error_errno(netdev, r, "Could not append IFLA_INFO_DATA attribute: %m"); + return r; } else { r = sd_netlink_message_append_string(m, IFLA_INFO_KIND, netdev_kind_to_string(netdev->kind)); if (r < 0) - return log_netdev_error_errno(netdev, r, "Could not append IFLA_INFO_KIND attribute: %m"); + return r; } r = sd_netlink_message_close_container(m); if (r < 0) - return log_netdev_error_errno(netdev, r, "Could not append IFLA_LINKINFO attribute: %m"); + return r; + + return 0; +} + +static int netdev_create(NetDev *netdev, Link *link, link_netlink_message_handler_t callback) { + _cleanup_(sd_netlink_message_unrefp) sd_netlink_message *m = NULL; + int r; + + assert(netdev); + assert(!link || callback); + + /* create netdev */ + if (NETDEV_VTABLE(netdev)->create) { + assert(!link); + + r = NETDEV_VTABLE(netdev)->create(netdev); + if (r < 0) + return r; + + log_netdev_debug(netdev, "Created"); + return 0; + } + + r = sd_rtnl_message_new_link(netdev->manager->rtnl, &m, RTM_NEWLINK, 0); + if (r < 0) + return log_netdev_error_errno(netdev, r, "Could not allocate netlink message: %m"); + + r = netdev_create_message(netdev, link, m); + if (r < 0) + return log_netdev_error_errno(netdev, r, "Could not create netlink message: %m"); if (link) { r = netlink_call_async(netdev->manager->rtnl, NULL, m, callback, link_netlink_destroy_callback, link); if (r < 0) - return log_netdev_error_errno(netdev, r, "Could not send rtnetlink message: %m"); + return log_netdev_error_errno(netdev, r, "Could not send netlink message: %m"); link_ref(link); } else { r = netlink_call_async(netdev->manager->rtnl, NULL, m, netdev_create_handler, netdev_destroy_callback, netdev); if (r < 0) - return log_netdev_error_errno(netdev, r, "Could not send rtnetlink message: %m"); + return log_netdev_error_errno(netdev, r, "Could not send netlink message: %m"); netdev_ref(netdev); } -- cgit v1.2.3 From 2f64865b0e9b85c62d06159253ef1be42a04184d Mon Sep 17 00:00:00 2001 From: Zbigniew Jędrzejewski-Szmek Date: Tue, 4 Jan 2022 21:28:23 +0100 Subject: network: split out netdev_fill_fou_tunnel_message(), simplify logging --- src/network/netdev/fou-tunnel.c | 50 ++++++++++++++++++++++++----------------- 1 file changed, 29 insertions(+), 21 deletions(-) diff --git a/src/network/netdev/fou-tunnel.c b/src/network/netdev/fou-tunnel.c index bc4c108a22..cd8f2f8087 100644 --- a/src/network/netdev/fou-tunnel.c +++ b/src/network/netdev/fou-tunnel.c @@ -24,30 +24,21 @@ DEFINE_STRING_TABLE_LOOKUP(fou_encap_type, FooOverUDPEncapType); DEFINE_CONFIG_PARSE_ENUM(config_parse_fou_encap_type, fou_encap_type, FooOverUDPEncapType, "Failed to parse Encapsulation="); -static int netdev_fill_fou_tunnel_message(NetDev *netdev, sd_netlink_message **ret) { - _cleanup_(sd_netlink_message_unrefp) sd_netlink_message *m = NULL; +static int netdev_fill_fou_tunnel_message(NetDev *netdev, sd_netlink_message *m) { FouTunnel *t; uint8_t encap_type; int r; - assert(netdev); - - t = FOU(netdev); - - assert(t); - - r = sd_genl_message_new(netdev->manager->genl, FOU_GENL_NAME, FOU_CMD_ADD, &m); - if (r < 0) - return log_netdev_error_errno(netdev, r, "Failed to allocate generic netlink message: %m"); + assert_se(t = FOU(netdev)); r = sd_netlink_message_append_u16(m, FOU_ATTR_PORT, htobe16(t->port)); if (r < 0) - return log_netdev_error_errno(netdev, r, "Could not append FOU_ATTR_PORT attribute: %m"); + return r; if (IN_SET(t->peer_family, AF_INET, AF_INET6)) { r = sd_netlink_message_append_u16(m, FOU_ATTR_PEER_PORT, htobe16(t->peer_port)); if (r < 0) - return log_netdev_error_errno(netdev, r, "Could not append FOU_ATTR_PEER_PORT attribute: %m"); + return r; } switch (t->fou_encap_type) { @@ -63,36 +54,53 @@ static int netdev_fill_fou_tunnel_message(NetDev *netdev, sd_netlink_message **r r = sd_netlink_message_append_u8(m, FOU_ATTR_TYPE, encap_type); if (r < 0) - return log_netdev_error_errno(netdev, r, "Could not append FOU_ATTR_TYPE attribute: %m"); + return r; r = sd_netlink_message_append_u8(m, FOU_ATTR_AF, AF_INET); if (r < 0) - return log_netdev_error_errno(netdev, r, "Could not append FOU_ATTR_AF attribute: %m"); + return r; r = sd_netlink_message_append_u8(m, FOU_ATTR_IPPROTO, t->fou_protocol); if (r < 0) - return log_netdev_error_errno(netdev, r, "Could not append FOU_ATTR_IPPROTO attribute: %m"); + return r; if (t->local_family == AF_INET) { r = sd_netlink_message_append_in_addr(m, FOU_ATTR_LOCAL_V4, &t->local.in); if (r < 0) - return log_netdev_error_errno(netdev, r, "Could not append FOU_ATTR_LOCAL_V4 attribute: %m"); + return r; } else if (t->local_family == AF_INET6) { r = sd_netlink_message_append_in6_addr(m, FOU_ATTR_LOCAL_V6, &t->local.in6); if (r < 0) - return log_netdev_error_errno(netdev, r, "Could not append FOU_ATTR_LOCAL_V6 attribute: %m"); + return r; } if (t->peer_family == AF_INET) { r = sd_netlink_message_append_in_addr(m, FOU_ATTR_PEER_V4, &t->peer.in); if (r < 0) - return log_netdev_error_errno(netdev, r, "Could not append FOU_ATTR_PEER_V4 attribute: %m"); + return r; } else if (t->peer_family == AF_INET6){ r = sd_netlink_message_append_in6_addr(m, FOU_ATTR_PEER_V6, &t->peer.in6); if (r < 0) - return log_netdev_error_errno(netdev, r, "Could not append FOU_ATTR_PEER_V6 attribute: %m"); + return r; } + return 0; +} + +static int netdev_create_fou_tunnel_message(NetDev *netdev, sd_netlink_message **ret) { + _cleanup_(sd_netlink_message_unrefp) sd_netlink_message *m = NULL; + int r; + + assert(netdev); + + r = sd_genl_message_new(netdev->manager->genl, FOU_GENL_NAME, FOU_CMD_ADD, &m); + if (r < 0) + return log_netdev_error_errno(netdev, r, "Could not allocate netlink message: %m"); + + r = netdev_fill_fou_tunnel_message(netdev, m); + if (r < 0) + return log_netdev_error_errno(netdev, r, "Could not create netlink message: %m"); + *ret = TAKE_PTR(m); return 0; } @@ -124,7 +132,7 @@ static int netdev_fou_tunnel_create(NetDev *netdev) { assert(netdev); assert(FOU(netdev)); - r = netdev_fill_fou_tunnel_message(netdev, &m); + r = netdev_create_fou_tunnel_message(netdev, &m); if (r < 0) return r; -- cgit v1.2.3 From eff692502b8607c7fc409a18c53d2d4e8210726a Mon Sep 17 00:00:00 2001 From: Zbigniew Jędrzejewski-Szmek Date: Tue, 4 Jan 2022 21:34:21 +0100 Subject: network: move logging from ipoib_set_netlink_message() to the caller --- src/network/netdev/ipoib.c | 14 +++++++------- src/network/networkd-setlink.c | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/src/network/netdev/ipoib.c b/src/network/netdev/ipoib.c index 630488cda9..0e27f5f044 100644 --- a/src/network/netdev/ipoib.c +++ b/src/network/netdev/ipoib.c @@ -66,35 +66,35 @@ int ipoib_set_netlink_message(Link *link, sd_netlink_message *m) { r = sd_netlink_message_set_flags(m, NLM_F_REQUEST | NLM_F_ACK); if (r < 0) - return log_link_debug_errno(link, r, "Could not set netlink flags: %m"); + return r; r = sd_netlink_message_open_container(m, IFLA_LINKINFO); if (r < 0) - return log_link_debug_errno(link, r, "Failed to open IFLA_LINKINFO container: %m"); + return r; r = sd_netlink_message_open_container_union(m, IFLA_INFO_DATA, link->kind); if (r < 0) - return log_link_debug_errno(link, r, "Could not open IFLA_INFO_DATA container: %m"); + return r; if (link->network->ipoib_mode >= 0) { r = sd_netlink_message_append_u16(m, IFLA_IPOIB_MODE, link->network->ipoib_mode); if (r < 0) - return log_link_debug_errno(link, r, "Could not append IFLA_IPOIB_MODE attribute: %m"); + return r; } if (link->network->ipoib_umcast >= 0) { r = sd_netlink_message_append_u16(m, IFLA_IPOIB_UMCAST, link->network->ipoib_umcast); if (r < 0) - return log_link_debug_errno(link, r, "Could not append IFLA_IPOIB_UMCAST attribute: %m"); + return r; } r = sd_netlink_message_close_container(m); if (r < 0) - return log_link_debug_errno(link, r, "Failed to close IFLA_INFO_DATA container: %m"); + return r; r = sd_netlink_message_close_container(m); if (r < 0) - return log_link_debug_errno(link, r, "Failed to close IFLA_LINKINFO container: %m"); + return r; return 0; } diff --git a/src/network/networkd-setlink.c b/src/network/networkd-setlink.c index b9fd1d749e..2fcca1f5c0 100644 --- a/src/network/networkd-setlink.c +++ b/src/network/networkd-setlink.c @@ -476,7 +476,7 @@ static int link_configure( case SET_LINK_IPOIB: r = ipoib_set_netlink_message(link, req); if (r < 0) - return r; + return log_link_debug_errno(link, r, "Could not create netlink message: %m"); break; case SET_LINK_MASTER: r = sd_netlink_message_append_u32(req, IFLA_MASTER, PTR_TO_UINT32(userdata)); -- cgit v1.2.3 From 2a3cca04c494f061226174aa4ccd6dec48e8bcd7 Mon Sep 17 00:00:00 2001 From: Zbigniew Jędrzejewski-Szmek Date: Wed, 5 Jan 2022 11:05:02 +0100 Subject: network: de-duplicate logging in bridge_vlan_append_info() and the caller The remaining message is changed, because the user would most likely not understand that "append VLANs" is just talking about the netlink message. --- src/network/networkd-bridge-vlan.c | 12 +++++------- src/network/networkd-setlink.c | 2 +- 2 files changed, 6 insertions(+), 8 deletions(-) diff --git a/src/network/networkd-bridge-vlan.c b/src/network/networkd-bridge-vlan.c index 3153bf6984..36e3610a8f 100644 --- a/src/network/networkd-bridge-vlan.c +++ b/src/network/networkd-bridge-vlan.c @@ -65,11 +65,9 @@ int bridge_vlan_append_info( for (int k = 0; k < BRIDGE_VLAN_BITMAP_LEN; k++) { uint32_t untagged_map = br_untagged_bitmap[k]; uint32_t vid_map = br_vid_bitmap[k]; - unsigned base_bit; - int i; + unsigned base_bit = k * 32; + int i = -1; - base_bit = k * 32; - i = -1; done = false; do { int j = find_next_bit(i, vid_map); @@ -106,14 +104,14 @@ int bridge_vlan_append_info( r = sd_netlink_message_append_data(req, IFLA_BRIDGE_VLAN_INFO, &br_vlan, sizeof(br_vlan)); if (r < 0) - return log_link_error_errno(link, r, "Could not append IFLA_BRIDGE_VLAN_INFO attribute: %m"); + return r; } else { br_vlan.vid = begin; br_vlan.flags |= BRIDGE_VLAN_INFO_RANGE_BEGIN; r = sd_netlink_message_append_data(req, IFLA_BRIDGE_VLAN_INFO, &br_vlan, sizeof(br_vlan)); if (r < 0) - return log_link_error_errno(link, r, "Could not append IFLA_BRIDGE_VLAN_INFO attribute: %m"); + return r; br_vlan.vid = end; br_vlan.flags &= ~BRIDGE_VLAN_INFO_RANGE_BEGIN; @@ -121,7 +119,7 @@ int bridge_vlan_append_info( r = sd_netlink_message_append_data(req, IFLA_BRIDGE_VLAN_INFO, &br_vlan, sizeof(br_vlan)); if (r < 0) - return log_link_error_errno(link, r, "Could not append IFLA_BRIDGE_VLAN_INFO attribute: %m"); + return r; } if (done) diff --git a/src/network/networkd-setlink.c b/src/network/networkd-setlink.c index 2fcca1f5c0..33b539c1e8 100644 --- a/src/network/networkd-setlink.c +++ b/src/network/networkd-setlink.c @@ -422,7 +422,7 @@ static int link_configure( r = bridge_vlan_append_info(link, req, link->network->pvid, link->network->br_vid_bitmap, link->network->br_untagged_bitmap); if (r < 0) - return log_link_debug_errno(link, r, "Could not append VLANs: %m"); + return log_link_debug_errno(link, r, "Could not append VLAN information to netlink message: %m"); r = sd_netlink_message_close_container(req); if (r < 0) -- cgit v1.2.3 From 9a93dabc4073907d47ad8a61461f21b4b9feeffb Mon Sep 17 00:00:00 2001 From: Zbigniew Jędrzejewski-Szmek Date: Tue, 4 Jan 2022 21:43:39 +0100 Subject: network: move logging from can_set_netlink_message() to the caller --- src/network/networkd-can.c | 24 ++++++++++++------------ src/network/networkd-setlink.c | 2 +- 2 files changed, 13 insertions(+), 13 deletions(-) diff --git a/src/network/networkd-can.c b/src/network/networkd-can.c index 7a0a6e5522..205179d112 100644 --- a/src/network/networkd-can.c +++ b/src/network/networkd-can.c @@ -21,15 +21,15 @@ int can_set_netlink_message(Link *link, sd_netlink_message *m) { r = sd_netlink_message_set_flags(m, NLM_F_REQUEST | NLM_F_ACK); if (r < 0) - return log_link_debug_errno(link, r, "Could not set netlink flags: %m"); + return r; r = sd_netlink_message_open_container(m, IFLA_LINKINFO); if (r < 0) - return log_link_debug_errno(link, r, "Failed to open IFLA_LINKINFO container: %m"); + return r; r = sd_netlink_message_open_container_union(m, IFLA_INFO_DATA, link->kind); if (r < 0) - return log_link_debug_errno(link, r, "Could not open IFLA_INFO_DATA container: %m"); + return r; if (link->network->can_bitrate > 0) { struct can_bittiming bt = { @@ -46,7 +46,7 @@ int can_set_netlink_message(Link *link, sd_netlink_message *m) { r = sd_netlink_message_append_data(m, IFLA_CAN_BITTIMING, &bt, sizeof(bt)); if (r < 0) - return log_link_debug_errno(link, r, "Could not append IFLA_CAN_BITTIMING attribute: %m"); + return r; } else if (link->network->can_time_quanta_ns > 0) { struct can_bittiming bt = { .tq = link->network->can_time_quanta_ns, @@ -59,7 +59,7 @@ int can_set_netlink_message(Link *link, sd_netlink_message *m) { log_link_debug(link, "Setting time quanta = %"PRIu32" nsec", bt.tq); r = sd_netlink_message_append_data(m, IFLA_CAN_BITTIMING, &bt, sizeof(bt)); if (r < 0) - return log_link_debug_errno(link, r, "Could not append IFLA_CAN_BITTIMING attribute: %m"); + return r; } if (link->network->can_data_bitrate > 0) { @@ -77,7 +77,7 @@ int can_set_netlink_message(Link *link, sd_netlink_message *m) { r = sd_netlink_message_append_data(m, IFLA_CAN_DATA_BITTIMING, &bt, sizeof(bt)); if (r < 0) - return log_link_debug_errno(link, r, "Could not append IFLA_CAN_DATA_BITTIMING attribute: %m"); + return r; } else if (link->network->can_data_time_quanta_ns > 0) { struct can_bittiming bt = { .tq = link->network->can_data_time_quanta_ns, @@ -90,7 +90,7 @@ int can_set_netlink_message(Link *link, sd_netlink_message *m) { log_link_debug(link, "Setting data time quanta = %"PRIu32" nsec", bt.tq); r = sd_netlink_message_append_data(m, IFLA_CAN_DATA_BITTIMING, &bt, sizeof(bt)); if (r < 0) - return log_link_debug_errno(link, r, "Could not append IFLA_CAN_DATA_BITTIMING attribute: %m"); + return r; } if (link->network->can_restart_us > 0) { @@ -104,7 +104,7 @@ int can_set_netlink_message(Link *link, sd_netlink_message *m) { log_link_debug(link, "Setting restart = %s", FORMAT_TIMESPAN(restart_ms * 1000, MSEC_PER_SEC)); r = sd_netlink_message_append_u32(m, IFLA_CAN_RESTART_MS, restart_ms); if (r < 0) - return log_link_debug_errno(link, r, "Could not append IFLA_CAN_RESTART_MS attribute: %m"); + return r; } if (link->network->can_control_mode_mask != 0) { @@ -115,7 +115,7 @@ int can_set_netlink_message(Link *link, sd_netlink_message *m) { r = sd_netlink_message_append_data(m, IFLA_CAN_CTRLMODE, &cm, sizeof(cm)); if (r < 0) - return log_link_debug_errno(link, r, "Could not append IFLA_CAN_CTRLMODE attribute: %m"); + return r; } if (link->network->can_termination_set) { @@ -123,16 +123,16 @@ int can_set_netlink_message(Link *link, sd_netlink_message *m) { r = sd_netlink_message_append_u16(m, IFLA_CAN_TERMINATION, link->network->can_termination); if (r < 0) - return log_link_debug_errno(link, r, "Could not append IFLA_CAN_TERMINATION attribute: %m"); + return r; } r = sd_netlink_message_close_container(m); if (r < 0) - return log_link_debug_errno(link, r, "Failed to close IFLA_INFO_DATA container: %m"); + return r; r = sd_netlink_message_close_container(m); if (r < 0) - return log_link_debug_errno(link, r, "Failed to close IFLA_LINKINFO container: %m"); + return r; return 0; } diff --git a/src/network/networkd-setlink.c b/src/network/networkd-setlink.c index 33b539c1e8..e93acee9ec 100644 --- a/src/network/networkd-setlink.c +++ b/src/network/networkd-setlink.c @@ -432,7 +432,7 @@ static int link_configure( case SET_LINK_CAN: r = can_set_netlink_message(link, req); if (r < 0) - return r; + return log_link_debug_errno(link, r, "Could not create netlink message: %m"); break; case SET_LINK_FLAGS: { unsigned ifi_change = 0, ifi_flags = 0; -- cgit v1.2.3 From bb2f88ff7b54fded61d1c646ee5ae824ce32d949 Mon Sep 17 00:00:00 2001 From: Zbigniew Jędrzejewski-Szmek Date: Tue, 4 Jan 2022 21:47:48 +0100 Subject: network: split out link_configure_fill_message(), simplify logging --- src/network/networkd-setlink.c | 149 ++++++++++++++++++++++------------------- 1 file changed, 79 insertions(+), 70 deletions(-) diff --git a/src/network/networkd-setlink.c b/src/network/networkd-setlink.c index e93acee9ec..3fbc910aa2 100644 --- a/src/network/networkd-setlink.c +++ b/src/network/networkd-setlink.c @@ -219,220 +219,195 @@ static int link_set_mtu_handler(sd_netlink *rtnl, sd_netlink_message *m, Link *l return 0; } -static int link_configure( +static int link_configure_fill_message( Link *link, + sd_netlink_message *req, SetLinkOperation op, - void *userdata, - link_netlink_message_handler_t callback) { - - _cleanup_(sd_netlink_message_unrefp) sd_netlink_message *req = NULL; + void *userdata) { int r; - assert(link); - assert(link->manager); - assert(link->manager->rtnl); - assert(link->network); - assert(op >= 0 && op < _SET_LINK_OPERATION_MAX); - assert(callback); - - log_link_debug(link, "Setting %s", set_link_operation_to_string(op)); - - if (op == SET_LINK_BOND) { - r = sd_rtnl_message_new_link(link->manager->rtnl, &req, RTM_NEWLINK, link->master_ifindex); - if (r < 0) - return log_link_debug_errno(link, r, "Could not allocate RTM_NEWLINK message: %m"); - } else if (IN_SET(op, SET_LINK_CAN, SET_LINK_IPOIB)) { - r = sd_rtnl_message_new_link(link->manager->rtnl, &req, RTM_NEWLINK, link->ifindex); - if (r < 0) - return log_link_debug_errno(link, r, "Could not allocate RTM_NEWLINK message: %m"); - } else { - r = sd_rtnl_message_new_link(link->manager->rtnl, &req, RTM_SETLINK, link->ifindex); - if (r < 0) - return log_link_debug_errno(link, r, "Could not allocate RTM_SETLINK message: %m"); - } - switch (op) { case SET_LINK_ADDRESS_GENERATION_MODE: r = sd_netlink_message_open_container(req, IFLA_AF_SPEC); if (r < 0) - return log_link_debug_errno(link, r, "Could not open IFLA_AF_SPEC container: %m"); + return r; r = sd_netlink_message_open_container(req, AF_INET6); if (r < 0) - return log_link_debug_errno(link, r, "Could not open AF_INET6 container: %m"); + return r; r = sd_netlink_message_append_u8(req, IFLA_INET6_ADDR_GEN_MODE, PTR_TO_UINT8(userdata)); if (r < 0) - return log_link_debug_errno(link, r, "Could not append IFLA_INET6_ADDR_GEN_MODE attribute: %m"); + return r; r = sd_netlink_message_close_container(req); if (r < 0) - return log_link_debug_errno(link, r, "Could not close AF_INET6 container: %m"); + return r; r = sd_netlink_message_close_container(req); if (r < 0) - return log_link_debug_errno(link, r, "Could not close IFLA_AF_SPEC container: %m"); + return r; break; case SET_LINK_BOND: r = sd_netlink_message_set_flags(req, NLM_F_REQUEST | NLM_F_ACK); if (r < 0) - return log_link_debug_errno(link, r, "Could not set netlink message flags: %m"); + return r; r = sd_netlink_message_open_container(req, IFLA_LINKINFO); if (r < 0) - return log_link_debug_errno(link, r, "Could not open IFLA_LINKINFO container: %m"); + return r; r = sd_netlink_message_open_container_union(req, IFLA_INFO_DATA, "bond"); if (r < 0) - return log_link_debug_errno(link, r, "Could not open IFLA_INFO_DATA container: %m"); + return r; if (link->network->active_slave) { r = sd_netlink_message_append_u32(req, IFLA_BOND_ACTIVE_SLAVE, link->ifindex); if (r < 0) - return log_link_debug_errno(link, r, "Could not append IFLA_BOND_ACTIVE_SLAVE attribute: %m"); + return r; } if (link->network->primary_slave) { r = sd_netlink_message_append_u32(req, IFLA_BOND_PRIMARY, link->ifindex); if (r < 0) - return log_link_debug_errno(link, r, "Could not append IFLA_BOND_PRIMARY attribute: %m"); + return r; } r = sd_netlink_message_close_container(req); if (r < 0) - return log_link_debug_errno(link, r, "Could not close IFLA_INFO_DATA container: %m"); + return r; r = sd_netlink_message_close_container(req); if (r < 0) - return log_link_debug_errno(link, r, "Could not close IFLA_LINKINFO container: %m"); + return r; break; case SET_LINK_BRIDGE: r = sd_rtnl_message_link_set_family(req, AF_BRIDGE); if (r < 0) - return log_link_debug_errno(link, r, "Could not set message family: %m"); + return r; r = sd_netlink_message_open_container(req, IFLA_PROTINFO); if (r < 0) - return log_link_debug_errno(link, r, "Could not open IFLA_PROTINFO container: %m"); + return r; if (link->network->use_bpdu >= 0) { r = sd_netlink_message_append_u8(req, IFLA_BRPORT_GUARD, link->network->use_bpdu); if (r < 0) - return log_link_debug_errno(link, r, "Could not append IFLA_BRPORT_GUARD attribute: %m"); + return r; } if (link->network->hairpin >= 0) { r = sd_netlink_message_append_u8(req, IFLA_BRPORT_MODE, link->network->hairpin); if (r < 0) - return log_link_debug_errno(link, r, "Could not append IFLA_BRPORT_MODE attribute: %m"); + return r; } if (link->network->fast_leave >= 0) { r = sd_netlink_message_append_u8(req, IFLA_BRPORT_FAST_LEAVE, link->network->fast_leave); if (r < 0) - return log_link_debug_errno(link, r, "Could not append IFLA_BRPORT_FAST_LEAVE attribute: %m"); + return r; } if (link->network->allow_port_to_be_root >= 0) { r = sd_netlink_message_append_u8(req, IFLA_BRPORT_PROTECT, link->network->allow_port_to_be_root); if (r < 0) - return log_link_debug_errno(link, r, "Could not append IFLA_BRPORT_PROTECT attribute: %m"); + return r; } if (link->network->unicast_flood >= 0) { r = sd_netlink_message_append_u8(req, IFLA_BRPORT_UNICAST_FLOOD, link->network->unicast_flood); if (r < 0) - return log_link_debug_errno(link, r, "Could not append IFLA_BRPORT_UNICAST_FLOOD attribute: %m"); + return r; } if (link->network->multicast_flood >= 0) { r = sd_netlink_message_append_u8(req, IFLA_BRPORT_MCAST_FLOOD, link->network->multicast_flood); if (r < 0) - return log_link_debug_errno(link, r, "Could not append IFLA_BRPORT_MCAST_FLOOD attribute: %m"); + return r; } if (link->network->multicast_to_unicast >= 0) { r = sd_netlink_message_append_u8(req, IFLA_BRPORT_MCAST_TO_UCAST, link->network->multicast_to_unicast); if (r < 0) - return log_link_debug_errno(link, r, "Could not append IFLA_BRPORT_MCAST_TO_UCAST attribute: %m"); + return r; } if (link->network->neighbor_suppression >= 0) { r = sd_netlink_message_append_u8(req, IFLA_BRPORT_NEIGH_SUPPRESS, link->network->neighbor_suppression); if (r < 0) - return log_link_debug_errno(link, r, "Could not append IFLA_BRPORT_NEIGH_SUPPRESS attribute: %m"); + return r; } if (link->network->learning >= 0) { r = sd_netlink_message_append_u8(req, IFLA_BRPORT_LEARNING, link->network->learning); if (r < 0) - return log_link_debug_errno(link, r, "Could not append IFLA_BRPORT_LEARNING attribute: %m"); + return r; } if (link->network->bridge_proxy_arp >= 0) { r = sd_netlink_message_append_u8(req, IFLA_BRPORT_PROXYARP, link->network->bridge_proxy_arp); if (r < 0) - return log_link_debug_errno(link, r, "Could not append IFLA_BRPORT_PROXYARP attribute: %m"); + return r; } if (link->network->bridge_proxy_arp_wifi >= 0) { r = sd_netlink_message_append_u8(req, IFLA_BRPORT_PROXYARP_WIFI, link->network->bridge_proxy_arp_wifi); if (r < 0) - return log_link_debug_errno(link, r, "Could not append IFLA_BRPORT_PROXYARP_WIFI attribute: %m"); + return r; } if (link->network->cost != 0) { r = sd_netlink_message_append_u32(req, IFLA_BRPORT_COST, link->network->cost); if (r < 0) - return log_link_debug_errno(link, r, "Could not append IFLA_BRPORT_COST attribute: %m"); + return r; } if (link->network->priority != LINK_BRIDGE_PORT_PRIORITY_INVALID) { r = sd_netlink_message_append_u16(req, IFLA_BRPORT_PRIORITY, link->network->priority); if (r < 0) - return log_link_debug_errno(link, r, "Could not append IFLA_BRPORT_PRIORITY attribute: %m"); + return r; } if (link->network->multicast_router != _MULTICAST_ROUTER_INVALID) { r = sd_netlink_message_append_u8(req, IFLA_BRPORT_MULTICAST_ROUTER, link->network->multicast_router); if (r < 0) - return log_link_debug_errno(link, r, "Could not append IFLA_BRPORT_MULTICAST_ROUTER attribute: %m"); + return r; } r = sd_netlink_message_close_container(req); if (r < 0) - return log_link_debug_errno(link, r, "Could not close IFLA_PROTINFO container: %m"); + return r; break; case SET_LINK_BRIDGE_VLAN: r = sd_rtnl_message_link_set_family(req, AF_BRIDGE); if (r < 0) - return log_link_debug_errno(link, r, "Could not set message family: %m"); + return r; r = sd_netlink_message_open_container(req, IFLA_AF_SPEC); if (r < 0) - return log_link_debug_errno(link, r, "Could not open IFLA_AF_SPEC container: %m"); + return r; if (link->master_ifindex <= 0) { /* master needs BRIDGE_FLAGS_SELF flag */ r = sd_netlink_message_append_u16(req, IFLA_BRIDGE_FLAGS, BRIDGE_FLAGS_SELF); if (r < 0) - return log_link_debug_errno(link, r, "Could not append IFLA_BRIDGE_FLAGS attribute: %m"); + return r; } r = bridge_vlan_append_info(link, req, link->network->pvid, link->network->br_vid_bitmap, link->network->br_untagged_bitmap); if (r < 0) - return log_link_debug_errno(link, r, "Could not append VLAN information to netlink message: %m"); + return r; r = sd_netlink_message_close_container(req); if (r < 0) - return log_link_debug_errno(link, r, "Could not close IFLA_AF_SPEC container: %m"); + return r; break; case SET_LINK_CAN: r = can_set_netlink_message(link, req); if (r < 0) - return log_link_debug_errno(link, r, "Could not create netlink message: %m"); + return r; break; case SET_LINK_FLAGS: { unsigned ifi_change = 0, ifi_flags = 0; @@ -459,43 +434,77 @@ static int link_configure( r = sd_rtnl_message_link_set_flags(req, ifi_flags, ifi_change); if (r < 0) - return log_link_debug_errno(link, r, "Could not set link flags: %m"); + return r; break; } case SET_LINK_GROUP: r = sd_netlink_message_append_u32(req, IFLA_GROUP, (uint32_t) link->network->group); if (r < 0) - return log_link_debug_errno(link, r, "Could not append IFLA_GROUP attribute: %m"); + return r; break; case SET_LINK_MAC: r = netlink_message_append_hw_addr(req, IFLA_ADDRESS, &link->requested_hw_addr); if (r < 0) - return log_link_debug_errno(link, r, "Could not append IFLA_ADDRESS attribute: %m"); + return r; break; case SET_LINK_IPOIB: r = ipoib_set_netlink_message(link, req); if (r < 0) - return log_link_debug_errno(link, r, "Could not create netlink message: %m"); + return r; break; case SET_LINK_MASTER: r = sd_netlink_message_append_u32(req, IFLA_MASTER, PTR_TO_UINT32(userdata)); if (r < 0) - return log_link_debug_errno(link, r, "Could not append IFLA_MASTER attribute: %m"); + return r; break; case SET_LINK_MTU: r = sd_netlink_message_append_u32(req, IFLA_MTU, PTR_TO_UINT32(userdata)); if (r < 0) - return log_link_debug_errno(link, r, "Could not append IFLA_MTU attribute: %m"); + return r; break; default: assert_not_reached(); } + return 0; +} + +static int link_configure( + Link *link, + SetLinkOperation op, + void *userdata, + link_netlink_message_handler_t callback) { + + _cleanup_(sd_netlink_message_unrefp) sd_netlink_message *req = NULL; + int r; + + assert(link); + assert(link->manager); + assert(link->manager->rtnl); + assert(link->network); + assert(op >= 0 && op < _SET_LINK_OPERATION_MAX); + assert(callback); + + log_link_debug(link, "Setting %s", set_link_operation_to_string(op)); + + if (op == SET_LINK_BOND) + r = sd_rtnl_message_new_link(link->manager->rtnl, &req, RTM_NEWLINK, link->master_ifindex); + else if (IN_SET(op, SET_LINK_CAN, SET_LINK_IPOIB)) + r = sd_rtnl_message_new_link(link->manager->rtnl, &req, RTM_NEWLINK, link->ifindex); + else + r = sd_rtnl_message_new_link(link->manager->rtnl, &req, RTM_SETLINK, link->ifindex); + if (r < 0) + return log_link_debug_errno(link, r, "Could not allocate netlink message: %m"); + + r = link_configure_fill_message(link, req, op, userdata); + if (r < 0) + return log_link_debug_errno(link, r, "Could not create netlink message: %m"); + r = netlink_call_async(link->manager->rtnl, NULL, req, callback, link_netlink_destroy_callback, link); if (r < 0) - return log_link_debug_errno(link, r, "Could not send RTM_SETLINK message: %m"); + return log_link_debug_errno(link, r, "Could not send netlink message: %m"); link_ref(link); return 0; -- cgit v1.2.3 From b471fc9456b75050f9a99af6e6c89ecac444fac5 Mon Sep 17 00:00:00 2001 From: Zbigniew Jędrzejewski-Szmek Date: Tue, 4 Jan 2022 21:56:42 +0100 Subject: network: simplify logging in l2tp_create_session() and l2tp_create_tunnel() All the detailed logging is replaced by a simple "Failed to create netlink message", which should be enough for the user in the unlikely case that this ever fails. --- src/network/netdev/l2tp-tunnel.c | 68 ++++++++++++++++++---------------------- 1 file changed, 31 insertions(+), 37 deletions(-) diff --git a/src/network/netdev/l2tp-tunnel.c b/src/network/netdev/l2tp-tunnel.c index cfe54f600c..d870a11e00 100644 --- a/src/network/netdev/l2tp-tunnel.c +++ b/src/network/netdev/l2tp-tunnel.c @@ -91,7 +91,7 @@ static int l2tp_session_new_static(L2tpTunnel *t, const char *filename, unsigned return 0; } -static int netdev_l2tp_fill_message_tunnel(NetDev *netdev, union in_addr_union *local_address, sd_netlink_message **ret) { +static int netdev_l2tp_create_message_tunnel(NetDev *netdev, union in_addr_union *local_address, sd_netlink_message **ret) { _cleanup_(sd_netlink_message_unrefp) sd_netlink_message *m = NULL; uint16_t encap_type; L2tpTunnel *t; @@ -99,26 +99,23 @@ static int netdev_l2tp_fill_message_tunnel(NetDev *netdev, union in_addr_union * assert(netdev); assert(local_address); - - t = L2TP(netdev); - - assert(t); + assert_se(t = L2TP(netdev)); r = sd_genl_message_new(netdev->manager->genl, L2TP_GENL_NAME, L2TP_CMD_TUNNEL_CREATE, &m); if (r < 0) - return log_netdev_error_errno(netdev, r, "Failed to create generic netlink message: %m"); + return r; r = sd_netlink_message_append_u32(m, L2TP_ATTR_CONN_ID, t->tunnel_id); if (r < 0) - return log_netdev_error_errno(netdev, r, "Could not append L2TP_ATTR_CONN_ID attribute: %m"); + return r; r = sd_netlink_message_append_u32(m, L2TP_ATTR_PEER_CONN_ID, t->peer_tunnel_id); if (r < 0) - return log_netdev_error_errno(netdev, r, "Could not append L2TP_ATTR_PEER_CONN_ID attribute: %m"); + return r; r = sd_netlink_message_append_u8(m, L2TP_ATTR_PROTO_VERSION, 3); if (r < 0) - return log_netdev_error_errno(netdev, r, "Could not append L2TP_ATTR_PROTO_VERSION attribute: %m"); + return r; switch(t->l2tp_encap_type) { case NETDEV_L2TP_ENCAPTYPE_IP: @@ -132,51 +129,51 @@ static int netdev_l2tp_fill_message_tunnel(NetDev *netdev, union in_addr_union * r = sd_netlink_message_append_u16(m, L2TP_ATTR_ENCAP_TYPE, encap_type); if (r < 0) - return log_netdev_error_errno(netdev, r, "Could not append L2TP_ATTR_ENCAP_TYPE attribute: %m"); + return r; if (t->family == AF_INET) { r = sd_netlink_message_append_in_addr(m, L2TP_ATTR_IP_SADDR, &local_address->in); if (r < 0) - return log_netdev_error_errno(netdev, r, "Could not append L2TP_ATTR_IP_SADDR attribute: %m"); + return r; r = sd_netlink_message_append_in_addr(m, L2TP_ATTR_IP_DADDR, &t->remote.in); if (r < 0) - return log_netdev_error_errno(netdev, r, "Could not append L2TP_ATTR_IP_DADDR attribute: %m"); + return r; } else { r = sd_netlink_message_append_in6_addr(m, L2TP_ATTR_IP6_SADDR, &local_address->in6); if (r < 0) - return log_netdev_error_errno(netdev, r, "Could not append L2TP_ATTR_IP6_SADDR attribute: %m"); + return r; r = sd_netlink_message_append_in6_addr(m, L2TP_ATTR_IP6_DADDR, &t->remote.in6); if (r < 0) - return log_netdev_error_errno(netdev, r, "Could not append L2TP_ATTR_IP6_DADDR attribute: %m"); + return r; } if (encap_type == L2TP_ENCAPTYPE_UDP) { r = sd_netlink_message_append_u16(m, L2TP_ATTR_UDP_SPORT, t->l2tp_udp_sport); if (r < 0) - return log_netdev_error_errno(netdev, r, "Could not append L2TP_ATTR_UDP_SPORT, attribute: %m"); + return r; r = sd_netlink_message_append_u16(m, L2TP_ATTR_UDP_DPORT, t->l2tp_udp_dport); if (r < 0) - return log_netdev_error_errno(netdev, r, "Could not append L2TP_ATTR_UDP_DPORT attribute: %m"); + return r; if (t->udp_csum) { r = sd_netlink_message_append_u8(m, L2TP_ATTR_UDP_CSUM, t->udp_csum); if (r < 0) - return log_netdev_error_errno(netdev, r, "Could not append L2TP_ATTR_UDP_CSUM attribute: %m"); + return r; } if (t->udp6_csum_tx) { r = sd_netlink_message_append_flag(m, L2TP_ATTR_UDP_ZERO_CSUM6_TX); if (r < 0) - return log_netdev_error_errno(netdev, r, "Could not append L2TP_ATTR_UDP_ZERO_CSUM6_TX attribute: %m"); + return r; } if (t->udp6_csum_rx) { r = sd_netlink_message_append_flag(m, L2TP_ATTR_UDP_ZERO_CSUM6_RX); if (r < 0) - return log_netdev_error_errno(netdev, r, "Could not append L2TP_ATTR_UDP_ZERO_CSUM6_RX attribute: %m"); + return r; } } @@ -185,7 +182,7 @@ static int netdev_l2tp_fill_message_tunnel(NetDev *netdev, union in_addr_union * return 0; } -static int netdev_l2tp_fill_message_session(NetDev *netdev, L2tpSession *session, sd_netlink_message **ret) { +static int netdev_l2tp_create_message_session(NetDev *netdev, L2tpSession *session, sd_netlink_message **ret) { _cleanup_(sd_netlink_message_unrefp) sd_netlink_message *m = NULL; uint16_t l2_spec_len; uint8_t l2_spec_type; @@ -197,27 +194,27 @@ static int netdev_l2tp_fill_message_session(NetDev *netdev, L2tpSession *session r = sd_genl_message_new(netdev->manager->genl, L2TP_GENL_NAME, L2TP_CMD_SESSION_CREATE, &m); if (r < 0) - return log_netdev_error_errno(netdev, r, "Failed to create generic netlink message: %m"); + return r; r = sd_netlink_message_append_u32(m, L2TP_ATTR_CONN_ID, session->tunnel->tunnel_id); if (r < 0) - return log_netdev_error_errno(netdev, r, "Could not append L2TP_ATTR_CONN_ID attribute: %m"); + return r; r = sd_netlink_message_append_u32(m, L2TP_ATTR_PEER_CONN_ID, session->tunnel->peer_tunnel_id); if (r < 0) - return log_netdev_error_errno(netdev, r, "Could not append L2TP_ATTR_PEER_CONN_ID attribute: %m"); + return r; r = sd_netlink_message_append_u32(m, L2TP_ATTR_SESSION_ID, session->session_id); if (r < 0) - return log_netdev_error_errno(netdev, r, "Could not append L2TP_ATTR_SESSION_ID attribute: %m"); + return r; r = sd_netlink_message_append_u32(m, L2TP_ATTR_PEER_SESSION_ID, session->peer_session_id); if (r < 0) - return log_netdev_error_errno(netdev, r, "Could not append L2TP_ATTR_PEER_SESSION_ID attribute: %m"); + return r; r = sd_netlink_message_append_u16(m, L2TP_ATTR_PW_TYPE, L2TP_PWTYPE_ETH); if (r < 0) - return log_netdev_error_errno(netdev, r, "Could not append L2TP_ATTR_PW_TYPE attribute: %m"); + return r; switch (session->l2tp_l2spec_type) { case NETDEV_L2TP_L2SPECTYPE_NONE: @@ -233,15 +230,15 @@ static int netdev_l2tp_fill_message_session(NetDev *netdev, L2tpSession *session r = sd_netlink_message_append_u8(m, L2TP_ATTR_L2SPEC_TYPE, l2_spec_type); if (r < 0) - return log_netdev_error_errno(netdev, r, "Could not append L2TP_ATTR_L2SPEC_TYPE attribute: %m"); + return r; r = sd_netlink_message_append_u8(m, L2TP_ATTR_L2SPEC_LEN, l2_spec_len); if (r < 0) - return log_netdev_error_errno(netdev, r, "Could not append L2TP_ATTR_L2SPEC_LEN attribute: %m"); + return r; r = sd_netlink_message_append_string(m, L2TP_ATTR_IFNAME, session->name); if (r < 0) - return log_netdev_error_errno(netdev, r, "Could not append L2TP_ATTR_IFNAME attribute: %m"); + return r; *ret = TAKE_PTR(m); @@ -321,9 +318,9 @@ static int l2tp_create_session(NetDev *netdev, L2tpSession *session) { _cleanup_(sd_netlink_message_unrefp) sd_netlink_message *n = NULL; int r; - r = netdev_l2tp_fill_message_session(netdev, session, &n); + r = netdev_l2tp_create_message_session(netdev, session, &n); if (r < 0) - return r; + return log_netdev_error_errno(netdev, r, "Failed to create netlink message: %m"); r = netlink_call_async(netdev->manager->genl, NULL, n, l2tp_create_session_handler, l2tp_session_destroy_callback, session); @@ -371,10 +368,7 @@ static int l2tp_create_tunnel(NetDev *netdev, Link *link) { int r; assert(netdev); - - t = L2TP(netdev); - - assert(t); + assert_se(t = L2TP(netdev)); r = l2tp_acquire_local_address(t, link, &local_address); if (r < 0) @@ -387,9 +381,9 @@ static int l2tp_create_tunnel(NetDev *netdev, Link *link) { log_netdev_debug(netdev, "Local address %s acquired.", strna(str)); } - r = netdev_l2tp_fill_message_tunnel(netdev, &local_address, &m); + r = netdev_l2tp_create_message_tunnel(netdev, &local_address, &m); if (r < 0) - return r; + return log_netdev_error_errno(netdev, r, "Failed to create netlink message: %m"); r = netlink_call_async(netdev->manager->genl, NULL, m, l2tp_create_tunnel_handler, netdev_destroy_callback, netdev); -- cgit v1.2.3 From 9e369704a871c4c825972eaf71c904062aaa600d Mon Sep 17 00:00:00 2001 From: Zbigniew Jędrzejewski-Szmek Date: Tue, 4 Jan 2022 22:05:42 +0100 Subject: network: simplify logging in macsec netdev code --- src/network/netdev/macsec.c | 46 ++++++++++++++++++++++----------------------- 1 file changed, 23 insertions(+), 23 deletions(-) diff --git a/src/network/netdev/macsec.c b/src/network/netdev/macsec.c index f70cde7177..f359e867cc 100644 --- a/src/network/netdev/macsec.c +++ b/src/network/netdev/macsec.c @@ -218,7 +218,7 @@ static int macsec_transmit_association_new_static(MACsec *s, const char *filenam return 0; } -static int netdev_macsec_fill_message(NetDev *netdev, int command, sd_netlink_message **ret) { +static int netdev_macsec_create_message(NetDev *netdev, int command, sd_netlink_message **ret) { _cleanup_(sd_netlink_message_unrefp) sd_netlink_message *m = NULL; int r; @@ -227,11 +227,11 @@ static int netdev_macsec_fill_message(NetDev *netdev, int command, sd_netlink_me r = sd_genl_message_new(netdev->manager->genl, MACSEC_GENL_NAME, command, &m); if (r < 0) - return log_netdev_error_errno(netdev, r, "Failed to create generic netlink message: %m"); + return r; r = sd_netlink_message_append_u32(m, MACSEC_ATTR_IFINDEX, netdev->ifindex); if (r < 0) - return log_netdev_error_errno(netdev, r, "Could not append MACSEC_ATTR_IFINDEX attribute: %m"); + return r; *ret = TAKE_PTR(m); @@ -247,15 +247,15 @@ static int netdev_macsec_fill_message_sci(NetDev *netdev, MACsecSCI *sci, sd_net r = sd_netlink_message_open_container(m, MACSEC_ATTR_RXSC_CONFIG); if (r < 0) - return log_netdev_error_errno(netdev, r, "Could not append MACSEC_ATTR_RXSC_CONFIG attribute: %m"); + return r; r = sd_netlink_message_append_u64(m, MACSEC_RXSC_ATTR_SCI, sci->as_uint64); if (r < 0) - return log_netdev_error_errno(netdev, r, "Could not append MACSEC_RXSC_ATTR_SCI attribute: %m"); + return r; r = sd_netlink_message_close_container(m); if (r < 0) - return log_netdev_error_errno(netdev, r, "Could not append MACSEC_ATTR_RXSC_CONFIG attribute: %m"); + return r; return 0; } @@ -269,37 +269,37 @@ static int netdev_macsec_fill_message_sa(NetDev *netdev, SecurityAssociation *a, r = sd_netlink_message_open_container(m, MACSEC_ATTR_SA_CONFIG); if (r < 0) - return log_netdev_error_errno(netdev, r, "Could not append MACSEC_ATTR_SA_CONFIG attribute: %m"); + return r; r = sd_netlink_message_append_u8(m, MACSEC_SA_ATTR_AN, a->association_number); if (r < 0) - return log_netdev_error_errno(netdev, r, "Could not append MACSEC_SA_ATTR_AN attribute: %m"); + return r; if (a->packet_number > 0) { r = sd_netlink_message_append_u32(m, MACSEC_SA_ATTR_PN, a->packet_number); if (r < 0) - return log_netdev_error_errno(netdev, r, "Could not append MACSEC_SA_ATTR_PN attribute: %m"); + return r; } if (a->key_len > 0) { r = sd_netlink_message_append_data(m, MACSEC_SA_ATTR_KEYID, a->key_id, MACSEC_KEYID_LEN); if (r < 0) - return log_netdev_error_errno(netdev, r, "Could not append MACSEC_SA_ATTR_KEYID attribute: %m"); + return r; r = sd_netlink_message_append_data(m, MACSEC_SA_ATTR_KEY, a->key, a->key_len); if (r < 0) - return log_netdev_error_errno(netdev, r, "Could not append MACSEC_SA_ATTR_KEY attribute: %m"); + return r; } if (a->activate >= 0) { r = sd_netlink_message_append_u8(m, MACSEC_SA_ATTR_ACTIVE, a->activate); if (r < 0) - return log_netdev_error_errno(netdev, r, "Could not append MACSEC_SA_ATTR_ACTIVE attribute: %m"); + return r; } r = sd_netlink_message_close_container(m); if (r < 0) - return log_netdev_error_errno(netdev, r, "Could not append MACSEC_ATTR_SA_CONFIG attribute: %m"); + return r; return 0; } @@ -335,17 +335,17 @@ static int netdev_macsec_configure_receive_association(NetDev *netdev, ReceiveAs assert(netdev); assert(a); - r = netdev_macsec_fill_message(netdev, MACSEC_CMD_ADD_RXSA, &m); + r = netdev_macsec_create_message(netdev, MACSEC_CMD_ADD_RXSA, &m); if (r < 0) - return r; + return log_netdev_error_errno(netdev, r, "Failed to create netlink message: %m"); r = netdev_macsec_fill_message_sa(netdev, &a->sa, m); if (r < 0) - return r; + return log_netdev_error_errno(netdev, r, "Failed to fill netlink message: %m"); r = netdev_macsec_fill_message_sci(netdev, &a->sci, m); if (r < 0) - return r; + return log_netdev_error_errno(netdev, r, "Failed to fill netlink message: %m"); r = netlink_call_async(netdev->manager->genl, NULL, m, macsec_receive_association_handler, netdev_destroy_callback, netdev); @@ -410,13 +410,13 @@ static int netdev_macsec_configure_receive_channel(NetDev *netdev, ReceiveChanne assert(netdev); assert(c); - r = netdev_macsec_fill_message(netdev, MACSEC_CMD_ADD_RXSC, &m); + r = netdev_macsec_create_message(netdev, MACSEC_CMD_ADD_RXSC, &m); if (r < 0) - return r; + return log_netdev_error_errno(netdev, r, "Failed to create netlink message: %m"); r = netdev_macsec_fill_message_sci(netdev, &c->sci, m); if (r < 0) - return r; + return log_netdev_error_errno(netdev, r, "Failed to fill netlink message: %m"); r = netlink_call_async(netdev->manager->genl, NULL, m, macsec_receive_channel_handler, receive_channel_destroy_callback, c); @@ -459,13 +459,13 @@ static int netdev_macsec_configure_transmit_association(NetDev *netdev, Transmit assert(netdev); assert(a); - r = netdev_macsec_fill_message(netdev, MACSEC_CMD_ADD_TXSA, &m); + r = netdev_macsec_create_message(netdev, MACSEC_CMD_ADD_TXSA, &m); if (r < 0) - return r; + return log_netdev_error_errno(netdev, r, "Failed to create netlink message: %m"); r = netdev_macsec_fill_message_sa(netdev, &a->sa, m); if (r < 0) - return r; + return log_netdev_error_errno(netdev, r, "Failed to fill netlink message: %m"); r = netlink_call_async(netdev->manager->genl, NULL, m, macsec_transmit_association_handler, netdev_destroy_callback, netdev); -- cgit v1.2.3 From 51762897c6fc7968838adb34ca64fb2ec2ef7b74 Mon Sep 17 00:00:00 2001 From: Zbigniew Jędrzejewski-Szmek Date: Tue, 4 Jan 2022 22:06:44 +0100 Subject: network: adjust log message about MACsec associations --- src/network/netdev/macsec.c | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/src/network/netdev/macsec.c b/src/network/netdev/macsec.c index f359e867cc..ebb8c9c7dc 100644 --- a/src/network/netdev/macsec.c +++ b/src/network/netdev/macsec.c @@ -313,8 +313,7 @@ static int macsec_receive_association_handler(sd_netlink *rtnl, sd_netlink_messa r = sd_netlink_message_get_errno(m); if (r == -EEXIST) log_netdev_info(netdev, - "MACsec receive secure association exists, " - "using existing without changing its parameters"); + "MACsec receive secure association exists, using it without changing parameters"); else if (r < 0) { log_netdev_warning_errno(netdev, r, "Failed to add receive secure association: %m"); @@ -371,8 +370,7 @@ static int macsec_receive_channel_handler(sd_netlink *rtnl, sd_netlink_message * r = sd_netlink_message_get_errno(m); if (r == -EEXIST) log_netdev_debug(netdev, - "MACsec receive channel exists, " - "using existing without changing its parameters"); + "MACsec receive channel exists, using it without changing parameters"); else if (r < 0) { log_netdev_warning_errno(netdev, r, "Failed to add receive secure channel: %m"); @@ -437,8 +435,7 @@ static int macsec_transmit_association_handler(sd_netlink *rtnl, sd_netlink_mess r = sd_netlink_message_get_errno(m); if (r == -EEXIST) log_netdev_info(netdev, - "MACsec transmit secure association exists, " - "using existing without changing its parameters"); + "MACsec transmit secure association exists, using it without changing parameters"); else if (r < 0) { log_netdev_warning_errno(netdev, r, "Failed to add transmit secure association: %m"); -- cgit v1.2.3 From f2b78e0e912f2f3c3c7f231607caaf4100eda6eb Mon Sep 17 00:00:00 2001 From: Zbigniew Jędrzejewski-Szmek Date: Tue, 4 Jan 2022 22:17:45 +0100 Subject: network: split out dhcp4_pd_create_6rd_tunnel_message(), simplify logging --- src/network/netdev/tunnel.c | 96 +++++++++++++++++++++++++++------------------ 1 file changed, 57 insertions(+), 39 deletions(-) diff --git a/src/network/netdev/tunnel.c b/src/network/netdev/tunnel.c index ca24272ea4..389403f42c 100644 --- a/src/network/netdev/tunnel.c +++ b/src/network/netdev/tunnel.c @@ -86,82 +86,100 @@ int dhcp4_pd_create_6rd_tunnel_name(Link *link, char **ret) { return 0; } -int dhcp4_pd_create_6rd_tunnel(Link *link, link_netlink_message_handler_t callback) { - _cleanup_(sd_netlink_message_unrefp) sd_netlink_message *m = NULL; - uint8_t ipv4masklen, sixrd_prefixlen; - struct in_addr ipv4address, relay_prefix; - struct in6_addr sixrd_prefix; +static int dhcp4_pd_create_6rd_tunnel_message( + Link *link, + sd_netlink_message *m, + const struct in_addr *ipv4address, + uint8_t ipv4masklen, + const struct in6_addr *sixrd_prefix, + uint8_t sixrd_prefixlen) { int r; - assert(link); - assert(link->ifindex > 0); - assert(link->manager); - assert(link->dhcp_lease); - assert(link->dhcp4_6rd_tunnel_name); - assert(callback); - - r = sd_dhcp_lease_get_address(link->dhcp_lease, &ipv4address); - if (r < 0) - return log_link_debug_errno(link, r, "Failed to get DHCPv4 address: %m"); - - r = sd_dhcp_lease_get_6rd(link->dhcp_lease, &ipv4masklen, &sixrd_prefixlen, &sixrd_prefix, NULL, NULL); - if (r < 0) - return log_link_debug_errno(link, r, "Failed to get 6rd option: %m"); - - r = sd_rtnl_message_new_link(link->manager->rtnl, &m, RTM_NEWLINK, 0); - if (r < 0) - return log_link_debug_errno(link, r, "Could not allocate RTM_NEWLINK message: %m"); - r = sd_netlink_message_append_string(m, IFLA_IFNAME, link->dhcp4_6rd_tunnel_name); if (r < 0) - return log_link_debug_errno(link, r, "Could not append IFLA_IFNAME, attribute: %m"); + return r; r = sd_netlink_message_open_container(m, IFLA_LINKINFO); if (r < 0) - return log_link_debug_errno(link, r, "Could not append IFLA_LINKINFO attribute: %m"); + return r; r = sd_netlink_message_open_container_union(m, IFLA_INFO_DATA, "sit"); if (r < 0) - return log_link_debug_errno(link, r, "Could not append IFLA_INFO_DATA attribute: %m"); + return r; - r = sd_netlink_message_append_in_addr(m, IFLA_IPTUN_LOCAL, &ipv4address); + r = sd_netlink_message_append_in_addr(m, IFLA_IPTUN_LOCAL, ipv4address); if (r < 0) - return log_link_debug_errno(link, r, "Could not append IFLA_IPTUN_LOCAL attribute: %m"); + return r; r = sd_netlink_message_append_u8(m, IFLA_IPTUN_TTL, 64); if (r < 0) - return log_link_debug_errno(link, r, "Could not append IFLA_IPTUN_TTL attribute: %m"); + return r; - r = sd_netlink_message_append_in6_addr(m, IFLA_IPTUN_6RD_PREFIX, &sixrd_prefix); + r = sd_netlink_message_append_in6_addr(m, IFLA_IPTUN_6RD_PREFIX, sixrd_prefix); if (r < 0) - return log_link_debug_errno(link, r, "Could not append IFLA_IPTUN_6RD_PREFIX attribute: %m"); + return r; r = sd_netlink_message_append_u16(m, IFLA_IPTUN_6RD_PREFIXLEN, sixrd_prefixlen); if (r < 0) - return log_link_debug_errno(link, r, "Could not append IFLA_IPTUN_6RD_PREFIXLEN attribute: %m"); + return r; - relay_prefix = ipv4address; + struct in_addr relay_prefix = *ipv4address; (void) in4_addr_mask(&relay_prefix, ipv4masklen); r = sd_netlink_message_append_u32(m, IFLA_IPTUN_6RD_RELAY_PREFIX, relay_prefix.s_addr); if (r < 0) - return log_link_debug_errno(link, r, "Could not append IFLA_IPTUN_6RD_RELAY_PREFIX attribute: %m"); + return r; r = sd_netlink_message_append_u16(m, IFLA_IPTUN_6RD_RELAY_PREFIXLEN, ipv4masklen); if (r < 0) - return log_link_debug_errno(link, r, "Could not append IFLA_IPTUN_6RD_RELAY_PREFIXLEN attribute: %m"); + return r; r = sd_netlink_message_close_container(m); if (r < 0) - return log_link_debug_errno(link, r, "Could not append IFLA_INFO_DATA attribute: %m"); + return r; r = sd_netlink_message_close_container(m); if (r < 0) - return log_link_debug_errno(link, r, "Could not append IFLA_LINKINFO attribute: %m"); + return r; + + return 0; +} + +int dhcp4_pd_create_6rd_tunnel(Link *link, link_netlink_message_handler_t callback) { + _cleanup_(sd_netlink_message_unrefp) sd_netlink_message *m = NULL; + uint8_t ipv4masklen, sixrd_prefixlen; + struct in_addr ipv4address; + struct in6_addr sixrd_prefix; + int r; + + assert(link); + assert(link->ifindex > 0); + assert(link->manager); + assert(link->dhcp_lease); + assert(link->dhcp4_6rd_tunnel_name); + assert(callback); + + r = sd_dhcp_lease_get_address(link->dhcp_lease, &ipv4address); + if (r < 0) + return log_link_debug_errno(link, r, "Failed to get DHCPv4 address: %m"); + + r = sd_dhcp_lease_get_6rd(link->dhcp_lease, &ipv4masklen, &sixrd_prefixlen, &sixrd_prefix, NULL, NULL); + if (r < 0) + return log_link_debug_errno(link, r, "Failed to get 6rd option: %m"); + + r = sd_rtnl_message_new_link(link->manager->rtnl, &m, RTM_NEWLINK, 0); + if (r < 0) + return log_link_debug_errno(link, r, "Failed to create netlink message: %m"); + + r = dhcp4_pd_create_6rd_tunnel_message(link, m, + &ipv4address, ipv4masklen, + &sixrd_prefix, sixrd_prefixlen); + if (r < 0) + return log_link_debug_errno(link, r, "Failed to fill netlink message: %m"); r = netlink_call_async(link->manager->rtnl, NULL, m, callback, link_netlink_destroy_callback, link); if (r < 0) - return log_link_debug_errno(link, r, "Could not send rtnetlink message: %m"); + return log_link_debug_errno(link, r, "Could not send netlink message: %m"); link_ref(link); -- cgit v1.2.3 From 0d75a90bb6bddb510729b2a4b61fb3c5a6098976 Mon Sep 17 00:00:00 2001 From: Zbigniew Jędrzejewski-Szmek Date: Tue, 4 Jan 2022 22:29:50 +0100 Subject: network: split out neighbor_configure_message(), simplify logging --- src/network/networkd-neighbor.c | 34 ++++++++++++++++++++++------------ 1 file changed, 22 insertions(+), 12 deletions(-) diff --git a/src/network/networkd-neighbor.c b/src/network/networkd-neighbor.c index 1766095e53..26b7385497 100644 --- a/src/network/networkd-neighbor.c +++ b/src/network/networkd-neighbor.c @@ -175,6 +175,24 @@ static void log_neighbor_debug(const Neighbor *neighbor, const char *str, const HW_ADDR_TO_STR(&neighbor->ll_addr), strna(dst)); } +static int neighbor_configure_message(Neighbor *neighbor, Link *link, sd_netlink_message *req) { + int r; + + r = sd_rtnl_message_neigh_set_state(req, NUD_PERMANENT); + if (r < 0) + return r; + + r = netlink_message_append_hw_addr(req, NDA_LLADDR, &neighbor->ll_addr); + if (r < 0) + return r; + + r = netlink_message_append_in_addr_union(req, NDA_DST, neighbor->family, &neighbor->in_addr); + if (r < 0) + return r; + + return 0; +} + static int neighbor_configure( Neighbor *neighbor, Link *link, @@ -195,24 +213,16 @@ static int neighbor_configure( r = sd_rtnl_message_new_neigh(link->manager->rtnl, &req, RTM_NEWNEIGH, link->ifindex, neighbor->family); if (r < 0) - return log_link_error_errno(link, r, "Could not allocate RTM_NEWNEIGH message: %m"); + return log_link_error_errno(link, r, "Could not allocate netlink message: %m"); - r = sd_rtnl_message_neigh_set_state(req, NUD_PERMANENT); + r = neighbor_configure_message(neighbor, link, req); if (r < 0) - return log_link_error_errno(link, r, "Could not set state: %m"); - - r = netlink_message_append_hw_addr(req, NDA_LLADDR, &neighbor->ll_addr); - if (r < 0) - return log_link_error_errno(link, r, "Could not append NDA_LLADDR attribute: %m"); - - r = netlink_message_append_in_addr_union(req, NDA_DST, neighbor->family, &neighbor->in_addr); - if (r < 0) - return log_link_error_errno(link, r, "Could not append NDA_DST attribute: %m"); + return log_link_error_errno(link, r, "Could not create netlink message: %m"); r = netlink_call_async(link->manager->rtnl, NULL, req, callback, link_netlink_destroy_callback, link); if (r < 0) - return log_link_error_errno(link, r, "Could not send rtnetlink message: %m"); + return log_link_error_errno(link, r, "Could not send netlink message: %m"); link_ref(link); -- cgit v1.2.3 From 16924f54af8876f6437ad6c87251ae92ebfba778 Mon Sep 17 00:00:00 2001 From: Zbigniew Jędrzejewski-Szmek Date: Wed, 5 Jan 2022 10:35:19 +0100 Subject: network: move logging from tc .fill_message to the callers MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Structured initialization is used a bit more. There were two kinds of log messages: about failed size calculations and about failed appends to the message. I "downgraded" the first type to log_debug, and moved the latter to the caller. This way there should be at most one high-priority message. I also changed sizeof() to sizeof(var) — there is less chance of select-and-paste error in the second form. --- src/network/tc/cake.c | 30 ++++++++++++------------ src/network/tc/codel.c | 16 ++++++------- src/network/tc/drr.c | 8 +++---- src/network/tc/ets.c | 22 +++++++++--------- src/network/tc/fifo.c | 14 +++++------- src/network/tc/fq-codel.c | 22 +++++++++--------- src/network/tc/fq-pie.c | 8 +++---- src/network/tc/fq.c | 24 ++++++++++---------- src/network/tc/gred.c | 21 ++++++++--------- src/network/tc/hhf.c | 8 +++---- src/network/tc/htb.c | 58 ++++++++++++++++++++++++----------------------- src/network/tc/netem.c | 22 +++++++----------- src/network/tc/pie.c | 8 +++---- src/network/tc/qdisc.c | 2 +- src/network/tc/qfq.c | 11 +++++---- src/network/tc/sfb.c | 28 +++++++++++------------ src/network/tc/sfq.c | 11 +++++---- src/network/tc/tbf.c | 40 ++++++++++++++++---------------- src/network/tc/tclass.c | 2 +- 19 files changed, 175 insertions(+), 180 deletions(-) diff --git a/src/network/tc/cake.c b/src/network/tc/cake.c index b4cbc4f970..d52151e75d 100644 --- a/src/network/tc/cake.c +++ b/src/network/tc/cake.c @@ -39,88 +39,88 @@ static int cake_fill_message(Link *link, QDisc *qdisc, sd_netlink_message *req) assert(qdisc); assert(req); - c = CAKE(qdisc); + assert_se(c = CAKE(qdisc)); r = sd_netlink_message_open_container_union(req, TCA_OPTIONS, "cake"); if (r < 0) - return log_link_error_errno(link, r, "Could not open container TCA_OPTIONS: %m"); + return r; if (c->bandwidth > 0) { r = sd_netlink_message_append_u64(req, TCA_CAKE_BASE_RATE64, c->bandwidth); if (r < 0) - return log_link_error_errno(link, r, "Could not append TCA_CAKE_BASE_RATE64 attribute: %m"); + return r; } if (c->autorate >= 0) { r = sd_netlink_message_append_u32(req, TCA_CAKE_AUTORATE, c->autorate); if (r < 0) - return log_link_error_errno(link, r, "Could not append TCA_CAKE_AUTORATE attribute: %m"); + return r; } if (c->overhead_set) { r = sd_netlink_message_append_s32(req, TCA_CAKE_OVERHEAD, c->overhead); if (r < 0) - return log_link_error_errno(link, r, "Could not append TCA_CAKE_OVERHEAD attribute: %m"); + return r; } if (c->mpu > 0) { r = sd_netlink_message_append_u32(req, TCA_CAKE_MPU, c->mpu); if (r < 0) - return log_link_error_errno(link, r, "Could not append TCA_CAKE_MPU attribute: %m"); + return r; } if (c->compensation_mode >= 0) { r = sd_netlink_message_append_u32(req, TCA_CAKE_ATM, c->compensation_mode); if (r < 0) - return log_link_error_errno(link, r, "Could not append TCA_CAKE_ATM attribute: %m"); + return r; } if (c->raw > 0) { /* TCA_CAKE_RAW attribute is mostly a flag, not boolean. */ r = sd_netlink_message_append_u32(req, TCA_CAKE_RAW, 0); if (r < 0) - return log_link_error_errno(link, r, "Could not append TCA_CAKE_RAW attribute: %m"); + return r; } if (c->flow_isolation_mode >= 0) { r = sd_netlink_message_append_u32(req, TCA_CAKE_FLOW_MODE, c->flow_isolation_mode); if (r < 0) - return log_link_error_errno(link, r, "Could not append TCA_CAKE_FLOW_MODE attribute: %m"); + return r; } if (c->nat >= 0) { r = sd_netlink_message_append_u32(req, TCA_CAKE_NAT, c->nat); if (r < 0) - return log_link_error_errno(link, r, "Could not append TCA_CAKE_NAT attribute: %m"); + return r; } if (c->preset >= 0) { r = sd_netlink_message_append_u32(req, TCA_CAKE_DIFFSERV_MODE, c->preset); if (r < 0) - return log_link_error_errno(link, r, "Could not append TCA_CAKE_DIFFSERV_MODE attribute: %m"); + return r; } if (c->fwmark > 0) { r = sd_netlink_message_append_u32(req, TCA_CAKE_FWMARK, c->fwmark); if (r < 0) - return log_link_error_errno(link, r, "Could not append TCA_CAKE_FWMARK attribute: %m"); + return r; } if (c->wash >= 0) { r = sd_netlink_message_append_u32(req, TCA_CAKE_WASH, c->wash); if (r < 0) - return log_link_error_errno(link, r, "Could not append TCA_CAKE_WASH attribute: %m"); + return r; } if (c->split_gso >= 0) { r = sd_netlink_message_append_u32(req, TCA_CAKE_SPLIT_GSO, c->split_gso); if (r < 0) - return log_link_error_errno(link, r, "Could not append TCA_CAKE_SPLIT_GSO attribute: %m"); + return r; } r = sd_netlink_message_close_container(req); if (r < 0) - return log_link_error_errno(link, r, "Could not close container TCA_OPTIONS: %m"); + return r; return 0; } diff --git a/src/network/tc/codel.c b/src/network/tc/codel.c index 33f40d87d4..23351bf3d1 100644 --- a/src/network/tc/codel.c +++ b/src/network/tc/codel.c @@ -31,45 +31,45 @@ static int controlled_delay_fill_message(Link *link, QDisc *qdisc, sd_netlink_me assert(qdisc); assert(req); - cd = CODEL(qdisc); + assert_se(cd = CODEL(qdisc)); r = sd_netlink_message_open_container_union(req, TCA_OPTIONS, "codel"); if (r < 0) - return log_link_error_errno(link, r, "Could not open container TCA_OPTIONS: %m"); + return r; if (cd->packet_limit > 0) { r = sd_netlink_message_append_u32(req, TCA_CODEL_LIMIT, cd->packet_limit); if (r < 0) - return log_link_error_errno(link, r, "Could not append TCA_CODEL_LIMIT attribute: %m"); + return r; } if (cd->interval_usec > 0) { r = sd_netlink_message_append_u32(req, TCA_CODEL_INTERVAL, cd->interval_usec); if (r < 0) - return log_link_error_errno(link, r, "Could not append TCA_CODEL_INTERVAL attribute: %m"); + return r; } if (cd->target_usec > 0) { r = sd_netlink_message_append_u32(req, TCA_CODEL_TARGET, cd->target_usec); if (r < 0) - return log_link_error_errno(link, r, "Could not append TCA_CODEL_TARGET attribute: %m"); + return r; } if (cd->ecn >= 0) { r = sd_netlink_message_append_u32(req, TCA_CODEL_ECN, cd->ecn); if (r < 0) - return log_link_error_errno(link, r, "Could not append TCA_CODEL_ECN attribute: %m"); + return r; } if (cd->ce_threshold_usec != USEC_INFINITY) { r = sd_netlink_message_append_u32(req, TCA_CODEL_CE_THRESHOLD, cd->ce_threshold_usec); if (r < 0) - return log_link_error_errno(link, r, "Could not append TCA_CODEL_CE_THRESHOLD attribute: %m"); + return r; } r = sd_netlink_message_close_container(req); if (r < 0) - return log_link_error_errno(link, r, "Could not close container TCA_OPTIONS: %m"); + return r; return 0; } diff --git a/src/network/tc/drr.c b/src/network/tc/drr.c index ab67b0ad3e..742a56f8c9 100644 --- a/src/network/tc/drr.c +++ b/src/network/tc/drr.c @@ -23,21 +23,21 @@ static int drr_class_fill_message(Link *link, TClass *tclass, sd_netlink_message assert(tclass); assert(req); - drr = TCLASS_TO_DRR(tclass); + assert_se(drr = TCLASS_TO_DRR(tclass)); r = sd_netlink_message_open_container_union(req, TCA_OPTIONS, "drr"); if (r < 0) - return log_link_error_errno(link, r, "Could not open container TCA_OPTIONS: %m"); + return r; if (drr->quantum > 0) { r = sd_netlink_message_append_u32(req, TCA_DRR_QUANTUM, drr->quantum); if (r < 0) - return log_link_error_errno(link, r, "Could not append TCA_DRR_QUANTUM, attribute: %m"); + return r; } r = sd_netlink_message_close_container(req); if (r < 0) - return log_link_error_errno(link, r, "Could not close container TCA_OPTIONS: %m"); + return r; return 0; } diff --git a/src/network/tc/ets.c b/src/network/tc/ets.c index f8dd1adabc..c4d594cd1b 100644 --- a/src/network/tc/ets.c +++ b/src/network/tc/ets.c @@ -20,57 +20,57 @@ static int enhanced_transmission_selection_fill_message(Link *link, QDisc *qdisc assert(qdisc); assert(req); - ets = ETS(qdisc); + assert_se(ets = ETS(qdisc)); r = sd_netlink_message_open_container_union(req, TCA_OPTIONS, "ets"); if (r < 0) - return log_link_error_errno(link, r, "Could not open container TCA_OPTIONS: %m"); + return r; r = sd_netlink_message_append_u8(req, TCA_ETS_NBANDS, ets->n_bands); if (r < 0) - return log_link_error_errno(link, r, "Could not append TCA_ETS_NBANDS attribute: %m"); + return r; if (ets->n_strict > 0) { r = sd_netlink_message_append_u8(req, TCA_ETS_NSTRICT, ets->n_strict); if (r < 0) - return log_link_error_errno(link, r, "Could not append TCA_ETS_NSTRICT attribute: %m"); + return r; } if (ets->n_quanta > 0) { r = sd_netlink_message_open_container(req, TCA_ETS_QUANTA); if (r < 0) - return log_link_error_errno(link, r, "Could not open container TCA_ETS_QUANTA: %m"); + return r; for (unsigned i = 0; i < ets->n_quanta; i++) { r = sd_netlink_message_append_u32(req, TCA_ETS_QUANTA_BAND, ets->quanta[i]); if (r < 0) - return log_link_error_errno(link, r, "Could not append TCA_ETS_QUANTA_BAND attribute: %m"); + return r; } r = sd_netlink_message_close_container(req); if (r < 0) - return log_link_error_errno(link, r, "Could not close container TCA_ETS_QUANTA: %m"); + return r; } if (ets->n_prio > 0) { r = sd_netlink_message_open_container(req, TCA_ETS_PRIOMAP); if (r < 0) - return log_link_error_errno(link, r, "Could not open container TCA_ETS_PRIOMAP: %m"); + return r; for (unsigned i = 0; i < ets->n_prio; i++) { r = sd_netlink_message_append_u8(req, TCA_ETS_PRIOMAP_BAND, ets->prio[i]); if (r < 0) - return log_link_error_errno(link, r, "Could not append TCA_ETS_PRIOMAP_BAND attribute: %m"); + return r; } r = sd_netlink_message_close_container(req); if (r < 0) - return log_link_error_errno(link, r, "Could not close container TCA_ETS_PRIOMAP: %m"); + return r; } r = sd_netlink_message_close_container(req); if (r < 0) - return log_link_error_errno(link, r, "Could not close container TCA_OPTIONS: %m"); + return r; return 0; } diff --git a/src/network/tc/fifo.c b/src/network/tc/fifo.c index 3dd7f0b5f4..4f6e8fa613 100644 --- a/src/network/tc/fifo.c +++ b/src/network/tc/fifo.c @@ -11,7 +11,6 @@ #include "string-util.h" static int fifo_fill_message(Link *link, QDisc *qdisc, sd_netlink_message *req) { - struct tc_fifo_qopt opt = {}; FirstInFirstOut *fifo; int r; @@ -21,23 +20,22 @@ static int fifo_fill_message(Link *link, QDisc *qdisc, sd_netlink_message *req) switch(qdisc->kind) { case QDISC_KIND_PFIFO: - fifo = PFIFO(qdisc); + assert_se(fifo = PFIFO(qdisc)); break; case QDISC_KIND_BFIFO: - fifo = BFIFO(qdisc); + assert_se(fifo = BFIFO(qdisc)); break; case QDISC_KIND_PFIFO_HEAD_DROP: - fifo = PFIFO_HEAD_DROP(qdisc); + assert_se(fifo = PFIFO_HEAD_DROP(qdisc)); break; default: assert_not_reached(); } - opt.limit = fifo->limit; - - r = sd_netlink_message_append_data(req, TCA_OPTIONS, &opt, sizeof(struct tc_fifo_qopt)); + const struct tc_fifo_qopt opt = { .limit = fifo->limit }; + r = sd_netlink_message_append_data(req, TCA_OPTIONS, &opt, sizeof(opt)); if (r < 0) - return log_link_error_errno(link, r, "Could not append TCA_OPTIONS attribute: %m"); + return r; return 0; } diff --git a/src/network/tc/fq-codel.c b/src/network/tc/fq-codel.c index 7c61cf2ac6..42dfd632a2 100644 --- a/src/network/tc/fq-codel.c +++ b/src/network/tc/fq-codel.c @@ -33,63 +33,63 @@ static int fair_queueing_controlled_delay_fill_message(Link *link, QDisc *qdisc, assert(qdisc); assert(req); - fqcd = FQ_CODEL(qdisc); + assert_se(fqcd = FQ_CODEL(qdisc)); r = sd_netlink_message_open_container_union(req, TCA_OPTIONS, "fq_codel"); if (r < 0) - return log_link_error_errno(link, r, "Could not open container TCA_OPTIONS: %m"); + return r; if (fqcd->packet_limit > 0) { r = sd_netlink_message_append_u32(req, TCA_FQ_CODEL_LIMIT, fqcd->packet_limit); if (r < 0) - return log_link_error_errno(link, r, "Could not append TCA_FQ_CODEL_LIMIT attribute: %m"); + return r; } if (fqcd->flows > 0) { r = sd_netlink_message_append_u32(req, TCA_FQ_CODEL_FLOWS, fqcd->flows); if (r < 0) - return log_link_error_errno(link, r, "Could not append TCA_FQ_CODEL_FLOWS attribute: %m"); + return r; } if (fqcd->quantum > 0) { r = sd_netlink_message_append_u32(req, TCA_FQ_CODEL_QUANTUM, fqcd->quantum); if (r < 0) - return log_link_error_errno(link, r, "Could not append TCA_FQ_CODEL_QUANTUM attribute: %m"); + return r; } if (fqcd->interval_usec > 0) { r = sd_netlink_message_append_u32(req, TCA_FQ_CODEL_INTERVAL, fqcd->interval_usec); if (r < 0) - return log_link_error_errno(link, r, "Could not append TCA_FQ_CODEL_INTERVAL attribute: %m"); + return r; } if (fqcd->target_usec > 0) { r = sd_netlink_message_append_u32(req, TCA_FQ_CODEL_TARGET, fqcd->target_usec); if (r < 0) - return log_link_error_errno(link, r, "Could not append TCA_FQ_CODEL_TARGET attribute: %m"); + return r; } if (fqcd->ecn >= 0) { r = sd_netlink_message_append_u32(req, TCA_FQ_CODEL_ECN, fqcd->ecn); if (r < 0) - return log_link_error_errno(link, r, "Could not append TCA_FQ_CODEL_ECN attribute: %m"); + return r; } if (fqcd->ce_threshold_usec != USEC_INFINITY) { r = sd_netlink_message_append_u32(req, TCA_FQ_CODEL_CE_THRESHOLD, fqcd->ce_threshold_usec); if (r < 0) - return log_link_error_errno(link, r, "Could not append TCA_FQ_CODEL_CE_THRESHOLD attribute: %m"); + return r; } if (fqcd->memory_limit != UINT32_MAX) { r = sd_netlink_message_append_u32(req, TCA_FQ_CODEL_MEMORY_LIMIT, fqcd->memory_limit); if (r < 0) - return log_link_error_errno(link, r, "Could not append TCA_FQ_CODEL_MEMORY_LIMIT attribute: %m"); + return r; } r = sd_netlink_message_close_container(req); if (r < 0) - return log_link_error_errno(link, r, "Could not close container TCA_OPTIONS: %m"); + return r; return 0; } diff --git a/src/network/tc/fq-pie.c b/src/network/tc/fq-pie.c index c7d7623b47..d4a9d5966a 100644 --- a/src/network/tc/fq-pie.c +++ b/src/network/tc/fq-pie.c @@ -18,21 +18,21 @@ static int fq_pie_fill_message(Link *link, QDisc *qdisc, sd_netlink_message *req assert(qdisc); assert(req); - fq_pie = FQ_PIE(qdisc); + assert_se(fq_pie = FQ_PIE(qdisc)); r = sd_netlink_message_open_container_union(req, TCA_OPTIONS, "fq_pie"); if (r < 0) - return log_link_error_errno(link, r, "Could not open container TCA_OPTIONS: %m"); + return r; if (fq_pie->packet_limit > 0) { r = sd_netlink_message_append_u32(req, TCA_FQ_PIE_LIMIT, fq_pie->packet_limit); if (r < 0) - return log_link_error_errno(link, r, "Could not append TCA_FQ_PIE_PLIMIT attribute: %m"); + return r; } r = sd_netlink_message_close_container(req); if (r < 0) - return log_link_error_errno(link, r, "Could not close container TCA_OPTIONS: %m"); + return r; return 0; } diff --git a/src/network/tc/fq.c b/src/network/tc/fq.c index d10a863495..1e69a66d7b 100644 --- a/src/network/tc/fq.c +++ b/src/network/tc/fq.c @@ -32,46 +32,46 @@ static int fair_queueing_fill_message(Link *link, QDisc *qdisc, sd_netlink_messa assert(qdisc); assert(req); - fq = FQ(qdisc); + assert_se(fq = FQ(qdisc)); r = sd_netlink_message_open_container_union(req, TCA_OPTIONS, "fq"); if (r < 0) - return log_link_error_errno(link, r, "Could not open container TCA_OPTIONS: %m"); + return r; if (fq->packet_limit > 0) { r = sd_netlink_message_append_u32(req, TCA_FQ_PLIMIT, fq->packet_limit); if (r < 0) - return log_link_error_errno(link, r, "Could not append TCA_FQ_PLIMIT attribute: %m"); + return r; } if (fq->flow_limit > 0) { r = sd_netlink_message_append_u32(req, TCA_FQ_FLOW_PLIMIT, fq->flow_limit); if (r < 0) - return log_link_error_errno(link, r, "Could not append TCA_FQ_FLOW_PLIMIT attribute: %m"); + return r; } if (fq->quantum > 0) { r = sd_netlink_message_append_u32(req, TCA_FQ_QUANTUM, fq->quantum); if (r < 0) - return log_link_error_errno(link, r, "Could not append TCA_FQ_QUANTUM attribute: %m"); + return r; } if (fq->initial_quantum > 0) { r = sd_netlink_message_append_u32(req, TCA_FQ_INITIAL_QUANTUM, fq->initial_quantum); if (r < 0) - return log_link_error_errno(link, r, "Could not append TCA_FQ_INITIAL_QUANTUM attribute: %m"); + return r; } if (fq->pacing >= 0) { r = sd_netlink_message_append_u32(req, TCA_FQ_RATE_ENABLE, fq->pacing); if (r < 0) - return log_link_error_errno(link, r, "Could not append TCA_FQ_RATE_ENABLE attribute: %m"); + return r; } if (fq->max_rate > 0) { r = sd_netlink_message_append_u32(req, TCA_FQ_FLOW_MAX_RATE, fq->max_rate); if (r < 0) - return log_link_error_errno(link, r, "Could not append TCA_FQ_FLOW_MAX_RATE attribute: %m"); + return r; } if (fq->buckets > 0) { @@ -80,24 +80,24 @@ static int fair_queueing_fill_message(Link *link, QDisc *qdisc, sd_netlink_messa l = log2u(fq->buckets); r = sd_netlink_message_append_u32(req, TCA_FQ_BUCKETS_LOG, l); if (r < 0) - return log_link_error_errno(link, r, "Could not append TCA_FQ_BUCKETS_LOG attribute: %m"); + return r; } if (fq->orphan_mask > 0) { r = sd_netlink_message_append_u32(req, TCA_FQ_ORPHAN_MASK, fq->orphan_mask); if (r < 0) - return log_link_error_errno(link, r, "Could not append TCA_FQ_ORPHAN_MASK attribute: %m"); + return r; } if (fq->ce_threshold_usec != USEC_INFINITY) { r = sd_netlink_message_append_u32(req, TCA_FQ_CE_THRESHOLD, fq->ce_threshold_usec); if (r < 0) - return log_link_error_errno(link, r, "Could not append TCA_FQ_CE_THRESHOLD attribute: %m"); + return r; } r = sd_netlink_message_close_container(req); if (r < 0) - return log_link_error_errno(link, r, "Could not close container TCA_OPTIONS: %m"); + return r; return 0; } diff --git a/src/network/tc/gred.c b/src/network/tc/gred.c index ce26e62450..96281e6bd4 100644 --- a/src/network/tc/gred.c +++ b/src/network/tc/gred.c @@ -24,32 +24,31 @@ static int generic_random_early_detection_init(QDisc *qdisc) { static int generic_random_early_detection_fill_message(Link *link, QDisc *qdisc, sd_netlink_message *req) { GenericRandomEarlyDetection *gred; - struct tc_gred_sopt opt = {}; int r; assert(link); assert(qdisc); assert(req); - gred = GRED(qdisc); - - opt.DPs = gred->virtual_queues; - opt.def_DP = gred->default_virtual_queue; + assert_se(gred = GRED(qdisc)); - if (gred->grio >= 0) - opt.grio = gred->grio; + const struct tc_gred_sopt opt = { + .DPs = gred->virtual_queues, + .def_DP = gred->default_virtual_queue, + .grio = gred->grio, + }; r = sd_netlink_message_open_container_union(req, TCA_OPTIONS, "gred"); if (r < 0) - return log_link_error_errno(link, r, "Could not open container TCA_OPTIONS: %m"); + return r; - r = sd_netlink_message_append_data(req, TCA_GRED_DPS, &opt, sizeof(struct tc_gred_sopt)); + r = sd_netlink_message_append_data(req, TCA_GRED_DPS, &opt, sizeof(opt)); if (r < 0) - return log_link_error_errno(link, r, "Could not append TCA_GRED_DPS attribute: %m"); + return r; r = sd_netlink_message_close_container(req); if (r < 0) - return log_link_error_errno(link, r, "Could not close container TCA_OPTIONS: %m"); + return r; return 0; } diff --git a/src/network/tc/hhf.c b/src/network/tc/hhf.c index 68a4b45710..aac4feff45 100644 --- a/src/network/tc/hhf.c +++ b/src/network/tc/hhf.c @@ -19,21 +19,21 @@ static int heavy_hitter_filter_fill_message(Link *link, QDisc *qdisc, sd_netlink assert(qdisc); assert(req); - hhf = HHF(qdisc); + assert_se(hhf = HHF(qdisc)); r = sd_netlink_message_open_container_union(req, TCA_OPTIONS, "hhf"); if (r < 0) - return log_link_error_errno(link, r, "Could not open container TCA_OPTIONS: %m"); + return r; if (hhf->packet_limit > 0) { r = sd_netlink_message_append_u32(req, TCA_HHF_BACKLOG_LIMIT, hhf->packet_limit); if (r < 0) - return log_link_error_errno(link, r, "Could not append TCA_HHF_BACKLOG_LIMIT attribute: %m"); + return r; } r = sd_netlink_message_close_container(req); if (r < 0) - return log_link_error_errno(link, r, "Could not close container TCA_OPTIONS: %m"); + return r; return 0; } diff --git a/src/network/tc/htb.c b/src/network/tc/htb.c index 14fb1f92e3..78fcd3f05f 100644 --- a/src/network/tc/htb.c +++ b/src/network/tc/htb.c @@ -16,31 +16,31 @@ static int hierarchy_token_bucket_fill_message(Link *link, QDisc *qdisc, sd_netlink_message *req) { HierarchyTokenBucket *htb; - struct tc_htb_glob opt = { - .version = 3, - }; int r; assert(link); assert(qdisc); assert(req); - htb = HTB(qdisc); + assert_se(htb = HTB(qdisc)); - opt.rate2quantum = htb->rate_to_quantum; - opt.defcls = htb->default_class; + struct tc_htb_glob opt = { + .version = 3, + .rate2quantum = htb->rate_to_quantum, + .defcls = htb->default_class, + }; r = sd_netlink_message_open_container_union(req, TCA_OPTIONS, "htb"); if (r < 0) - return log_link_error_errno(link, r, "Could not open container TCA_OPTIONS: %m"); + return r; r = sd_netlink_message_append_data(req, TCA_HTB_INIT, &opt, sizeof(opt)); if (r < 0) - return log_link_error_errno(link, r, "Could not append TCA_HTB_INIT attribute: %m"); + return r; r = sd_netlink_message_close_container(req); if (r < 0) - return log_link_error_errno(link, r, "Could not close container TCA_OPTIONS: %m"); + return r; return 0; } @@ -171,7 +171,6 @@ const QDiscVTable htb_vtable = { static int hierarchy_token_bucket_class_fill_message(Link *link, TClass *tclass, sd_netlink_message *req) { HierarchyTokenBucketClass *htb; - struct tc_htb_opt opt = {}; uint32_t rtab[256], ctab[256]; int r; @@ -179,62 +178,65 @@ static int hierarchy_token_bucket_class_fill_message(Link *link, TClass *tclass, assert(tclass); assert(req); - htb = TCLASS_TO_HTB(tclass); + assert_se(htb = TCLASS_TO_HTB(tclass)); - opt.prio = htb->priority; - opt.quantum = htb->quantum; - opt.rate.rate = (htb->rate >= (1ULL << 32)) ? ~0U : htb->rate; - opt.ceil.rate = (htb->ceil_rate >= (1ULL << 32)) ? ~0U : htb->ceil_rate; - opt.rate.overhead = htb->overhead; - opt.ceil.overhead = htb->overhead; + struct tc_htb_opt opt = { + .prio = htb->priority, + .quantum = htb->quantum, + .rate.rate = (htb->rate >= (1ULL << 32)) ? ~0U : htb->rate, + .ceil.rate = (htb->ceil_rate >= (1ULL << 32)) ? ~0U : htb->ceil_rate, + .rate.overhead = htb->overhead, + .ceil.overhead = htb->overhead, + }; r = tc_transmit_time(htb->rate, htb->buffer, &opt.buffer); if (r < 0) - return log_link_error_errno(link, r, "Failed to calculate buffer size: %m"); + return log_link_debug_errno(link, r, "Failed to calculate buffer size: %m"); r = tc_transmit_time(htb->ceil_rate, htb->ceil_buffer, &opt.cbuffer); if (r < 0) - return log_link_error_errno(link, r, "Failed to calculate ceil buffer size: %m"); + return log_link_debug_errno(link, r, "Failed to calculate ceil buffer size: %m"); r = tc_fill_ratespec_and_table(&opt.rate, rtab, htb->mtu); if (r < 0) - return log_link_error_errno(link, r, "Failed to calculate rate table: %m"); + return log_link_debug_errno(link, r, "Failed to calculate rate table: %m"); r = tc_fill_ratespec_and_table(&opt.ceil, ctab, htb->mtu); if (r < 0) - return log_link_error_errno(link, r, "Failed to calculate ceil rate table: %m"); + return log_link_debug_errno(link, r, "Failed to calculate ceil rate table: %m"); r = sd_netlink_message_open_container_union(req, TCA_OPTIONS, "htb"); if (r < 0) - return log_link_error_errno(link, r, "Could not open container TCA_OPTIONS: %m"); + return r; r = sd_netlink_message_append_data(req, TCA_HTB_PARMS, &opt, sizeof(opt)); if (r < 0) - return log_link_error_errno(link, r, "Could not append TCA_HTB_PARMS attribute: %m"); + return r; if (htb->rate >= (1ULL << 32)) { r = sd_netlink_message_append_u64(req, TCA_HTB_RATE64, htb->rate); if (r < 0) - return log_link_error_errno(link, r, "Could not append TCA_HTB_RATE64 attribute: %m"); + return r; } if (htb->ceil_rate >= (1ULL << 32)) { r = sd_netlink_message_append_u64(req, TCA_HTB_CEIL64, htb->ceil_rate); if (r < 0) - return log_link_error_errno(link, r, "Could not append TCA_HTB_CEIL64 attribute: %m"); + return r; } r = sd_netlink_message_append_data(req, TCA_HTB_RTAB, rtab, sizeof(rtab)); if (r < 0) - return log_link_error_errno(link, r, "Could not append TCA_HTB_RTAB attribute: %m"); + return r; r = sd_netlink_message_append_data(req, TCA_HTB_CTAB, ctab, sizeof(ctab)); if (r < 0) - return log_link_error_errno(link, r, "Could not append TCA_HTB_CTAB attribute: %m"); + return r; r = sd_netlink_message_close_container(req); if (r < 0) - return log_link_error_errno(link, r, "Could not close container TCA_OPTIONS: %m"); + return r; + return 0; } diff --git a/src/network/tc/netem.c b/src/network/tc/netem.c index 2d86d53125..d4c452675e 100644 --- a/src/network/tc/netem.c +++ b/src/network/tc/netem.c @@ -14,9 +14,6 @@ #include "tc-util.h" static int network_emulator_fill_message(Link *link, QDisc *qdisc, sd_netlink_message *req) { - struct tc_netem_qopt opt = { - .limit = 1000, - }; NetworkEmulator *ne; int r; @@ -24,16 +21,13 @@ static int network_emulator_fill_message(Link *link, QDisc *qdisc, sd_netlink_me assert(qdisc); assert(req); - ne = NETEM(qdisc); - - if (ne->limit > 0) - opt.limit = ne->limit; + assert_se(ne = NETEM(qdisc)); - if (ne->loss > 0) - opt.loss = ne->loss; - - if (ne->duplicate > 0) - opt.duplicate = ne->duplicate; + struct tc_netem_qopt opt = { + .limit = ne->limit > 0 ? ne->limit : 1000, + .loss = ne->loss, + .duplicate = ne->duplicate, + }; if (ne->delay != USEC_INFINITY) { r = tc_time_to_tick(ne->delay, &opt.latency); @@ -47,9 +41,9 @@ static int network_emulator_fill_message(Link *link, QDisc *qdisc, sd_netlink_me return log_link_error_errno(link, r, "Failed to calculate jitter in TCA_OPTION: %m"); } - r = sd_netlink_message_append_data(req, TCA_OPTIONS, &opt, sizeof(struct tc_netem_qopt)); + r = sd_netlink_message_append_data(req, TCA_OPTIONS, &opt, sizeof(opt)); if (r < 0) - return log_link_error_errno(link, r, "Could not append TCA_OPTION attribute: %m"); + return r; return 0; } diff --git a/src/network/tc/pie.c b/src/network/tc/pie.c index 4fcfe625b4..1b1a457f46 100644 --- a/src/network/tc/pie.c +++ b/src/network/tc/pie.c @@ -18,21 +18,21 @@ static int pie_fill_message(Link *link, QDisc *qdisc, sd_netlink_message *req) { assert(qdisc); assert(req); - pie = PIE(qdisc); + assert_se(pie = PIE(qdisc)); r = sd_netlink_message_open_container_union(req, TCA_OPTIONS, "pie"); if (r < 0) - return log_link_error_errno(link, r, "Could not open container TCA_OPTIONS: %m"); + return r; if (pie->packet_limit > 0) { r = sd_netlink_message_append_u32(req, TCA_PIE_LIMIT, pie->packet_limit); if (r < 0) - return log_link_error_errno(link, r, "Could not append TCA_PIE_PLIMIT attribute: %m"); + return r; } r = sd_netlink_message_close_container(req); if (r < 0) - return log_link_error_errno(link, r, "Could not close container TCA_OPTIONS: %m"); + return r; return 0; } diff --git a/src/network/tc/qdisc.c b/src/network/tc/qdisc.c index 2e0f0a12eb..32b55e99f8 100644 --- a/src/network/tc/qdisc.c +++ b/src/network/tc/qdisc.c @@ -210,7 +210,7 @@ int qdisc_configure(Link *link, QDisc *qdisc) { if (QDISC_VTABLE(qdisc)->fill_message) { r = QDISC_VTABLE(qdisc)->fill_message(link, qdisc, req); if (r < 0) - return r; + return log_link_error_errno(link, r, "Could not fill netlink message: %m"); } } else { r = sd_netlink_message_append_string(req, TCA_KIND, qdisc->tca_kind); diff --git a/src/network/tc/qfq.c b/src/network/tc/qfq.c index d2e7b875ef..51aef03210 100644 --- a/src/network/tc/qfq.c +++ b/src/network/tc/qfq.c @@ -25,27 +25,28 @@ static int quick_fair_queueing_class_fill_message(Link *link, TClass *tclass, sd assert(tclass); assert(req); - qfq = TCLASS_TO_QFQ(tclass); + assert_se(qfq = TCLASS_TO_QFQ(tclass)); r = sd_netlink_message_open_container_union(req, TCA_OPTIONS, "qfq"); if (r < 0) - return log_link_error_errno(link, r, "Could not open container TCA_OPTIONS: %m"); + return r; if (qfq->weight > 0) { r = sd_netlink_message_append_u32(req, TCA_QFQ_WEIGHT, qfq->weight); if (r < 0) - return log_link_error_errno(link, r, "Could not append TCA_QFQ_WEIGHT attribute: %m"); + return r; } if (qfq->max_packet > 0) { r = sd_netlink_message_append_u32(req, TCA_QFQ_LMAX, qfq->max_packet); if (r < 0) - return log_link_error_errno(link, r, "Could not append TCA_QFQ_LMAX attribute: %m"); + return r; } r = sd_netlink_message_close_container(req); if (r < 0) - return log_link_error_errno(link, r, "Could not close container TCA_OPTIONS: %m"); + return r; + return 0; } diff --git a/src/network/tc/sfb.c b/src/network/tc/sfb.c index a4ca4884b1..88b3ce55bd 100644 --- a/src/network/tc/sfb.c +++ b/src/network/tc/sfb.c @@ -13,7 +13,15 @@ static int stochastic_fair_blue_fill_message(Link *link, QDisc *qdisc, sd_netlink_message *req) { StochasticFairBlue *sfb; - struct tc_sfb_qopt opt = { + int r; + + assert(link); + assert(qdisc); + assert(req); + + assert_se(sfb = SFB(qdisc)); + + const struct tc_sfb_qopt opt = { .rehash_interval = 600*1000, .warmup_time = 60*1000, .penalty_rate = 10, @@ -22,28 +30,20 @@ static int stochastic_fair_blue_fill_message(Link *link, QDisc *qdisc, sd_netlin .decrement = (SFB_MAX_PROB + 10000) / 20000, .max = 25, .bin_size = 20, + .limit = sfb->packet_limit, }; - int r; - - assert(link); - assert(qdisc); - assert(req); - - sfb = SFB(qdisc); - - opt.limit = sfb->packet_limit; r = sd_netlink_message_open_container_union(req, TCA_OPTIONS, "sfb"); if (r < 0) - return log_link_error_errno(link, r, "Could not open container TCA_OPTIONS: %m"); + return r; - r = sd_netlink_message_append_data(req, TCA_SFB_PARMS, &opt, sizeof(struct tc_sfb_qopt)); + r = sd_netlink_message_append_data(req, TCA_SFB_PARMS, &opt, sizeof(opt)); if (r < 0) - return log_link_error_errno(link, r, "Could not append TCA_SFB_PARMS attribute: %m"); + return r; r = sd_netlink_message_close_container(req); if (r < 0) - return log_link_error_errno(link, r, "Could not close container TCA_OPTIONS: %m"); + return r; return 0; } diff --git a/src/network/tc/sfq.c b/src/network/tc/sfq.c index f67ffc186d..45cc54d396 100644 --- a/src/network/tc/sfq.c +++ b/src/network/tc/sfq.c @@ -13,20 +13,21 @@ static int stochastic_fairness_queueing_fill_message(Link *link, QDisc *qdisc, sd_netlink_message *req) { StochasticFairnessQueueing *sfq; - struct tc_sfq_qopt_v1 opt = {}; int r; assert(link); assert(qdisc); assert(req); - sfq = SFQ(qdisc); + assert_se(sfq = SFQ(qdisc)); - opt.v0.perturb_period = sfq->perturb_period / USEC_PER_SEC; + const struct tc_sfq_qopt_v1 opt = { + .v0.perturb_period = sfq->perturb_period / USEC_PER_SEC, + }; - r = sd_netlink_message_append_data(req, TCA_OPTIONS, &opt, sizeof(struct tc_sfq_qopt_v1)); + r = sd_netlink_message_append_data(req, TCA_OPTIONS, &opt, sizeof(opt)); if (r < 0) - return log_link_error_errno(link, r, "Could not append TCA_OPTIONS attribute: %m"); + return r; return 0; } diff --git a/src/network/tc/tbf.c b/src/network/tc/tbf.c index 1d1bc6f0e9..2aca8c1f13 100644 --- a/src/network/tc/tbf.c +++ b/src/network/tc/tbf.c @@ -17,7 +17,6 @@ static int token_bucket_filter_fill_message(Link *link, QDisc *qdisc, sd_netlink_message *req) { uint32_t rtab[256], ptab[256]; - struct tc_tbf_qopt opt = {}; TokenBucketFilter *tbf; int r; @@ -25,10 +24,13 @@ static int token_bucket_filter_fill_message(Link *link, QDisc *qdisc, sd_netlink assert(qdisc); assert(req); - tbf = TBF(qdisc); + assert_se(tbf = TBF(qdisc)); - opt.rate.rate = tbf->rate >= (1ULL << 32) ? ~0U : tbf->rate; - opt.peakrate.rate = tbf->peak_rate >= (1ULL << 32) ? ~0U : tbf->peak_rate; + struct tc_tbf_qopt opt = { + .rate.rate = tbf->rate >= (1ULL << 32) ? ~0U : tbf->rate, + .peakrate.rate = tbf->peak_rate >= (1ULL << 32) ? ~0U : tbf->peak_rate, + .rate.mpu = tbf->mpu, + }; if (tbf->limit > 0) opt.limit = tbf->limit; @@ -43,69 +45,67 @@ static int token_bucket_filter_fill_message(Link *link, QDisc *qdisc, sd_netlink opt.limit = lim; } - opt.rate.mpu = tbf->mpu; - r = tc_fill_ratespec_and_table(&opt.rate, rtab, tbf->mtu); if (r < 0) - return log_link_error_errno(link, r, "Failed to calculate ratespec: %m"); + return log_link_debug_errno(link, r, "Failed to calculate ratespec: %m"); r = tc_transmit_time(opt.rate.rate, tbf->burst, &opt.buffer); if (r < 0) - return log_link_error_errno(link, r, "Failed to calculate buffer size: %m"); + return log_link_debug_errno(link, r, "Failed to calculate buffer size: %m"); if (opt.peakrate.rate > 0) { opt.peakrate.mpu = tbf->mpu; r = tc_fill_ratespec_and_table(&opt.peakrate, ptab, tbf->mtu); if (r < 0) - return log_link_error_errno(link, r, "Failed to calculate ratespec: %m"); + return log_link_debug_errno(link, r, "Failed to calculate ratespec: %m"); r = tc_transmit_time(opt.peakrate.rate, tbf->mtu, &opt.mtu); if (r < 0) - return log_link_error_errno(link, r, "Failed to calculate mtu size: %m"); + return log_link_debug_errno(link, r, "Failed to calculate mtu size: %m"); } r = sd_netlink_message_open_container_union(req, TCA_OPTIONS, "tbf"); if (r < 0) - return log_link_error_errno(link, r, "Could not open container TCA_OPTIONS: %m"); + return r; - r = sd_netlink_message_append_data(req, TCA_TBF_PARMS, &opt, sizeof(struct tc_tbf_qopt)); + r = sd_netlink_message_append_data(req, TCA_TBF_PARMS, &opt, sizeof(opt)); if (r < 0) - return log_link_error_errno(link, r, "Could not append TCA_TBF_PARMS attribute: %m"); + return r; r = sd_netlink_message_append_data(req, TCA_TBF_BURST, &tbf->burst, sizeof(tbf->burst)); if (r < 0) - return log_link_error_errno(link, r, "Could not append TCA_TBF_BURST attribute: %m"); + return r; if (tbf->rate >= (1ULL << 32)) { r = sd_netlink_message_append_u64(req, TCA_TBF_RATE64, tbf->rate); if (r < 0) - return log_link_error_errno(link, r, "Could not append TCA_TBF_RATE64 attribute: %m"); + return r; } r = sd_netlink_message_append_data(req, TCA_TBF_RTAB, rtab, sizeof(rtab)); if (r < 0) - return log_link_error_errno(link, r, "Could not append TCA_TBF_RTAB attribute: %m"); + return r; if (opt.peakrate.rate > 0) { if (tbf->peak_rate >= (1ULL << 32)) { r = sd_netlink_message_append_u64(req, TCA_TBF_PRATE64, tbf->peak_rate); if (r < 0) - return log_link_error_errno(link, r, "Could not append TCA_TBF_PRATE64 attribute: %m"); + return r; } r = sd_netlink_message_append_u32(req, TCA_TBF_PBURST, tbf->mtu); if (r < 0) - return log_link_error_errno(link, r, "Could not append TCA_TBF_PBURST attribute: %m"); + return r; r = sd_netlink_message_append_data(req, TCA_TBF_PTAB, ptab, sizeof(ptab)); if (r < 0) - return log_link_error_errno(link, r, "Could not append TCA_TBF_PTAB attribute: %m"); + return r; } r = sd_netlink_message_close_container(req); if (r < 0) - return log_link_error_errno(link, r, "Could not close container TCA_OPTIONS: %m"); + return r; return 0; } diff --git a/src/network/tc/tclass.c b/src/network/tc/tclass.c index d8145997f0..24a66579f9 100644 --- a/src/network/tc/tclass.c +++ b/src/network/tc/tclass.c @@ -158,7 +158,7 @@ int tclass_configure(Link *link, TClass *tclass) { if (TCLASS_VTABLE(tclass)->fill_message) { r = TCLASS_VTABLE(tclass)->fill_message(link, tclass, req); if (r < 0) - return r; + return log_link_error_errno(link, r, "Could not fill netlink message: %m"); } r = netlink_call_async(link->manager->rtnl, NULL, req, tclass_handler, link_netlink_destroy_callback, link); -- cgit v1.2.3 From bd187da8c44bd4d99751cd47685c686ebfc669ac Mon Sep 17 00:00:00 2001 From: Zbigniew Jędrzejewski-Szmek Date: Wed, 5 Jan 2022 10:52:17 +0100 Subject: network: simplify logging in request_process_bridge_fdb() --- src/network/networkd-bridge-fdb.c | 62 +++++++++++++++++++++------------------ 1 file changed, 33 insertions(+), 29 deletions(-) diff --git a/src/network/networkd-bridge-fdb.c b/src/network/networkd-bridge-fdb.c index 1298727a72..a0024f62d4 100644 --- a/src/network/networkd-bridge-fdb.c +++ b/src/network/networkd-bridge-fdb.c @@ -121,68 +121,51 @@ static int bridge_fdb_configure_handler(sd_netlink *rtnl, sd_netlink_message *m, } /* send a request to the kernel to add a FDB entry in its static MAC table. */ -static int bridge_fdb_configure(const BridgeFDB *fdb, Link *link, link_netlink_message_handler_t callback) { - _cleanup_(sd_netlink_message_unrefp) sd_netlink_message *req = NULL; +static int bridge_fdb_configure_message(const BridgeFDB *fdb, Link *link, sd_netlink_message *req) { int r; assert(fdb); assert(link); - assert(link->manager); - assert(link->manager->rtnl); - assert(callback); - - /* create new RTM message */ - r = sd_rtnl_message_new_neigh(link->manager->rtnl, &req, RTM_NEWNEIGH, link->ifindex, AF_BRIDGE); - if (r < 0) - return log_link_error_errno(link, r, "Could not create RTM_NEWNEIGH message: %m"); r = sd_rtnl_message_neigh_set_flags(req, fdb->ntf_flags); if (r < 0) - return log_link_error_errno(link, r, "Could not set neighbor flags: %m"); + return r; /* only NUD_PERMANENT state supported. */ r = sd_rtnl_message_neigh_set_state(req, NUD_NOARP | NUD_PERMANENT); if (r < 0) - return log_link_error_errno(link, r, "Could not set neighbor state: %m"); + return r; r = sd_netlink_message_append_data(req, NDA_LLADDR, &fdb->mac_addr, sizeof(fdb->mac_addr)); if (r < 0) - return log_link_error_errno(link, r, "Could not append NDA_LLADDR attribute: %m"); + return r; /* VLAN Id is optional. We'll add VLAN Id only if it's specified. */ if (fdb->vlan_id > 0) { r = sd_netlink_message_append_u16(req, NDA_VLAN, fdb->vlan_id); if (r < 0) - return log_link_error_errno(link, r, "Could not append NDA_VLAN attribute: %m"); + return r; } if (fdb->outgoing_ifindex > 0) { r = sd_netlink_message_append_u32(req, NDA_IFINDEX, fdb->outgoing_ifindex); if (r < 0) - return log_link_error_errno(link, r, "Could not append NDA_IFINDEX attribute: %m"); + return r; } if (in_addr_is_set(fdb->family, &fdb->destination_addr)) { r = netlink_message_append_in_addr_union(req, NDA_DST, fdb->family, &fdb->destination_addr); if (r < 0) - return log_link_error_errno(link, r, "Could not append NDA_DST attribute: %m"); + return r; } if (fdb->vni <= VXLAN_VID_MAX) { r = sd_netlink_message_append_u32(req, NDA_VNI, fdb->vni); if (r < 0) - return log_link_error_errno(link, r, "Could not append NDA_VNI attribute: %m"); + return r; } - /* send message to the kernel to update its internal static MAC table. */ - r = netlink_call_async(link->manager->rtnl, NULL, req, callback, - link_netlink_destroy_callback, link); - if (r < 0) - return log_link_error_errno(link, r, "Could not send rtnetlink message: %m"); - - link_ref(link); - - return 1; + return 0; } int link_request_static_bridge_fdb(Link *link) { @@ -238,15 +221,36 @@ static bool bridge_fdb_is_ready_to_configure(BridgeFDB *fdb, Link *link) { } int request_process_bridge_fdb(Request *req) { + Link *link; + int r; + assert(req); - assert(req->link); assert(req->fdb); assert(req->type == REQUEST_TYPE_BRIDGE_FDB); + assert_se(link = req->link); - if (!bridge_fdb_is_ready_to_configure(req->fdb, req->link)) + if (!bridge_fdb_is_ready_to_configure(req->fdb, link)) return 0; - return bridge_fdb_configure(req->fdb, req->link, req->netlink_handler); + /* create new RTM message */ + _cleanup_(sd_netlink_message_unrefp) sd_netlink_message *m = NULL; + r = sd_rtnl_message_new_neigh(link->manager->rtnl, &m, RTM_NEWNEIGH, link->ifindex, AF_BRIDGE); + if (r < 0) + return log_link_error_errno(link, r, "Could not allocate netlink message: %m"); + + r = bridge_fdb_configure_message(req->fdb, link, m); + if (r < 0) + return log_link_error_errno(link, r, "Could not create netlink message: %m"); + + /* send message to the kernel to update its internal static MAC table. */ + r = netlink_call_async(link->manager->rtnl, NULL, m, req->netlink_handler, + link_netlink_destroy_callback, link); + if (r < 0) + return log_link_error_errno(link, r, "Could not send netlink message: %m"); + + link_ref(link); + + return 1; } void network_drop_invalid_bridge_fdb_entries(Network *network) { -- cgit v1.2.3 From 907e277fddef00e8473c42cd5a71b6bcce314658 Mon Sep 17 00:00:00 2001 From: Zbigniew Jędrzejewski-Szmek Date: Wed, 5 Jan 2022 11:16:22 +0100 Subject: network: move logging from qdisc_configure()/tclass_configure() to the caller --- src/network/tc/qdisc.c | 14 +++++++------- src/network/tc/tc.c | 2 +- src/network/tc/tclass.c | 12 ++++++------ 3 files changed, 14 insertions(+), 14 deletions(-) diff --git a/src/network/tc/qdisc.c b/src/network/tc/qdisc.c index 32b55e99f8..995df2fc86 100644 --- a/src/network/tc/qdisc.c +++ b/src/network/tc/qdisc.c @@ -184,16 +184,16 @@ int qdisc_configure(Link *link, QDisc *qdisc) { r = sd_rtnl_message_new_qdisc(link->manager->rtnl, &req, RTM_NEWQDISC, qdisc->family, link->ifindex); if (r < 0) - return log_link_error_errno(link, r, "Could not create RTM_NEWQDISC message: %m"); + return log_link_debug_errno(link, r, "Could not create RTM_NEWQDISC message: %m"); r = sd_rtnl_message_set_qdisc_parent(req, qdisc->parent); if (r < 0) - return log_link_error_errno(link, r, "Could not create tcm_parent message: %m"); + return r; if (qdisc->handle != TC_H_UNSPEC) { r = sd_rtnl_message_set_qdisc_handle(req, qdisc->handle); if (r < 0) - return log_link_error_errno(link, r, "Could not set tcm_handle message: %m"); + return r; } if (QDISC_VTABLE(qdisc)) { @@ -204,23 +204,23 @@ int qdisc_configure(Link *link, QDisc *qdisc) { } else { r = sd_netlink_message_append_string(req, TCA_KIND, QDISC_VTABLE(qdisc)->tca_kind); if (r < 0) - return log_link_error_errno(link, r, "Could not append TCA_KIND attribute: %m"); + return r; } if (QDISC_VTABLE(qdisc)->fill_message) { r = QDISC_VTABLE(qdisc)->fill_message(link, qdisc, req); if (r < 0) - return log_link_error_errno(link, r, "Could not fill netlink message: %m"); + return r; } } else { r = sd_netlink_message_append_string(req, TCA_KIND, qdisc->tca_kind); if (r < 0) - return log_link_error_errno(link, r, "Could not append TCA_KIND attribute: %m"); + return r; } r = netlink_call_async(link->manager->rtnl, NULL, req, qdisc_handler, link_netlink_destroy_callback, link); if (r < 0) - return log_link_error_errno(link, r, "Could not send rtnetlink message: %m"); + return log_link_debug_errno(link, r, "Could not send netlink message: %m"); link_ref(link); link->tc_messages++; diff --git a/src/network/tc/tc.c b/src/network/tc/tc.c index a3cfed53fa..8f76809c7d 100644 --- a/src/network/tc/tc.c +++ b/src/network/tc/tc.c @@ -52,7 +52,7 @@ int link_configure_traffic_control(Link *link) { ORDERED_HASHMAP_FOREACH(tc, link->network->tc_by_section) { r = traffic_control_configure(link, tc); if (r < 0) - return r; + return log_link_error_errno(link, r, "Could not create send configuration message: %m"); } if (link->tc_messages == 0) diff --git a/src/network/tc/tclass.c b/src/network/tc/tclass.c index 24a66579f9..10bffd65c6 100644 --- a/src/network/tc/tclass.c +++ b/src/network/tc/tclass.c @@ -139,31 +139,31 @@ int tclass_configure(Link *link, TClass *tclass) { r = sd_rtnl_message_new_tclass(link->manager->rtnl, &req, RTM_NEWTCLASS, AF_UNSPEC, link->ifindex); if (r < 0) - return log_link_error_errno(link, r, "Could not create RTM_NEWTCLASS message: %m"); + return log_link_debug_errno(link, r, "Could not create RTM_NEWTCLASS message: %m"); r = sd_rtnl_message_set_tclass_parent(req, tclass->parent); if (r < 0) - return log_link_error_errno(link, r, "Could not create tcm_parent message: %m"); + return r; if (tclass->classid != TC_H_UNSPEC) { r = sd_rtnl_message_set_tclass_handle(req, tclass->classid); if (r < 0) - return log_link_error_errno(link, r, "Could not set tcm_handle message: %m"); + return r; } r = sd_netlink_message_append_string(req, TCA_KIND, TCLASS_VTABLE(tclass)->tca_kind); if (r < 0) - return log_link_error_errno(link, r, "Could not append TCA_KIND attribute: %m"); + return r; if (TCLASS_VTABLE(tclass)->fill_message) { r = TCLASS_VTABLE(tclass)->fill_message(link, tclass, req); if (r < 0) - return log_link_error_errno(link, r, "Could not fill netlink message: %m"); + return r; } r = netlink_call_async(link->manager->rtnl, NULL, req, tclass_handler, link_netlink_destroy_callback, link); if (r < 0) - return log_link_error_errno(link, r, "Could not send rtnetlink message: %m"); + return log_link_debug_errno(link, r, "Could not send netlink message: %m"); link_ref(link); link->tc_messages++; -- cgit v1.2.3 From 7bd36e490f6943030b5accbb3695c3676c031763 Mon Sep 17 00:00:00 2001 From: Zbigniew Jędrzejewski-Szmek Date: Wed, 5 Jan 2022 11:20:12 +0100 Subject: network: move logging from routing_policy_rule_set_netlink_message() to the callers --- src/network/networkd-routing-policy-rule.c | 56 +++++++++++++++--------------- 1 file changed, 28 insertions(+), 28 deletions(-) diff --git a/src/network/networkd-routing-policy-rule.c b/src/network/networkd-routing-policy-rule.c index 90086f35a7..a2e72a7d7c 100644 --- a/src/network/networkd-routing-policy-rule.c +++ b/src/network/networkd-routing-policy-rule.c @@ -449,116 +449,116 @@ static int routing_policy_rule_set_netlink_message(const RoutingPolicyRule *rule if (rule->from_prefixlen > 0) { r = netlink_message_append_in_addr_union(m, FRA_SRC, rule->family, &rule->from); if (r < 0) - return log_link_error_errno(link, r, "Could not append FRA_SRC attribute: %m"); + return r; r = sd_rtnl_message_routing_policy_rule_set_fib_src_prefixlen(m, rule->from_prefixlen); if (r < 0) - return log_link_error_errno(link, r, "Could not set source prefix length: %m"); + return r; } if (rule->to_prefixlen > 0) { r = netlink_message_append_in_addr_union(m, FRA_DST, rule->family, &rule->to); if (r < 0) - return log_link_error_errno(link, r, "Could not append FRA_DST attribute: %m"); + return r; r = sd_rtnl_message_routing_policy_rule_set_fib_dst_prefixlen(m, rule->to_prefixlen); if (r < 0) - return log_link_error_errno(link, r, "Could not set destination prefix length: %m"); + return r; } r = sd_netlink_message_append_u32(m, FRA_PRIORITY, rule->priority); if (r < 0) - return log_link_error_errno(link, r, "Could not append FRA_PRIORITY attribute: %m"); + return r; if (rule->tos > 0) { r = sd_rtnl_message_routing_policy_rule_set_tos(m, rule->tos); if (r < 0) - return log_link_error_errno(link, r, "Could not set IP rule TOS: %m"); + return r; } if (rule->table < 256) { r = sd_rtnl_message_routing_policy_rule_set_table(m, rule->table); if (r < 0) - return log_link_error_errno(link, r, "Could not set IP rule table: %m"); + return r; } else { r = sd_rtnl_message_routing_policy_rule_set_table(m, RT_TABLE_UNSPEC); if (r < 0) - return log_link_error_errno(link, r, "Could not set IP rule table: %m"); + return r; r = sd_netlink_message_append_u32(m, FRA_TABLE, rule->table); if (r < 0) - return log_link_error_errno(link, r, "Could not append FRA_TABLE attribute: %m"); + return r; } if (rule->fwmark > 0) { r = sd_netlink_message_append_u32(m, FRA_FWMARK, rule->fwmark); if (r < 0) - return log_link_error_errno(link, r, "Could not append FRA_FWMARK attribute: %m"); + return r; r = sd_netlink_message_append_u32(m, FRA_FWMASK, rule->fwmask); if (r < 0) - return log_link_error_errno(link, r, "Could not append FRA_FWMASK attribute: %m"); + return r; } if (rule->iif) { r = sd_netlink_message_append_string(m, FRA_IIFNAME, rule->iif); if (r < 0) - return log_link_error_errno(link, r, "Could not append FRA_IIFNAME attribute: %m"); + return r; } if (rule->oif) { r = sd_netlink_message_append_string(m, FRA_OIFNAME, rule->oif); if (r < 0) - return log_link_error_errno(link, r, "Could not append FRA_OIFNAME attribute: %m"); + return r; } r = sd_netlink_message_append_u8(m, FRA_IP_PROTO, rule->ipproto); if (r < 0) - return log_link_error_errno(link, r, "Could not append FRA_IP_PROTO attribute: %m"); + return r; r = sd_netlink_message_append_u8(m, FRA_PROTOCOL, rule->protocol); if (r < 0) - return log_link_error_errno(link, r, "Could not append FRA_PROTOCOL attribute: %m"); + return r; if (rule->sport.start != 0 || rule->sport.end != 0) { r = sd_netlink_message_append_data(m, FRA_SPORT_RANGE, &rule->sport, sizeof(rule->sport)); if (r < 0) - return log_link_error_errno(link, r, "Could not append FRA_SPORT_RANGE attribute: %m"); + return r; } if (rule->dport.start != 0 || rule->dport.end != 0) { r = sd_netlink_message_append_data(m, FRA_DPORT_RANGE, &rule->dport, sizeof(rule->dport)); if (r < 0) - return log_link_error_errno(link, r, "Could not append FRA_DPORT_RANGE attribute: %m"); + return r; } if (rule->uid_range.start != UID_INVALID && rule->uid_range.end != UID_INVALID) { r = sd_netlink_message_append_data(m, FRA_UID_RANGE, &rule->uid_range, sizeof(rule->uid_range)); if (r < 0) - return log_link_error_errno(link, r, "Could not append FRA_UID_RANGE attribute: %m"); + return r; } if (rule->invert_rule) { r = sd_rtnl_message_routing_policy_rule_set_flags(m, FIB_RULE_INVERT); if (r < 0) - return log_link_error_errno(link, r, "Could not append FIB_RULE_INVERT attribute: %m"); + return r; } if (rule->suppress_prefixlen >= 0) { r = sd_netlink_message_append_u32(m, FRA_SUPPRESS_PREFIXLEN, (uint32_t) rule->suppress_prefixlen); if (r < 0) - return log_link_error_errno(link, r, "Could not append FRA_SUPPRESS_PREFIXLEN attribute: %m"); + return r; } if (rule->suppress_ifgroup >= 0) { r = sd_netlink_message_append_u32(m, FRA_SUPPRESS_IFGROUP, (uint32_t) rule->suppress_ifgroup); if (r < 0) - return log_link_error_errno(link, r, "Could not append FRA_SUPPRESS_IFGROUP attribute: %m"); + return r; } r = sd_rtnl_message_routing_policy_rule_set_fib_type(m, rule->type); if (r < 0) - return log_link_error_errno(link, r, "Could not append FIB rule type attribute: %m"); + return r; return 0; } @@ -588,17 +588,17 @@ static int routing_policy_rule_remove(RoutingPolicyRule *rule) { r = sd_rtnl_message_new_routing_policy_rule(rule->manager->rtnl, &m, RTM_DELRULE, rule->family); if (r < 0) - return log_error_errno(r, "Could not allocate RTM_DELRULE message: %m"); + return log_error_errno(r, "Could not allocate netlink message: %m"); r = routing_policy_rule_set_netlink_message(rule, m, NULL); if (r < 0) - return r; + return log_error_errno(r, "Could not create netlink message: %m"); r = netlink_call_async(rule->manager->rtnl, NULL, m, routing_policy_rule_remove_handler, NULL, NULL); if (r < 0) - return log_error_errno(r, "Could not send rtnetlink message: %m"); + return log_error_errno(r, "Could not send netlink message: %m"); routing_policy_rule_enter_removing(rule); return 0; @@ -624,16 +624,16 @@ static int routing_policy_rule_configure( r = sd_rtnl_message_new_routing_policy_rule(link->manager->rtnl, &m, RTM_NEWRULE, rule->family); if (r < 0) - return log_link_error_errno(link, r, "Could not allocate RTM_NEWRULE message: %m"); + return log_link_error_errno(link, r, "Could not allocate netlink message: %m"); r = routing_policy_rule_set_netlink_message(rule, m, link); if (r < 0) - return r; + return log_error_errno(r, "Could not create netlink message: %m"); r = netlink_call_async(link->manager->rtnl, NULL, m, callback, link_netlink_destroy_callback, link); if (r < 0) - return log_link_error_errno(link, r, "Could not send rtnetlink message: %m"); + return log_link_error_errno(link, r, "Could not send netlink message: %m"); link_ref(link); -- cgit v1.2.3 From 3bcb5dc1a57a92e4d753f4b76fcde044c19fdedc Mon Sep 17 00:00:00 2001 From: Zbigniew Jędrzejewski-Szmek Date: Wed, 5 Jan 2022 11:34:55 +0100 Subject: network: move logging from route_set_netlink_message() to the callers Overall size change for the whole series: $ size build/systemd-networkd{.0,} text data bss dec hex filename 1878634 394016 36 2272686 22adae build/systemd-networkd.0 1755066 394080 36 2149182 20cb3e build/systemd-networkd i.e. 121 kb. --- src/network/networkd-route.c | 42 +++++++++++++++++++++--------------------- 1 file changed, 21 insertions(+), 21 deletions(-) diff --git a/src/network/networkd-route.c b/src/network/networkd-route.c index ee7a535075..f0697a66af 100644 --- a/src/network/networkd-route.c +++ b/src/network/networkd-route.c @@ -617,7 +617,7 @@ static int route_set_netlink_message(const Route *route, sd_netlink_message *req if (route->gw_family == route->family) { r = netlink_message_append_in_addr_union(req, RTA_GATEWAY, route->gw_family, &route->gw); if (r < 0) - return log_link_error_errno(link, r, "Could not append RTA_GATEWAY attribute: %m"); + return r; } else { RouteVia rtvia = { .family = route->gw_family, @@ -626,57 +626,57 @@ static int route_set_netlink_message(const Route *route, sd_netlink_message *req r = sd_netlink_message_append_data(req, RTA_VIA, &rtvia, sizeof(rtvia)); if (r < 0) - return log_link_error_errno(link, r, "Could not append RTA_VIA attribute: %m"); + return r; } } if (route->dst_prefixlen > 0) { r = netlink_message_append_in_addr_union(req, RTA_DST, route->family, &route->dst); if (r < 0) - return log_link_error_errno(link, r, "Could not append RTA_DST attribute: %m"); + return r; r = sd_rtnl_message_route_set_dst_prefixlen(req, route->dst_prefixlen); if (r < 0) - return log_link_error_errno(link, r, "Could not set destination prefix length: %m"); + return r; } if (route->src_prefixlen > 0) { r = netlink_message_append_in_addr_union(req, RTA_SRC, route->family, &route->src); if (r < 0) - return log_link_error_errno(link, r, "Could not append RTA_SRC attribute: %m"); + return r; r = sd_rtnl_message_route_set_src_prefixlen(req, route->src_prefixlen); if (r < 0) - return log_link_error_errno(link, r, "Could not set source prefix length: %m"); + return r; } if (in_addr_is_set(route->family, &route->prefsrc)) { r = netlink_message_append_in_addr_union(req, RTA_PREFSRC, route->family, &route->prefsrc); if (r < 0) - return log_link_error_errno(link, r, "Could not append RTA_PREFSRC attribute: %m"); + return r; } r = sd_rtnl_message_route_set_scope(req, route->scope); if (r < 0) - return log_link_error_errno(link, r, "Could not set scope: %m"); + return r; r = sd_rtnl_message_route_set_flags(req, route->flags & RTNH_F_ONLINK); if (r < 0) - return log_link_error_errno(link, r, "Could not set flags: %m"); + return r; if (route->table < 256) { r = sd_rtnl_message_route_set_table(req, route->table); if (r < 0) - return log_link_error_errno(link, r, "Could not set route table: %m"); + return r; } else { r = sd_rtnl_message_route_set_table(req, RT_TABLE_UNSPEC); if (r < 0) - return log_link_error_errno(link, r, "Could not set route table: %m"); + return r; /* Table attribute to allow more than 256. */ r = sd_netlink_message_append_u32(req, RTA_TABLE, route->table); if (r < 0) - return log_link_error_errno(link, r, "Could not append RTA_TABLE attribute: %m"); + return r; } if (!route_type_is_reject(route) && @@ -686,22 +686,22 @@ static int route_set_netlink_message(const Route *route, sd_netlink_message *req r = sd_netlink_message_append_u32(req, RTA_OIF, link->ifindex); if (r < 0) - return log_link_error_errno(link, r, "Could not append RTA_OIF attribute: %m"); + return r; } if (route->nexthop_id > 0) { r = sd_netlink_message_append_u32(req, RTA_NH_ID, route->nexthop_id); if (r < 0) - return log_link_error_errno(link, r, "Could not append RTA_NH_ID attribute: %m"); + return r; } r = sd_netlink_message_append_u8(req, RTA_PREF, route->pref); if (r < 0) - return log_link_error_errno(link, r, "Could not append RTA_PREF attribute: %m"); + return r; r = sd_netlink_message_append_u32(req, RTA_PRIORITY, route->priority); if (r < 0) - return log_link_error_errno(link, r, "Could not append RTA_PRIORITY attribute: %m"); + return r; return 0; } @@ -743,7 +743,7 @@ int route_remove(Route *route) { RTM_DELROUTE, route->family, route->protocol); if (r < 0) - return log_link_error_errno(link, r, "Could not create RTM_DELROUTE message: %m"); + return log_link_error_errno(link, r, "Could not create netlink message: %m"); if (route->family == AF_INET && route->nexthop_id > 0 && route->type == RTN_BLACKHOLE) /* When IPv4 route has nexthop id and the nexthop type is blackhole, even though kernel @@ -762,12 +762,12 @@ int route_remove(Route *route) { r = route_set_netlink_message(route, req, link); if (r < 0) - return r; + return log_error_errno(r, "Could not fill netlink message: %m"); r = netlink_call_async(manager->rtnl, NULL, req, route_remove_handler, link ? link_netlink_destroy_callback : NULL, link); if (r < 0) - return log_link_error_errno(link, r, "Could not send rtnetlink message: %m"); + return log_link_error_errno(link, r, "Could not send netlink message: %m"); link_ref(link); @@ -1179,7 +1179,7 @@ static int route_configure( RTM_NEWROUTE, route->family, route->protocol); if (r < 0) - return log_link_error_errno(link, r, "Could not create RTM_NEWROUTE message: %m"); + return log_link_error_errno(link, r, "Could not create netlink message: %m"); r = sd_rtnl_message_route_set_type(req, route->type); if (r < 0) @@ -1187,7 +1187,7 @@ static int route_configure( r = route_set_netlink_message(route, req, link); if (r < 0) - return r; + return log_error_errno(r, "Could not fill netlink message: %m"); if (route->lifetime_usec != USEC_INFINITY) { r = sd_netlink_message_append_u32(req, RTA_EXPIRES, -- cgit v1.2.3 From 4a55ce8f83b73d2c6db0db0d1a335ee5aa388a9b Mon Sep 17 00:00:00 2001 From: Zbigniew Jędrzejewski-Szmek Date: Tue, 4 Jan 2022 12:02:11 +0100 Subject: tests: log_tests_skipped() already appends ", skipping tests" We would say: test-bpf-lsm: Can't use mlock(), skipping., skipping tests. --- src/libsystemd/sd-device/test-sd-device-monitor.c | 2 +- src/test/test-bpf-foreign-programs.c | 4 ++-- src/test/test-bpf-lsm.c | 2 +- src/test/test-socket-bind.c | 6 +++--- 4 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/libsystemd/sd-device/test-sd-device-monitor.c b/src/libsystemd/sd-device/test-sd-device-monitor.c index ae973cdba3..e6b289e6e4 100644 --- a/src/libsystemd/sd-device/test-sd-device-monitor.c +++ b/src/libsystemd/sd-device/test-sd-device-monitor.c @@ -302,7 +302,7 @@ int main(int argc, char *argv[]) { r = test_receive_device_fail(); if (r < 0) { assert_se(r == -EPERM && detect_container() > 0); - return log_tests_skipped("Running in container? Skipping remaining tests"); + return log_tests_skipped("Running in container"); } assert_se(sd_device_new_from_syspath(&loopback, "/sys/class/net/lo") >= 0); diff --git a/src/test/test-bpf-foreign-programs.c b/src/test/test-bpf-foreign-programs.c index 1765dc7a9b..8c3f76e9ec 100644 --- a/src/test/test-bpf-foreign-programs.c +++ b/src/test/test-bpf-foreign-programs.c @@ -289,11 +289,11 @@ int main(int argc, char *argv[]) { (void) setrlimit_closest(RLIMIT_MEMLOCK, &rl); if (!can_memlock()) - return log_tests_skipped("Can't use mlock(), skipping."); + return log_tests_skipped("Can't use mlock()"); r = cg_all_unified(); if (r <= 0) - return log_tests_skipped("Unified hierarchy is required, skipping."); + return log_tests_skipped("Unified hierarchy is required"); r = enter_cgroup_subroot(NULL); if (r == -ENOMEDIUM) diff --git a/src/test/test-bpf-lsm.c b/src/test/test-bpf-lsm.c index 3022767295..60d1789a0a 100644 --- a/src/test/test-bpf-lsm.c +++ b/src/test/test-bpf-lsm.c @@ -77,7 +77,7 @@ int main(int argc, char *argv[]) { (void) setrlimit_closest(RLIMIT_MEMLOCK, &rl); if (!can_memlock()) - return log_tests_skipped("Can't use mlock(), skipping."); + return log_tests_skipped("Can't use mlock()"); r = lsm_bpf_supported(); if (r <= 0) diff --git a/src/test/test-socket-bind.c b/src/test/test-socket-bind.c index ecad86baeb..f4197aaf3c 100644 --- a/src/test/test-socket-bind.c +++ b/src/test/test-socket-bind.c @@ -120,14 +120,14 @@ int main(int argc, char *argv[]) { (void) setrlimit_closest(RLIMIT_MEMLOCK, &rl); if (!can_memlock()) - return log_tests_skipped("Can't use mlock(), skipping."); + return log_tests_skipped("Can't use mlock()"); r = bpf_socket_bind_supported(); if (r <= 0) - return log_tests_skipped("socket-bind is not supported, skipping."); + return log_tests_skipped("socket-bind is not supported"); if (find_netcat_executable(&netcat_path) != 0) - return log_tests_skipped("Can not find netcat executable, skipping."); + return log_tests_skipped("Can not find netcat executable"); r = enter_cgroup_subroot(NULL); if (r == -ENOMEDIUM) -- cgit v1.2.3