network: warn about unknown sections when parsing .netdev files
Fixes https://bugzilla.redhat.com/show_bug.cgi?id=1774242. Now we'll emit the warning about unknown section [Netdev], making the issue much easier to diagnose.
This commit is contained in:
parent
ddeb3f5d4b
commit
130b812f9d
|
@ -587,7 +587,7 @@ const NetDevVTable bond_vtable = {
|
|||
.object_size = sizeof(Bond),
|
||||
.init = bond_init,
|
||||
.done = bond_done,
|
||||
.sections = "Match\0NetDev\0Bond\0",
|
||||
.sections = NETDEV_COMMON_SECTIONS "Bond\0",
|
||||
.fill_message_create = netdev_bond_fill_message_create,
|
||||
.create_type = NETDEV_CREATE_MASTER,
|
||||
.generate_mac = true,
|
||||
|
|
|
@ -355,7 +355,7 @@ static void bridge_init(NetDev *n) {
|
|||
const NetDevVTable bridge_vtable = {
|
||||
.object_size = sizeof(Bridge),
|
||||
.init = bridge_init,
|
||||
.sections = "Match\0NetDev\0Bridge\0",
|
||||
.sections = NETDEV_COMMON_SECTIONS "Bridge\0",
|
||||
.post_create = netdev_bridge_post_create,
|
||||
.create_type = NETDEV_CREATE_MASTER,
|
||||
};
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
|
||||
const NetDevVTable dummy_vtable = {
|
||||
.object_size = sizeof(Dummy),
|
||||
.sections = "Match\0NetDev\0",
|
||||
.sections = NETDEV_COMMON_SECTIONS,
|
||||
.create_type = NETDEV_CREATE_INDEPENDENT,
|
||||
.generate_mac = true,
|
||||
};
|
||||
|
|
|
@ -262,7 +262,7 @@ static void fou_tunnel_init(NetDev *netdev) {
|
|||
const NetDevVTable foutnl_vtable = {
|
||||
.object_size = sizeof(FouTunnel),
|
||||
.init = fou_tunnel_init,
|
||||
.sections = "Match\0NetDev\0FooOverUDP\0",
|
||||
.sections = NETDEV_COMMON_SECTIONS "FooOverUDP\0",
|
||||
.create = netdev_fou_tunnel_create,
|
||||
.create_type = NETDEV_CREATE_INDEPENDENT,
|
||||
.config_verify = netdev_fou_tunnel_verify,
|
||||
|
|
|
@ -348,7 +348,7 @@ static void geneve_init(NetDev *netdev) {
|
|||
const NetDevVTable geneve_vtable = {
|
||||
.object_size = sizeof(Geneve),
|
||||
.init = geneve_init,
|
||||
.sections = "Match\0NetDev\0GENEVE\0",
|
||||
.sections = NETDEV_COMMON_SECTIONS "GENEVE\0",
|
||||
.create = netdev_geneve_create,
|
||||
.create_type = NETDEV_CREATE_INDEPENDENT,
|
||||
.config_verify = netdev_geneve_verify,
|
||||
|
|
|
@ -74,7 +74,7 @@ static void ipvlan_init(NetDev *n) {
|
|||
const NetDevVTable ipvlan_vtable = {
|
||||
.object_size = sizeof(IPVlan),
|
||||
.init = ipvlan_init,
|
||||
.sections = "Match\0NetDev\0IPVLAN\0",
|
||||
.sections = NETDEV_COMMON_SECTIONS "IPVLAN\0",
|
||||
.fill_message_create = netdev_ipvlan_fill_message_create,
|
||||
.create_type = NETDEV_CREATE_STACKED,
|
||||
.generate_mac = true,
|
||||
|
@ -83,7 +83,7 @@ const NetDevVTable ipvlan_vtable = {
|
|||
const NetDevVTable ipvtap_vtable = {
|
||||
.object_size = sizeof(IPVlan),
|
||||
.init = ipvlan_init,
|
||||
.sections = "Match\0NetDev\0IPVTAP\0",
|
||||
.sections = NETDEV_COMMON_SECTIONS "IPVTAP\0",
|
||||
.fill_message_create = netdev_ipvlan_fill_message_create,
|
||||
.create_type = NETDEV_CREATE_STACKED,
|
||||
.generate_mac = true,
|
||||
|
|
|
@ -723,7 +723,7 @@ static void l2tp_tunnel_done(NetDev *netdev) {
|
|||
const NetDevVTable l2tptnl_vtable = {
|
||||
.object_size = sizeof(L2tpTunnel),
|
||||
.init = l2tp_tunnel_init,
|
||||
.sections = "Match\0NetDev\0L2TP\0L2TPSession\0",
|
||||
.sections = NETDEV_COMMON_SECTIONS "L2TP\0L2TPSession\0",
|
||||
.create_after_configured = l2tp_create_tunnel,
|
||||
.done = l2tp_tunnel_done,
|
||||
.create_type = NETDEV_CREATE_AFTER_CONFIGURED,
|
||||
|
|
|
@ -1235,7 +1235,7 @@ static void macsec_done(NetDev *netdev) {
|
|||
const NetDevVTable macsec_vtable = {
|
||||
.object_size = sizeof(MACsec),
|
||||
.init = macsec_init,
|
||||
.sections = "Match\0NetDev\0MACsec\0MACsecReceiveChannel\0MACsecTransmitAssociation\0MACsecReceiveAssociation\0",
|
||||
.sections = NETDEV_COMMON_SECTIONS "MACsec\0MACsecReceiveChannel\0MACsecTransmitAssociation\0MACsecReceiveAssociation\0",
|
||||
.fill_message_create = netdev_macsec_fill_message_create,
|
||||
.post_create = netdev_macsec_configure,
|
||||
.done = macsec_done,
|
||||
|
|
|
@ -58,7 +58,7 @@ static void macvlan_init(NetDev *n) {
|
|||
const NetDevVTable macvtap_vtable = {
|
||||
.object_size = sizeof(MacVlan),
|
||||
.init = macvlan_init,
|
||||
.sections = "Match\0NetDev\0MACVTAP\0",
|
||||
.sections = NETDEV_COMMON_SECTIONS "MACVTAP\0",
|
||||
.fill_message_create = netdev_macvlan_fill_message_create,
|
||||
.create_type = NETDEV_CREATE_STACKED,
|
||||
.generate_mac = true,
|
||||
|
@ -67,7 +67,7 @@ const NetDevVTable macvtap_vtable = {
|
|||
const NetDevVTable macvlan_vtable = {
|
||||
.object_size = sizeof(MacVlan),
|
||||
.init = macvlan_init,
|
||||
.sections = "Match\0NetDev\0MACVLAN\0",
|
||||
.sections = NETDEV_COMMON_SECTIONS "MACVLAN\0",
|
||||
.fill_message_create = netdev_macvlan_fill_message_create,
|
||||
.create_type = NETDEV_CREATE_STACKED,
|
||||
.generate_mac = true,
|
||||
|
|
|
@ -682,9 +682,9 @@ int netdev_load_one(Manager *manager, const char *filename) {
|
|||
|
||||
dropin_dirname = strjoina(basename(filename), ".d");
|
||||
r = config_parse_many(filename, NETWORK_DIRS, dropin_dirname,
|
||||
"Match\0NetDev\0",
|
||||
NETDEV_COMMON_SECTIONS NETDEV_OTHER_SECTIONS,
|
||||
config_item_perf_lookup, network_netdev_gperf_lookup,
|
||||
CONFIG_PARSE_WARN|CONFIG_PARSE_RELAXED, netdev_raw);
|
||||
CONFIG_PARSE_WARN, netdev_raw);
|
||||
if (r < 0)
|
||||
return r;
|
||||
|
||||
|
|
|
@ -8,6 +8,35 @@
|
|||
#include "networkd-link.h"
|
||||
#include "time-util.h"
|
||||
|
||||
#define NETDEV_COMMON_SECTIONS "Match\0NetDev\0"
|
||||
/* This is the list of known sections. We need to ignore them in the initial parsing phase. */
|
||||
#define NETDEV_OTHER_SECTIONS \
|
||||
"-Bond\0" \
|
||||
"-Bridge\0" \
|
||||
"-FooOverUDP\0" \
|
||||
"-GENEVE\0" \
|
||||
"-IPVLAN\0" \
|
||||
"-IPVTAP\0" \
|
||||
"-L2TP\0" \
|
||||
"-L2TPSession\0" \
|
||||
"-MACsec\0" \
|
||||
"-MACsecReceiveChannel\0" \
|
||||
"-MACsecTransmitAssociation\0" \
|
||||
"-MACsecReceiveAssociation\0" \
|
||||
"-MACVTAP\0" \
|
||||
"-MACVLAN\0" \
|
||||
"-Tunnel\0" \
|
||||
"-Tun\0" \
|
||||
"-Tap\0" \
|
||||
"-Peer\0" \
|
||||
"-VLAN\0" \
|
||||
"-VRF\0" \
|
||||
"-VXCAN\0" \
|
||||
"-VXLAN\0" \
|
||||
"-WireGuard\0" \
|
||||
"-WireGuardPeer\0" \
|
||||
"-Xfrm\0"
|
||||
|
||||
typedef struct netdev_join_callback netdev_join_callback;
|
||||
|
||||
struct netdev_join_callback {
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
|
||||
const NetDevVTable netdevsim_vtable = {
|
||||
.object_size = sizeof(NetDevSim),
|
||||
.sections = "Match\0NetDev\0",
|
||||
.sections = NETDEV_COMMON_SECTIONS,
|
||||
.create_type = NETDEV_CREATE_INDEPENDENT,
|
||||
.generate_mac = true,
|
||||
};
|
||||
|
|
|
@ -16,7 +16,7 @@ static int netdev_nlmon_verify(NetDev *netdev, const char *filename) {
|
|||
|
||||
const NetDevVTable nlmon_vtable = {
|
||||
.object_size = sizeof(NLMon),
|
||||
.sections = "Match\0NetDev\0",
|
||||
.sections = NETDEV_COMMON_SECTIONS,
|
||||
.create_type = NETDEV_CREATE_INDEPENDENT,
|
||||
.config_verify = netdev_nlmon_verify,
|
||||
};
|
||||
|
|
|
@ -805,7 +805,7 @@ static void ip6tnl_init(NetDev *n) {
|
|||
const NetDevVTable ipip_vtable = {
|
||||
.object_size = sizeof(Tunnel),
|
||||
.init = ipip_sit_init,
|
||||
.sections = "Match\0NetDev\0Tunnel\0",
|
||||
.sections = NETDEV_COMMON_SECTIONS "Tunnel\0",
|
||||
.fill_message_create = netdev_ipip_sit_fill_message_create,
|
||||
.create_type = NETDEV_CREATE_STACKED,
|
||||
.config_verify = netdev_tunnel_verify,
|
||||
|
@ -815,7 +815,7 @@ const NetDevVTable ipip_vtable = {
|
|||
const NetDevVTable sit_vtable = {
|
||||
.object_size = sizeof(Tunnel),
|
||||
.init = ipip_sit_init,
|
||||
.sections = "Match\0NetDev\0Tunnel\0",
|
||||
.sections = NETDEV_COMMON_SECTIONS "Tunnel\0",
|
||||
.fill_message_create = netdev_ipip_sit_fill_message_create,
|
||||
.create_type = NETDEV_CREATE_STACKED,
|
||||
.config_verify = netdev_tunnel_verify,
|
||||
|
@ -825,7 +825,7 @@ const NetDevVTable sit_vtable = {
|
|||
const NetDevVTable vti_vtable = {
|
||||
.object_size = sizeof(Tunnel),
|
||||
.init = vti_init,
|
||||
.sections = "Match\0NetDev\0Tunnel\0",
|
||||
.sections = NETDEV_COMMON_SECTIONS "Tunnel\0",
|
||||
.fill_message_create = netdev_vti_fill_message_create,
|
||||
.create_type = NETDEV_CREATE_STACKED,
|
||||
.config_verify = netdev_tunnel_verify,
|
||||
|
@ -835,7 +835,7 @@ const NetDevVTable vti_vtable = {
|
|||
const NetDevVTable vti6_vtable = {
|
||||
.object_size = sizeof(Tunnel),
|
||||
.init = vti_init,
|
||||
.sections = "Match\0NetDev\0Tunnel\0",
|
||||
.sections = NETDEV_COMMON_SECTIONS "Tunnel\0",
|
||||
.fill_message_create = netdev_vti_fill_message_create,
|
||||
.create_type = NETDEV_CREATE_STACKED,
|
||||
.config_verify = netdev_tunnel_verify,
|
||||
|
@ -845,7 +845,7 @@ const NetDevVTable vti6_vtable = {
|
|||
const NetDevVTable gre_vtable = {
|
||||
.object_size = sizeof(Tunnel),
|
||||
.init = gre_erspan_init,
|
||||
.sections = "Match\0NetDev\0Tunnel\0",
|
||||
.sections = NETDEV_COMMON_SECTIONS "Tunnel\0",
|
||||
.fill_message_create = netdev_gre_erspan_fill_message_create,
|
||||
.create_type = NETDEV_CREATE_STACKED,
|
||||
.config_verify = netdev_tunnel_verify,
|
||||
|
@ -855,7 +855,7 @@ const NetDevVTable gre_vtable = {
|
|||
const NetDevVTable gretap_vtable = {
|
||||
.object_size = sizeof(Tunnel),
|
||||
.init = gre_erspan_init,
|
||||
.sections = "Match\0NetDev\0Tunnel\0",
|
||||
.sections = NETDEV_COMMON_SECTIONS "Tunnel\0",
|
||||
.fill_message_create = netdev_gre_erspan_fill_message_create,
|
||||
.create_type = NETDEV_CREATE_STACKED,
|
||||
.config_verify = netdev_tunnel_verify,
|
||||
|
@ -865,7 +865,7 @@ const NetDevVTable gretap_vtable = {
|
|||
const NetDevVTable ip6gre_vtable = {
|
||||
.object_size = sizeof(Tunnel),
|
||||
.init = ip6gre_init,
|
||||
.sections = "Match\0NetDev\0Tunnel\0",
|
||||
.sections = NETDEV_COMMON_SECTIONS "Tunnel\0",
|
||||
.fill_message_create = netdev_ip6gre_fill_message_create,
|
||||
.create_type = NETDEV_CREATE_STACKED,
|
||||
.config_verify = netdev_tunnel_verify,
|
||||
|
@ -875,7 +875,7 @@ const NetDevVTable ip6gre_vtable = {
|
|||
const NetDevVTable ip6gretap_vtable = {
|
||||
.object_size = sizeof(Tunnel),
|
||||
.init = ip6gre_init,
|
||||
.sections = "Match\0NetDev\0Tunnel\0",
|
||||
.sections = NETDEV_COMMON_SECTIONS "Tunnel\0",
|
||||
.fill_message_create = netdev_ip6gre_fill_message_create,
|
||||
.create_type = NETDEV_CREATE_STACKED,
|
||||
.config_verify = netdev_tunnel_verify,
|
||||
|
@ -885,7 +885,7 @@ const NetDevVTable ip6gretap_vtable = {
|
|||
const NetDevVTable ip6tnl_vtable = {
|
||||
.object_size = sizeof(Tunnel),
|
||||
.init = ip6tnl_init,
|
||||
.sections = "Match\0NetDev\0Tunnel\0",
|
||||
.sections = NETDEV_COMMON_SECTIONS "Tunnel\0",
|
||||
.fill_message_create = netdev_ip6tnl_fill_message_create,
|
||||
.create_type = NETDEV_CREATE_STACKED,
|
||||
.config_verify = netdev_tunnel_verify,
|
||||
|
@ -895,7 +895,7 @@ const NetDevVTable ip6tnl_vtable = {
|
|||
const NetDevVTable erspan_vtable = {
|
||||
.object_size = sizeof(Tunnel),
|
||||
.init = gre_erspan_init,
|
||||
.sections = "Match\0NetDev\0Tunnel\0",
|
||||
.sections = NETDEV_COMMON_SECTIONS "Tunnel\0",
|
||||
.fill_message_create = netdev_gre_erspan_fill_message_create,
|
||||
.create_type = NETDEV_CREATE_STACKED,
|
||||
.config_verify = netdev_tunnel_verify,
|
||||
|
|
|
@ -147,7 +147,7 @@ static int tuntap_verify(NetDev *netdev, const char *filename) {
|
|||
|
||||
const NetDevVTable tun_vtable = {
|
||||
.object_size = sizeof(TunTap),
|
||||
.sections = "Match\0NetDev\0Tun\0",
|
||||
.sections = NETDEV_COMMON_SECTIONS "Tun\0",
|
||||
.config_verify = tuntap_verify,
|
||||
.done = tuntap_done,
|
||||
.create = netdev_create_tuntap,
|
||||
|
@ -156,7 +156,7 @@ const NetDevVTable tun_vtable = {
|
|||
|
||||
const NetDevVTable tap_vtable = {
|
||||
.object_size = sizeof(TunTap),
|
||||
.sections = "Match\0NetDev\0Tap\0",
|
||||
.sections = NETDEV_COMMON_SECTIONS "Tap\0",
|
||||
.config_verify = tuntap_verify,
|
||||
.done = tuntap_done,
|
||||
.create = netdev_create_tuntap,
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
|
||||
const NetDevVTable vcan_vtable = {
|
||||
.object_size = sizeof(VCan),
|
||||
.sections = "Match\0NetDev\0",
|
||||
.sections = NETDEV_COMMON_SECTIONS,
|
||||
.create_type = NETDEV_CREATE_INDEPENDENT,
|
||||
.generate_mac = true,
|
||||
};
|
||||
|
|
|
@ -85,7 +85,7 @@ static void veth_done(NetDev *n) {
|
|||
|
||||
const NetDevVTable veth_vtable = {
|
||||
.object_size = sizeof(Veth),
|
||||
.sections = "Match\0NetDev\0Peer\0",
|
||||
.sections = NETDEV_COMMON_SECTIONS "Peer\0",
|
||||
.done = veth_done,
|
||||
.fill_message_create = netdev_veth_fill_message_create,
|
||||
.create_type = NETDEV_CREATE_INDEPENDENT,
|
||||
|
|
|
@ -85,7 +85,7 @@ static void vlan_init(NetDev *netdev) {
|
|||
const NetDevVTable vlan_vtable = {
|
||||
.object_size = sizeof(VLan),
|
||||
.init = vlan_init,
|
||||
.sections = "Match\0NetDev\0VLAN\0",
|
||||
.sections = NETDEV_COMMON_SECTIONS "VLAN\0",
|
||||
.fill_message_create = netdev_vlan_fill_message_create,
|
||||
.create_type = NETDEV_CREATE_STACKED,
|
||||
.config_verify = netdev_vlan_verify,
|
||||
|
|
|
@ -25,7 +25,7 @@ static int netdev_vrf_fill_message_create(NetDev *netdev, Link *link, sd_netlink
|
|||
|
||||
const NetDevVTable vrf_vtable = {
|
||||
.object_size = sizeof(Vrf),
|
||||
.sections = "Match\0NetDev\0VRF\0",
|
||||
.sections = NETDEV_COMMON_SECTIONS "VRF\0",
|
||||
.fill_message_create = netdev_vrf_fill_message_create,
|
||||
.create_type = NETDEV_CREATE_MASTER,
|
||||
.generate_mac = true,
|
||||
|
|
|
@ -65,7 +65,7 @@ static void vxcan_done(NetDev *n) {
|
|||
|
||||
const NetDevVTable vxcan_vtable = {
|
||||
.object_size = sizeof(VxCan),
|
||||
.sections = "Match\0NetDev\0VXCAN\0",
|
||||
.sections = NETDEV_COMMON_SECTIONS "VXCAN\0",
|
||||
.done = vxcan_done,
|
||||
.fill_message_create = netdev_vxcan_fill_message_create,
|
||||
.create_type = NETDEV_CREATE_INDEPENDENT,
|
||||
|
|
|
@ -371,7 +371,7 @@ static void vxlan_init(NetDev *netdev) {
|
|||
const NetDevVTable vxlan_vtable = {
|
||||
.object_size = sizeof(VxLan),
|
||||
.init = vxlan_init,
|
||||
.sections = "Match\0NetDev\0VXLAN\0",
|
||||
.sections = NETDEV_COMMON_SECTIONS "VXLAN\0",
|
||||
.fill_message_create = netdev_vxlan_fill_message_create,
|
||||
.create_type = NETDEV_CREATE_STACKED,
|
||||
.config_verify = netdev_vxlan_verify,
|
||||
|
|
|
@ -967,7 +967,7 @@ static int wireguard_verify(NetDev *netdev, const char *filename) {
|
|||
|
||||
const NetDevVTable wireguard_vtable = {
|
||||
.object_size = sizeof(Wireguard),
|
||||
.sections = "Match\0NetDev\0WireGuard\0WireGuardPeer\0",
|
||||
.sections = NETDEV_COMMON_SECTIONS "WireGuard\0WireGuardPeer\0",
|
||||
.post_create = netdev_wireguard_post_create,
|
||||
.init = wireguard_init,
|
||||
.done = wireguard_done,
|
||||
|
|
|
@ -27,7 +27,7 @@ static int xfrm_fill_message_create(NetDev *netdev, Link *link, sd_netlink_messa
|
|||
|
||||
const NetDevVTable xfrm_vtable = {
|
||||
.object_size = sizeof(Xfrm),
|
||||
.sections = "Match\0NetDev\0Xfrm\0",
|
||||
.sections = NETDEV_COMMON_SECTIONS "Xfrm\0",
|
||||
.fill_message_create = xfrm_fill_message_create,
|
||||
.create_type = NETDEV_CREATE_STACKED
|
||||
};
|
||||
|
|
Loading…
Reference in a new issue