"Failed to parse EtherType=");
static int netdev_bare_udp_fill_message_create(NetDev *netdev, Link *link, sd_netlink_message *m) {
- assert(netdev);
assert(m);
- BareUDP *u = ASSERT_PTR(BAREUDP(netdev));
+ BareUDP *u = BAREUDP(netdev);
int r;
r = sd_netlink_message_append_u16(m, IFLA_BAREUDP_ETHERTYPE, htobe16(u->iftype));
}
static int netdev_bare_udp_verify(NetDev *netdev, const char *filename) {
- assert(netdev);
assert(filename);
- BareUDP *u = ASSERT_PTR(BAREUDP(netdev));
+ BareUDP *u = BAREUDP(netdev);
if (u->dest_port == 0)
return log_netdev_warning_errno(netdev, SYNTHETIC_ERRNO(EINVAL),
}
static void bare_udp_init(NetDev *netdev) {
- assert(netdev);
-
- BareUDP *u = ASSERT_PTR(BAREUDP(netdev));
+ BareUDP *u = BAREUDP(netdev);
u->iftype = _BARE_UDP_PROTOCOL_INVALID;
}
#include "string-util.h"
static void batadv_init(NetDev *n) {
- BatmanAdvanced *b;
-
- b = BATADV(n);
+ BatmanAdvanced *b = BATADV(n);
/* Set defaults */
b->aggregation = true;
}
static int netdev_batadv_post_create_message(NetDev *netdev, sd_netlink_message *message) {
- BatmanAdvanced *b;
+ BatmanAdvanced *b = BATADV(netdev);
int r;
- assert_se(b = BATADV(netdev));
-
r = sd_netlink_message_append_u32(message, BATADV_ATTR_MESH_IFINDEX, netdev->ifindex);
if (r < 0)
return r;
}
static int netdev_batadv_fill_message_create(NetDev *netdev, Link *link, sd_netlink_message *m) {
- BatmanAdvanced *b;
- int r;
-
- assert(netdev);
assert(m);
- b = BATADV(netdev);
- assert(b);
+ BatmanAdvanced *b = BATADV(netdev);
+ int r;
r = sd_netlink_message_append_string(m, IFLA_BATADV_ALGO_NAME, batadv_routing_algorithm_kernel_to_string(b->routing_algorithm));
if (r < 0)
DEFINE_CONFIG_PARSE_ENUM(config_parse_bond_primary_reselect, bond_primary_reselect, BondPrimaryReselect, "Failed to parse bond primary reselect");
static int netdev_bond_fill_message_create(NetDev *netdev, Link *link, sd_netlink_message *m) {
- assert(netdev);
assert(!link);
assert(m);
- Bond *b = ASSERT_PTR(BOND(netdev));
+ Bond *b = BOND(netdev);
int r;
if (b->mode != _NETDEV_BOND_MODE_INVALID) {
assert(rvalue);
assert(data);
- Bond *b = ASSERT_PTR(BOND(userdata));
+ Bond *b = BOND(userdata);
int r;
if (isempty(rvalue)) {
}
static void bond_done(NetDev *netdev) {
- assert(netdev);
-
- Bond *b = ASSERT_PTR(BOND(netdev));
+ Bond *b = BOND(netdev);
ordered_set_free(b->arp_ip_targets);
}
static void bond_init(NetDev *netdev) {
- assert(netdev);
-
- Bond *b = ASSERT_PTR(BOND(netdev));
+ Bond *b = BOND(netdev);
b->mode = _NETDEV_BOND_MODE_INVALID;
b->xmit_hash_policy = _NETDEV_BOND_XMIT_HASH_POLICY_INVALID;
}
static int netdev_bridge_post_create_message(NetDev *netdev, sd_netlink_message *req) {
- assert(netdev);
-
- Bridge *b = ASSERT_PTR(BRIDGE(netdev));
+ Bridge *b = BRIDGE(netdev);
int r;
r = sd_netlink_message_open_container(req, IFLA_LINKINFO);
}
static void bridge_init(NetDev *netdev) {
- Bridge *b = ASSERT_PTR(BRIDGE(netdev));
+ Bridge *b = BRIDGE(netdev);
b->mcast_querier = -1;
b->mcast_snooping = -1;
"Failed to parse Encapsulation=");
static int netdev_fill_fou_tunnel_message(NetDev *netdev, sd_netlink_message *m) {
- assert(netdev);
-
- FouTunnel *t = ASSERT_PTR(FOU(netdev));
+ FouTunnel *t = FOU(netdev);
uint8_t encap_type;
int r;
_cleanup_(sd_netlink_message_unrefp) sd_netlink_message *m = NULL;
int r;
- assert(netdev);
assert(FOU(netdev));
r = netdev_create_fou_tunnel_message(netdev, &m);
}
static int netdev_fou_tunnel_verify(NetDev *netdev, const char *filename) {
- assert(netdev);
assert(filename);
- FouTunnel *t = ASSERT_PTR(FOU(netdev));
+ FouTunnel *t = FOU(netdev);
switch (t->fou_encap_type) {
case NETDEV_FOO_OVER_UDP_ENCAP_DIRECT:
}
static void fou_tunnel_init(NetDev *netdev) {
- FouTunnel *t;
-
- assert(netdev);
-
- t = FOU(netdev);
-
- assert(t);
+ FouTunnel *t = FOU(netdev);
t->fou_encap_type = NETDEV_FOO_OVER_UDP_ENCAP_DIRECT;
}
DEFINE_CONFIG_PARSE_ENUM(config_parse_geneve_df, geneve_df, GeneveDF, "Failed to parse Geneve IPDoNotFragment= setting");
static int netdev_geneve_fill_message_create(NetDev *netdev, Link *link, sd_netlink_message *m) {
- assert(netdev);
assert(m);
- Geneve *v = ASSERT_PTR(GENEVE(netdev));
+ Geneve *v = GENEVE(netdev);
int r;
if (v->id <= GENEVE_VID_MAX) {
}
static int netdev_geneve_verify(NetDev *netdev, const char *filename) {
- assert(netdev);
assert(filename);
- Geneve *v = ASSERT_PTR(GENEVE(netdev));
+ Geneve *v = GENEVE(netdev);
if (v->id > GENEVE_VID_MAX)
return log_netdev_warning_errno(netdev, SYNTHETIC_ERRNO(EINVAL),
}
static void geneve_init(NetDev *netdev) {
- assert(netdev);
-
- Geneve *v = ASSERT_PTR(GENEVE(netdev));
+ Geneve *v = GENEVE(netdev);
v->id = GENEVE_VID_MAX + 1;
v->geneve_df = _NETDEV_GENEVE_DF_INVALID;
assert_cc((int) IP_OVER_INFINIBAND_MODE_CONNECTED == (int) IPOIB_MODE_CONNECTED);
static void netdev_ipoib_init(NetDev *netdev) {
- IPoIB *ipoib;
-
- assert(netdev);
-
- ipoib = IPOIB(netdev);
-
- assert(ipoib);
+ IPoIB *ipoib = IPOIB(netdev);
ipoib->mode = _IP_OVER_INFINIBAND_MODE_INVALID;
ipoib->umcast = -1;
}
static int netdev_ipoib_fill_message_create(NetDev *netdev, Link *link, sd_netlink_message *m) {
- IPoIB *ipoib;
- int r;
-
- assert(netdev);
assert(link);
assert(m);
- ipoib = IPOIB(netdev);
-
- assert(ipoib);
+ IPoIB *ipoib = IPOIB(netdev);
+ int r;
if (ipoib->pkey > 0) {
r = sd_netlink_message_append_u16(m, IFLA_IPOIB_PKEY, ipoib->pkey);
DEFINE_CONFIG_PARSE_ENUM(config_parse_ipvlan_flags, ipvlan_flags, IPVlanFlags, "Failed to parse ipvlan flags");
static int netdev_ipvlan_fill_message_create(NetDev *netdev, Link *link, sd_netlink_message *req) {
- IPVlan *m;
- int r;
-
assert(netdev);
assert(link);
assert(netdev->ifname);
- if (netdev->kind == NETDEV_KIND_IPVLAN)
- m = IPVLAN(netdev);
- else
- m = IPVTAP(netdev);
-
- assert(m);
+ IPVlan *m = netdev->kind == NETDEV_KIND_IPVLAN ? IPVLAN(netdev) : IPVTAP(netdev);
+ int r;
if (m->mode != _NETDEV_IPVLAN_MODE_INVALID) {
r = sd_netlink_message_append_u16(req, IFLA_IPVLAN_MODE, m->mode);
return 0;
}
-static void ipvlan_init(NetDev *n) {
- IPVlan *m;
-
- assert(n);
-
- if (n->kind == NETDEV_KIND_IPVLAN)
- m = IPVLAN(n);
- else
- m = IPVTAP(n);
-
- assert(m);
+static void ipvlan_init(NetDev *netdev) {
+ IPVlan *m = ASSERT_PTR(netdev)->kind == NETDEV_KIND_IPVLAN ? IPVLAN(netdev) : IPVTAP(netdev);
m->mode = _NETDEV_IPVLAN_MODE_INVALID;
m->flags = _NETDEV_IPVLAN_FLAGS_INVALID;
};
IPVlanMode link_get_ipvlan_mode(Link *link) {
- IPVlan *ipvlan;
-
assert(link);
- ipvlan = IPVLAN(link->netdev);
- if (!ipvlan)
+ if (!link->netdev || link->netdev->kind != NETDEV_KIND_IPVLAN)
return _NETDEV_IPVLAN_MODE_INVALID;
- return ipvlan->mode;
+ return IPVLAN(link->netdev)->mode;
}
}
static int netdev_l2tp_create_message_tunnel(NetDev *netdev, union in_addr_union *local_address, sd_netlink_message **ret) {
+ assert(local_address);
+
_cleanup_(sd_netlink_message_unrefp) sd_netlink_message *m = NULL;
uint16_t encap_type;
- L2tpTunnel *t;
+ L2tpTunnel *t = L2TP(netdev);
int r;
- assert(netdev);
- assert(local_address);
- 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 r;
static int l2tp_get_local_address(NetDev *netdev, union in_addr_union *ret) {
Link *link = NULL;
- L2tpTunnel *t;
+ L2tpTunnel *t = L2TP(netdev);
Address *a = NULL;
int r;
- assert(netdev);
assert(netdev->manager);
- assert_se(t = L2TP(netdev));
if (t->local_ifname) {
r = link_get_by_name(netdev->manager, t->local_ifname, &link);
static int l2tp_create_tunnel_handler(sd_netlink *rtnl, sd_netlink_message *m, NetDev *netdev) {
L2tpSession *session;
- L2tpTunnel *t;
+ L2tpTunnel *t = L2TP(netdev);
int r;
- assert(netdev);
assert(netdev->state != _NETDEV_STATE_INVALID);
- t = L2TP(netdev);
-
- assert(t);
-
r = sd_netlink_message_get_errno(m);
if (r == -EEXIST)
log_netdev_info(netdev, "netdev exists, using existing without changing its parameters");
static int l2tp_create_tunnel(NetDev *netdev) {
_cleanup_(sd_netlink_message_unrefp) sd_netlink_message *m = NULL;
union in_addr_union local_address;
- L2tpTunnel *t;
+ L2tpTunnel *t = L2TP(netdev);
int r;
- assert(netdev);
- assert_se(t = L2TP(netdev));
-
r = l2tp_get_local_address(netdev, &local_address);
if (r < 0)
return log_netdev_error_errno(netdev, r, "Could not find local address.");
}
static void l2tp_tunnel_init(NetDev *netdev) {
- L2tpTunnel *t;
-
- assert(netdev);
-
- t = L2TP(netdev);
-
- assert(t);
+ L2tpTunnel *t = L2TP(netdev);
t->l2tp_encap_type = NETDEV_L2TP_ENCAPTYPE_UDP;
t->udp6_csum_rx = true;
}
static int netdev_l2tp_tunnel_verify(NetDev *netdev, const char *filename) {
- L2tpTunnel *t;
- L2tpSession *session;
-
- assert(netdev);
assert(filename);
- t = L2TP(netdev);
-
- assert(t);
+ L2tpTunnel *t = L2TP(netdev);
+ L2tpSession *session;
if (!IN_SET(t->family, AF_INET, AF_INET6))
return log_netdev_error_errno(netdev, SYNTHETIC_ERRNO(EINVAL),
}
static void l2tp_tunnel_done(NetDev *netdev) {
- L2tpTunnel *t;
-
- assert(netdev);
-
- t = L2TP(netdev);
-
- assert(t);
+ L2tpTunnel *t = L2TP(netdev);
ordered_hashmap_free_with_destructor(t->sessions_by_section, l2tp_session_free);
free(t->local_ifname);
}
static int netdev_macsec_configure(NetDev *netdev, Link *link) {
- assert(netdev);
-
- MACsec *s = ASSERT_PTR(MACSEC(netdev));
+ MACsec *s = MACSEC(netdev);
TransmitAssociation *a;
ReceiveChannel *c;
int r;
}
static int netdev_macsec_fill_message_create(NetDev *netdev, Link *link, sd_netlink_message *m) {
- assert(netdev);
assert(m);
- MACsec *v = ASSERT_PTR(MACSEC(netdev));
+ MACsec *v = MACSEC(netdev);
int r;
if (v->port > 0) {
}
static int netdev_macsec_verify(NetDev *netdev, const char *filename) {
+ assert(filename);
+
MACsec *v = MACSEC(netdev);
TransmitAssociation *a;
ReceiveAssociation *n;
bool use_for_encoding;
int r;
- assert(netdev);
- assert(v);
- assert(filename);
-
ORDERED_HASHMAP_FOREACH(c, v->receive_channels_by_section) {
r = macsec_receive_channel_verify(c);
if (r < 0)
}
static void macsec_init(NetDev *netdev) {
- MACsec *v;
-
- assert(netdev);
-
- v = MACSEC(netdev);
-
- assert(v);
+ MACsec *v = MACSEC(netdev);
v->encrypt = -1;
}
static void macsec_done(NetDev *netdev) {
- MACsec *t;
-
- assert(netdev);
-
- t = MACSEC(netdev);
-
- assert(t);
+ MACsec *v = MACSEC(netdev);
- ordered_hashmap_free_with_destructor(t->receive_channels, macsec_receive_channel_free);
- ordered_hashmap_free_with_destructor(t->receive_channels_by_section, macsec_receive_channel_free);
- ordered_hashmap_free_with_destructor(t->transmit_associations_by_section, macsec_transmit_association_free);
- ordered_hashmap_free_with_destructor(t->receive_associations_by_section, macsec_receive_association_free);
+ ordered_hashmap_free_with_destructor(v->receive_channels, macsec_receive_channel_free);
+ ordered_hashmap_free_with_destructor(v->receive_channels_by_section, macsec_receive_channel_free);
+ ordered_hashmap_free_with_destructor(v->transmit_associations_by_section, macsec_transmit_association_free);
+ ordered_hashmap_free_with_destructor(v->receive_associations_by_section, macsec_receive_association_free);
}
const NetDevVTable macsec_vtable = {
DEFINE_CONFIG_PARSE_ENUM(config_parse_macvlan_mode, macvlan_mode, MacVlanMode, "Failed to parse macvlan mode");
static int netdev_macvlan_fill_message_create(NetDev *netdev, Link *link, sd_netlink_message *req) {
- MacVlan *m;
- int r;
-
assert(netdev);
- assert(link);
assert(netdev->ifname);
+ assert(link);
assert(link->network);
- if (netdev->kind == NETDEV_KIND_MACVLAN)
- m = MACVLAN(netdev);
- else
- m = MACVTAP(netdev);
-
- assert(m);
+ MacVlan *m = netdev->kind == NETDEV_KIND_MACVLAN ? MACVLAN(netdev) : MACVTAP(netdev);
+ int r;
if (m->mode == NETDEV_MACVLAN_MODE_SOURCE && !set_isempty(m->match_source_mac)) {
const struct ether_addr *mac_addr;
&m->bc_queue_length);
}
-static void macvlan_done(NetDev *n) {
- MacVlan *m;
-
- assert(n);
-
- if (n->kind == NETDEV_KIND_MACVLAN)
- m = MACVLAN(n);
- else
- m = MACVTAP(n);
-
- assert(m);
+static void macvlan_done(NetDev *netdev) {
+ MacVlan *m = ASSERT_PTR(netdev)->kind == NETDEV_KIND_MACVLAN ? MACVLAN(netdev) : MACVTAP(netdev);
set_free(m->match_source_mac);
}
-static void macvlan_init(NetDev *n) {
- MacVlan *m;
-
- assert(n);
-
- if (n->kind == NETDEV_KIND_MACVLAN)
- m = MACVLAN(n);
- else
- m = MACVTAP(n);
-
- assert(m);
+static void macvlan_init(NetDev *netdev) {
+ MacVlan *m = ASSERT_PTR(netdev)->kind == NETDEV_KIND_MACVLAN ? MACVLAN(netdev) : MACVTAP(netdev);
m->mode = _NETDEV_MACVLAN_MODE_INVALID;
m->bc_queue_length = UINT32_MAX;
#define NETDEV_VTABLE(n) ((n)->kind != _NETDEV_KIND_INVALID ? netdev_vtable[(n)->kind] : NULL)
/* For casting a netdev into the various netdev kinds */
-#define DEFINE_NETDEV_CAST(UPPERCASE, MixedCase) \
- static inline MixedCase* UPPERCASE(NetDev *n) { \
- if (_unlikely_(!n || \
- n->kind != NETDEV_KIND_##UPPERCASE) || \
- n->state == _NETDEV_STATE_INVALID) \
- return NULL; \
- \
- return (MixedCase*) n; \
+#define DEFINE_NETDEV_CAST(UPPERCASE, MixedCase) \
+ static inline MixedCase* UPPERCASE(NetDev *n) { \
+ assert(n); \
+ assert(n->kind == NETDEV_KIND_##UPPERCASE); \
+ assert(n->state < _NETDEV_STATE_MAX); \
+ \
+ return (MixedCase*) n; \
}
/* For casting the various netdev kinds into a netdev */
}
static int netdev_ipip_sit_fill_message_create(NetDev *netdev, Link *link, sd_netlink_message *m) {
- union in_addr_union local;
- Tunnel *t;
- int r;
-
- assert(netdev);
assert(m);
- if (netdev->kind == NETDEV_KIND_IPIP)
- t = ASSERT_PTR(IPIP(netdev));
- else
- t = ASSERT_PTR(SIT(netdev));
+ union in_addr_union local;
+ Tunnel *t = ASSERT_PTR(netdev)->kind == NETDEV_KIND_IPIP ? IPIP(netdev) : SIT(netdev);
+ int r;
if (t->external) {
r = sd_netlink_message_append_flag(m, IFLA_IPTUN_COLLECT_METADATA);
switch (netdev->kind) {
case NETDEV_KIND_GRE:
- t = ASSERT_PTR(GRE(netdev));
+ t = GRE(netdev);
break;
case NETDEV_KIND_ERSPAN:
- t = ASSERT_PTR(ERSPAN(netdev));
+ t = ERSPAN(netdev);
break;
case NETDEV_KIND_GRETAP:
- t = ASSERT_PTR(GRETAP(netdev));
+ t = GRETAP(netdev);
break;
default:
assert_not_reached();
assert(m);
if (netdev->kind == NETDEV_KIND_IP6GRE)
- t = ASSERT_PTR(IP6GRE(netdev));
+ t = IP6GRE(netdev);
else
- t = ASSERT_PTR(IP6GRETAP(netdev));
+ t = IP6GRETAP(netdev);
if (t->external) {
r = sd_netlink_message_append_flag(m, IFLA_GRE_COLLECT_METADATA);
}
static int netdev_vti_fill_message_create(NetDev *netdev, Link *link, sd_netlink_message *m) {
- union in_addr_union local;
- uint32_t ikey, okey;
- Tunnel *t;
- int r;
-
assert(netdev);
assert(m);
- if (netdev->kind == NETDEV_KIND_VTI)
- t = ASSERT_PTR(VTI(netdev));
- else
- t = ASSERT_PTR(VTI6(netdev));
+ union in_addr_union local;
+ uint32_t ikey, okey;
+ Tunnel *t = netdev->kind == NETDEV_KIND_VTI ? VTI(netdev) : VTI6(netdev);
+ int r;
if (link || t->assign_to_loopback) {
r = sd_netlink_message_append_u32(m, IFLA_VTI_LINK, link ? link->ifindex : LOOPBACK_IFINDEX);
union in_addr_union local;
uint8_t proto;
- Tunnel *t = ASSERT_PTR(IP6TNL(netdev));
+ Tunnel *t = IP6TNL(netdev);
int r;
switch (t->ip6tnl_mode) {
#include "veth.h"
static int netdev_veth_fill_message_create(NetDev *netdev, Link *link, sd_netlink_message *m) {
- struct hw_addr_data hw_addr;
- Veth *v;
- int r;
-
- assert(netdev);
assert(!link);
assert(m);
- v = VETH(netdev);
-
- assert(v);
+ struct hw_addr_data hw_addr;
+ Veth *v = VETH(netdev);
+ int r;
r = sd_netlink_message_open_container(m, VETH_INFO_PEER);
if (r < 0)
}
static int netdev_veth_verify(NetDev *netdev, const char *filename) {
- Veth *v;
-
- assert(netdev);
assert(filename);
- v = VETH(netdev);
-
- assert(v);
+ Veth *v = VETH(netdev);
if (!v->ifname_peer)
return log_netdev_warning_errno(netdev, SYNTHETIC_ERRNO(EINVAL),
return 0;
}
-static void veth_done(NetDev *n) {
- Veth *v;
-
- assert(n);
-
- v = VETH(n);
-
- assert(v);
+static void veth_done(NetDev *netdev) {
+ Veth *v = VETH(netdev);
free(v->ifname_peer);
}
#include "vlan.h"
static int netdev_vlan_fill_message_create(NetDev *netdev, Link *link, sd_netlink_message *req) {
- struct ifla_vlan_flags flags = {};
- VLan *v;
- int r;
-
- assert(netdev);
assert(link);
assert(req);
- v = VLAN(netdev);
-
- assert(v);
+ struct ifla_vlan_flags flags = {};
+ VLan *v = VLAN(netdev);
+ int r;
r = sd_netlink_message_append_u16(req, IFLA_VLAN_ID, v->id);
if (r < 0)
}
static int netdev_vlan_verify(NetDev *netdev, const char *filename) {
- VLan *v;
-
- assert(netdev);
assert(filename);
- v = VLAN(netdev);
-
- assert(v);
+ VLan *v = VLAN(netdev);
if (v->id == VLANID_INVALID) {
log_netdev_warning(netdev, "VLAN without valid Id (%"PRIu16") configured in %s.", v->id, filename);
return 0;
}
-static void vlan_done(NetDev *n) {
- VLan *v;
-
- v = VLAN(n);
-
- assert(v);
+static void vlan_done(NetDev *netdev) {
+ VLan *v = VLAN(netdev);
set_free(v->egress_qos_maps);
set_free(v->ingress_qos_maps);
static void vlan_init(NetDev *netdev) {
VLan *v = VLAN(netdev);
- assert(netdev);
- assert(v);
-
v->id = VLANID_INVALID;
v->protocol = -1;
v->gvrp = -1;
#include "vrf.h"
static int netdev_vrf_fill_message_create(NetDev *netdev, Link *link, sd_netlink_message *m) {
- Vrf *v;
- int r;
-
- assert(netdev);
assert(!link);
assert(m);
- v = VRF(netdev);
-
- assert(v);
+ Vrf *v = VRF(netdev);
+ int r;
r = sd_netlink_message_append_u32(m, IFLA_VRF_TABLE, v->table);
if (r < 0)
#include "vxcan.h"
static int netdev_vxcan_fill_message_create(NetDev *netdev, Link *link, sd_netlink_message *m) {
- VxCan *v;
- int r;
-
- assert(netdev);
assert(!link);
assert(m);
- v = VXCAN(netdev);
-
- assert(v);
+ VxCan *v = VXCAN(netdev);
+ int r;
r = sd_netlink_message_open_container(m, VXCAN_INFO_PEER);
if (r < 0)
}
static int netdev_vxcan_verify(NetDev *netdev, const char *filename) {
- VxCan *v;
-
- assert(netdev);
assert(filename);
- v = VXCAN(netdev);
-
- assert(v);
+ VxCan *v = VXCAN(netdev);
if (!v->ifname_peer)
return log_netdev_warning_errno(netdev, SYNTHETIC_ERRNO(EINVAL),
return 0;
}
-static void vxcan_done(NetDev *n) {
- VxCan *v;
-
- assert(n);
-
- v = VXCAN(n);
-
- assert(v);
+static void vxcan_done(NetDev *netdev) {
+ VxCan *v = VXCAN(netdev);
free(v->ifname_peer);
}
}
static int netdev_vxlan_fill_message_create(NetDev *netdev, Link *link, sd_netlink_message *m) {
- union in_addr_union local;
- int local_family, r;
- VxLan *v;
-
- assert(netdev);
assert(m);
- v = VXLAN(netdev);
-
- assert(v);
+ union in_addr_union local;
+ int local_family, r;
+ VxLan *v = VXLAN(netdev);
if (v->vni <= VXLAN_VID_MAX) {
r = sd_netlink_message_append_u32(m, IFLA_VXLAN_ID, v->vni);
}
static int netdev_vxlan_verify(NetDev *netdev, const char *filename) {
- VxLan *v = VXLAN(netdev);
-
- assert(netdev);
- assert(v);
assert(filename);
+ VxLan *v = VXLAN(netdev);
+
if (v->vni > VXLAN_VID_MAX)
return log_netdev_warning_errno(netdev, SYNTHETIC_ERRNO(EINVAL),
"%s: VXLAN without valid VNI (or VXLAN Segment ID) configured. Ignoring.",
}
static int netdev_vxlan_is_ready_to_create(NetDev *netdev, Link *link) {
- VxLan *v;
-
- assert(netdev);
-
- v = VXLAN(netdev);
-
- assert(v);
+ VxLan *v = VXLAN(netdev);
if (v->independent)
return true;
}
static void vxlan_init(NetDev *netdev) {
- VxLan *v;
-
- assert(netdev);
-
- v = VXLAN(netdev);
-
- assert(v);
+ VxLan *v = VXLAN(netdev);
v->local_type = _NETDEV_LOCAL_ADDRESS_TYPE_INVALID;
v->vni = VXLAN_VID_MAX + 1;
WireguardPeer *peer_start;
bool sent_once = false;
uint32_t serial;
- Wireguard *w;
+ Wireguard *w = WIREGUARD(netdev);
int r;
- assert(netdev);
- w = WIREGUARD(netdev);
- assert(w);
-
for (peer_start = w->peers; peer_start || !sent_once; ) {
uint16_t i = 0;
}
static void wireguard_resolve_endpoints(NetDev *netdev) {
- Wireguard *w;
-
- assert(netdev);
- w = WIREGUARD(netdev);
- assert(w);
+ Wireguard *w = WIREGUARD(netdev);
LIST_FOREACH(peers, peer, w->peers)
if (peer_resolve_endpoint(peer) == -ENOBUFS)
}
static int netdev_wireguard_post_create(NetDev *netdev, Link *link) {
- assert(netdev);
assert(WIREGUARD(netdev));
(void) wireguard_set_interface(netdev);
void *data,
void *userdata) {
- Wireguard *w;
-
- assert(data);
- w = WIREGUARD(data);
- assert(w);
+ Wireguard *w = WIREGUARD(data);
return wireguard_decode_key_and_warn(rvalue, w->private_key, unit, filename, line, lvalue);
}
void *data,
void *userdata) {
+ Wireguard *w = WIREGUARD(data);
_cleanup_free_ char *path = NULL;
- Wireguard *w;
-
- assert(data);
- w = WIREGUARD(data);
- assert(w);
if (isempty(rvalue)) {
w->private_key_file = mfree(w->private_key_file);
void *data,
void *userdata) {
+ Wireguard *w = WIREGUARD(data);
_cleanup_(wireguard_peer_free_or_set_invalidp) WireguardPeer *peer = NULL;
- Wireguard *w;
int r;
- assert(data);
- w = WIREGUARD(data);
- assert(w);
-
r = wireguard_peer_new_static(w, filename, section_line, &peer);
if (r < 0)
return log_oom();
void *data,
void *userdata) {
+ Wireguard *w = WIREGUARD(data);
_cleanup_(wireguard_peer_free_or_set_invalidp) WireguardPeer *peer = NULL;
_cleanup_free_ char *path = NULL;
- Wireguard *w;
int r;
- assert(data);
- w = WIREGUARD(data);
- assert(w);
-
r = wireguard_peer_new_static(w, filename, section_line, &peer);
if (r < 0)
return log_oom();
void *data,
void *userdata) {
+ assert(rvalue);
+
+ Wireguard *w = WIREGUARD(data);
_cleanup_(wireguard_peer_free_or_set_invalidp) WireguardPeer *peer = NULL;
union in_addr_union addr;
unsigned char prefixlen;
int r, family;
- Wireguard *w;
WireguardIPmask *ipmask;
- assert(rvalue);
- assert(data);
-
- w = WIREGUARD(data);
- assert(w);
-
r = wireguard_peer_new_static(w, filename, section_line, &peer);
if (r < 0)
return log_oom();
void *data,
void *userdata) {
+ assert(filename);
+ assert(rvalue);
+ assert(userdata);
+
+ Wireguard *w = WIREGUARD(userdata);
_cleanup_(wireguard_peer_free_or_set_invalidp) WireguardPeer *peer = NULL;
_cleanup_free_ char *host = NULL;
union in_addr_union addr;
const char *p;
uint16_t port;
- Wireguard *w;
int family, r;
- assert(filename);
- assert(rvalue);
- assert(userdata);
-
- w = WIREGUARD(userdata);
- assert(w);
-
r = wireguard_peer_new_static(w, filename, section_line, &peer);
if (r < 0)
return log_oom();
void *data,
void *userdata) {
+ assert(rvalue);
+
+ Wireguard *w = WIREGUARD(data);
_cleanup_(wireguard_peer_free_or_set_invalidp) WireguardPeer *peer = NULL;
uint16_t keepalive = 0;
- Wireguard *w;
int r;
- assert(rvalue);
- assert(data);
-
- w = WIREGUARD(data);
- assert(w);
-
r = wireguard_peer_new_static(w, filename, section_line, &peer);
if (r < 0)
return log_oom();
void *data,
void *userdata) {
+ Wireguard *w = WIREGUARD(userdata);
_cleanup_(wireguard_peer_free_or_set_invalidp) WireguardPeer *peer = NULL;
- NetDev *netdev = ASSERT_PTR(userdata);
- Wireguard *w;
int r;
assert(filename);
assert(lvalue);
assert(rvalue);
- assert(netdev->manager);
-
- w = WIREGUARD(netdev);
- assert(w);
+ assert(NETDEV(w)->manager);
r = wireguard_peer_new_static(w, filename, section_line, &peer);
if (r < 0)
return 0;
}
- r = manager_get_route_table_from_string(netdev->manager, rvalue, &peer->route_table);
+ r = manager_get_route_table_from_string(NETDEV(w)->manager, rvalue, &peer->route_table);
if (r < 0) {
log_syntax(unit, LOG_WARNING, filename, line, r,
"Failed to parse %s=, ignoring assignment: %s",
}
static void wireguard_init(NetDev *netdev) {
- Wireguard *w;
-
- assert(netdev);
- w = WIREGUARD(netdev);
- assert(w);
+ Wireguard *w = WIREGUARD(netdev);
w->flags = WGDEVICE_F_REPLACE_PEERS;
}
static void wireguard_done(NetDev *netdev) {
- Wireguard *w;
-
- assert(netdev);
- w = WIREGUARD(netdev);
- assert(w);
+ Wireguard *w = WIREGUARD(netdev);
explicit_bzero_safe(w->private_key, WG_KEY_LEN);
free(w->private_key_file);
}
static int wireguard_verify(NetDev *netdev, const char *filename) {
- Wireguard *w;
+ Wireguard *w = WIREGUARD(netdev);
int r;
- assert(netdev);
- w = WIREGUARD(netdev);
- assert(w);
-
r = wireguard_read_key_file(w->private_key_file, w->private_key);
if (r < 0)
return log_netdev_error_errno(netdev, r,
#include "wlan.h"
static void wlan_done(NetDev *netdev) {
- WLan *w;
-
- assert(netdev);
-
- w = WLAN(netdev);
-
- assert(w);
+ WLan *w = WLAN(netdev);
w->wiphy_name = mfree(w->wiphy_name);
}
static void wlan_init(NetDev *netdev) {
- WLan *w;
-
- assert(netdev);
-
- w = WLAN(netdev);
-
- assert(w);
+ WLan *w = WLAN(netdev);
w->wiphy_index = UINT32_MAX;
w->wds = -1;
}
static int wlan_get_wiphy(NetDev *netdev, Wiphy **ret) {
- WLan *w;
-
- assert(netdev);
-
- w = WLAN(netdev);
-
- assert(w);
+ WLan *w = WLAN(netdev);
if (w->wiphy_name)
return wiphy_get_by_name(netdev->manager, w->wiphy_name, ret);
}
static int wlan_fill_message(NetDev *netdev, sd_netlink_message *m) {
+ WLan *w = WLAN(netdev);
Wiphy *wiphy;
- WLan *w;
int r;
- assert(netdev);
- assert(m);
-
- w = WLAN(netdev);
-
- assert(w);
-
r = wlan_get_wiphy(netdev, &wiphy);
if (r < 0)
return r;
}
static int wlan_verify(NetDev *netdev, const char *filename) {
- WLan *w;
+ WLan *w = WLAN(netdev);
- assert(netdev);
assert(filename);
- w = WLAN(netdev);
-
- assert(w);
-
if (w->iftype == NL80211_IFTYPE_UNSPECIFIED)
return log_netdev_warning_errno(netdev, SYNTHETIC_ERRNO(EINVAL),
"%s: WLAN interface type is not specified, ignoring.",
void *data,
void *userdata) {
- WLan *w = ASSERT_PTR(userdata);
+ WLan *w = WLAN(userdata);
int r;
assert(filename);
#include "xfrm.h"
static int xfrm_fill_message_create(NetDev *netdev, Link *link, sd_netlink_message *message) {
- assert(netdev);
assert(message);
- Xfrm *x = ASSERT_PTR(XFRM(netdev));
+ Xfrm *x = XFRM(netdev);
int r;
assert(link || x->independent);
}
static int xfrm_verify(NetDev *netdev, const char *filename) {
- assert(netdev);
assert(filename);
- Xfrm *x = ASSERT_PTR(XFRM(netdev));
+ Xfrm *x = XFRM(netdev);
if (x->if_id == 0)
return log_netdev_warning_errno(netdev, SYNTHETIC_ERRNO(EINVAL),
else
continue;
- assert(m);
-
if (m->mode == NETDEV_MACVLAN_MODE_PASSTHRU)
network->link_local = ADDRESS_FAMILY_NO;
}
static void link_unmark_wireguard_routes(Link *link) {
- Route *route, *existing;
- Wireguard *w;
-
assert(link);
- w = WIREGUARD(link->netdev);
- if (!w)
+ if (!link->netdev || link->netdev->kind != NETDEV_KIND_WIREGUARD)
return;
+ Route *route, *existing;
+ Wireguard *w = WIREGUARD(link->netdev);
+
SET_FOREACH(route, w->routes)
if (route_get(NULL, link, route, &existing) >= 0)
route_unmark(existing);
static int link_request_wireguard_routes(Link *link, bool only_ipv4) {
NetDev *netdev;
- Wireguard *w;
Route *route;
int r;
if (netdev_get(link->manager, link->ifname, &netdev) < 0)
return 0;
- w = WIREGUARD(netdev);
- if (!w)
- return 0;
+ Wireguard *w = WIREGUARD(netdev);
SET_FOREACH(route, w->routes) {
if (only_ipv4 && route->family != AF_INET)