| %{ |
| #if __GNUC__ >= 7 |
| _Pragma("GCC diagnostic ignored \"-Wimplicit-fallthrough\"") |
| #endif |
| #include <stddef.h> |
| #include "conf-parser.h" |
| #include "network-internal.h" |
| #include "networkd-conf.h" |
| #include "networkd-network.h" |
| #include "vlan-util.h" |
| %} |
| struct ConfigPerfItem; |
| %null_strings |
| %language=ANSI-C |
| %define slot-name section_and_lvalue |
| %define hash-function-name network_network_gperf_hash |
| %define lookup-function-name network_network_gperf_lookup |
| %readonly-tables |
| %omit-struct-type |
| %struct-type |
| %includes |
| %% |
| Match.MACAddress, config_parse_hwaddrs, 0, offsetof(Network, match_mac) |
| Match.Path, config_parse_strv, 0, offsetof(Network, match_path) |
| Match.Driver, config_parse_strv, 0, offsetof(Network, match_driver) |
| Match.Type, config_parse_strv, 0, offsetof(Network, match_type) |
| Match.Name, config_parse_ifnames, 0, offsetof(Network, match_name) |
| Match.Host, config_parse_net_condition, CONDITION_HOST, offsetof(Network, match_host) |
| Match.Virtualization, config_parse_net_condition, CONDITION_VIRTUALIZATION, offsetof(Network, match_virt) |
| Match.KernelCommandLine, config_parse_net_condition, CONDITION_KERNEL_COMMAND_LINE, offsetof(Network, match_kernel_cmdline) |
| Match.KernelVersion, config_parse_net_condition, CONDITION_KERNEL_VERSION, offsetof(Network, match_kernel_version) |
| Match.Architecture, config_parse_net_condition, CONDITION_ARCHITECTURE, offsetof(Network, match_arch) |
| Link.MACAddress, config_parse_hwaddr, 0, offsetof(Network, mac) |
| Link.MTUBytes, config_parse_mtu, AF_UNSPEC, offsetof(Network, mtu) |
| Link.ARP, config_parse_tristate, 0, offsetof(Network, arp) |
| Link.Multicast, config_parse_tristate, 0, offsetof(Network, multicast) |
| Link.AllMulticast, config_parse_tristate, 0, offsetof(Network, allmulticast) |
| Link.Unmanaged, config_parse_bool, 0, offsetof(Network, unmanaged) |
| Link.RequiredForOnline, config_parse_bool, 0, offsetof(Network, required_for_online) |
| Network.Description, config_parse_string, 0, offsetof(Network, description) |
| Network.Bridge, config_parse_netdev, 0, 0 |
| Network.Bond, config_parse_netdev, 0, 0 |
| Network.VLAN, config_parse_netdev, 0, 0 |
| Network.MACVLAN, config_parse_netdev, 0, 0 |
| Network.MACVTAP, config_parse_netdev, 0, 0 |
| Network.IPVLAN, config_parse_netdev, 0, 0 |
| Network.VXLAN, config_parse_netdev, 0, 0 |
| Network.Tunnel, config_parse_tunnel, 0, 0 |
| Network.VRF, config_parse_netdev, 0, 0 |
| Network.DHCP, config_parse_dhcp, 0, offsetof(Network, dhcp) |
| Network.DHCPServer, config_parse_bool, 0, offsetof(Network, dhcp_server) |
| Network.LinkLocalAddressing, config_parse_address_family_boolean, 0, offsetof(Network, link_local) |
| Network.IPv4LLRoute, config_parse_bool, 0, offsetof(Network, ipv4ll_route) |
| Network.IPv6Token, config_parse_ipv6token, 0, offsetof(Network, ipv6_token) |
| Network.LLDP, config_parse_lldp_mode, 0, offsetof(Network, lldp_mode) |
| Network.EmitLLDP, config_parse_lldp_emit, 0, offsetof(Network, lldp_emit) |
| Network.Address, config_parse_address, 0, 0 |
| Network.Gateway, config_parse_gateway, 0, 0 |
| Network.Domains, config_parse_domains, 0, 0 |
| Network.DNS, config_parse_dns, 0, 0 |
| Network.DNSDefaultRoute, config_parse_tristate, 0, offsetof(Network, dns_default_route) |
| Network.LLMNR, config_parse_resolve_support, 0, offsetof(Network, llmnr) |
| Network.MulticastDNS, config_parse_resolve_support, 0, offsetof(Network, mdns) |
| Network.DNSOverTLS, config_parse_dns_over_tls_mode, 0, offsetof(Network, dns_over_tls_mode) |
| Network.DNSSEC, config_parse_dnssec_mode, 0, offsetof(Network, dnssec_mode) |
| Network.DNSSECNegativeTrustAnchors, config_parse_dnssec_negative_trust_anchors, 0, 0 |
| Network.NTP, config_parse_ntp, 0, offsetof(Network, ntp) |
| Network.IPForward, config_parse_address_family_boolean_with_kernel,0, offsetof(Network, ip_forward) |
| Network.IPMasquerade, config_parse_bool, 0, offsetof(Network, ip_masquerade) |
| Network.IPv6PrivacyExtensions, config_parse_ipv6_privacy_extensions, 0, offsetof(Network, ipv6_privacy_extensions) |
| Network.IPv6AcceptRA, config_parse_tristate, 0, offsetof(Network, ipv6_accept_ra) |
| Network.IPv6AcceptRouterAdvertisements, config_parse_tristate, 0, offsetof(Network, ipv6_accept_ra) |
| Network.IPv6DuplicateAddressDetection, config_parse_int, 0, offsetof(Network, ipv6_dad_transmits) |
| Network.IPv6HopLimit, config_parse_int, 0, offsetof(Network, ipv6_hop_limit) |
| Network.IPv6ProxyNDP, config_parse_tristate, 0, offsetof(Network, ipv6_proxy_ndp) |
| Network.IPv6MTUBytes, config_parse_mtu, AF_INET6, offsetof(Network, ipv6_mtu) |
| Network.ActiveSlave, config_parse_bool, 0, offsetof(Network, active_slave) |
| Network.PrimarySlave, config_parse_bool, 0, offsetof(Network, primary_slave) |
| Network.IPv4ProxyARP, config_parse_tristate, 0, offsetof(Network, proxy_arp) |
| Network.ProxyARP, config_parse_tristate, 0, offsetof(Network, proxy_arp) |
| Network.IPv6ProxyNDPAddress, config_parse_ipv6_proxy_ndp_address, 0, 0 |
| Network.BindCarrier, config_parse_strv, 0, offsetof(Network, bind_carrier) |
| Network.ConfigureWithoutCarrier, config_parse_bool, 0, offsetof(Network, configure_without_carrier) |
| Address.Address, config_parse_address, 0, 0 |
| Address.Peer, config_parse_address, 0, 0 |
| Address.Broadcast, config_parse_broadcast, 0, 0 |
| Address.Label, config_parse_label, 0, 0 |
| Address.PreferredLifetime, config_parse_lifetime, 0, 0 |
| Address.HomeAddress, config_parse_address_flags, 0, 0 |
| Address.DuplicateAddressDetection, config_parse_address_flags, 0, 0 |
| Address.ManageTemporaryAddress, config_parse_address_flags, 0, 0 |
| Address.PrefixRoute, config_parse_address_flags, 0, 0 |
| Address.AutoJoin, config_parse_address_flags, 0, 0 |
| Address.Scope, config_parse_address_scope, 0, 0 |
| IPv6AddressLabel.Prefix, config_parse_address_label_prefix, 0, 0 |
| IPv6AddressLabel.Label, config_parse_address_label, 0, 0 |
| Neighbor.Address, config_parse_neighbor_address, 0, 0 |
| Neighbor.MACAddress, config_parse_neighbor_hwaddr, 0, 0 |
| RoutingPolicyRule.TypeOfService, config_parse_routing_policy_rule_tos, 0, 0 |
| RoutingPolicyRule.Priority, config_parse_routing_policy_rule_priority, 0, 0 |
| RoutingPolicyRule.Table, config_parse_routing_policy_rule_table, 0, 0 |
| RoutingPolicyRule.FirewallMark, config_parse_routing_policy_rule_fwmark_mask, 0, 0 |
| RoutingPolicyRule.From, config_parse_routing_policy_rule_prefix, 0, 0 |
| RoutingPolicyRule.To, config_parse_routing_policy_rule_prefix, 0, 0 |
| RoutingPolicyRule.IncomingInterface, config_parse_routing_policy_rule_device, 0, 0 |
| RoutingPolicyRule.OutgoingInterface, config_parse_routing_policy_rule_device, 0, 0 |
| RoutingPolicyRule.IPProtocol, config_parse_routing_policy_rule_ip_protocol, 0, 0 |
| RoutingPolicyRule.SourcePort, config_parse_routing_policy_rule_port_range, 0, 0 |
| RoutingPolicyRule.DestinationPort, config_parse_routing_policy_rule_port_range, 0, 0 |
| RoutingPolicyRule.InvertRule, config_parse_routing_policy_rule_invert, 0, 0 |
| Route.Gateway, config_parse_gateway, 0, 0 |
| Route.Destination, config_parse_destination, 0, 0 |
| Route.Source, config_parse_destination, 0, 0 |
| Route.Metric, config_parse_route_priority, 0, 0 |
| Route.Scope, config_parse_route_scope, 0, 0 |
| Route.PreferredSource, config_parse_preferred_src, 0, 0 |
| Route.Table, config_parse_route_table, 0, 0 |
| Route.MTUBytes, config_parse_route_mtu, AF_UNSPEC, 0 |
| Route.GatewayOnlink, config_parse_gateway_onlink, 0, 0 |
| Route.IPv6Preference, config_parse_ipv6_route_preference, 0, 0 |
| Route.Protocol, config_parse_route_protocol, 0, 0 |
| Route.Type, config_parse_route_type, 0, 0 |
| Route.InitialCongestionWindow, config_parse_tcp_window, 0, 0 |
| Route.InitialAdvertisedReceiveWindow, config_parse_tcp_window, 0, 0 |
| Route.QuickAck, config_parse_quickack, 0, 0 |
| DHCP.ClientIdentifier, config_parse_dhcp_client_identifier, 0, offsetof(Network, dhcp_client_identifier) |
| DHCP.UseDNS, config_parse_bool, 0, offsetof(Network, dhcp_use_dns) |
| DHCP.UseNTP, config_parse_bool, 0, offsetof(Network, dhcp_use_ntp) |
| DHCP.UseMTU, config_parse_bool, 0, offsetof(Network, dhcp_use_mtu) |
| DHCP.UseHostname, config_parse_bool, 0, offsetof(Network, dhcp_use_hostname) |
| DHCP.UseDomains, config_parse_dhcp_use_domains, 0, offsetof(Network, dhcp_use_domains) |
| DHCP.UseRoutes, config_parse_bool, 0, offsetof(Network, dhcp_use_routes) |
| DHCP.Anonymize, config_parse_bool, 0, offsetof(Network, dhcp_anonymize) |
| DHCP.SendHostname, config_parse_bool, 0, offsetof(Network, dhcp_send_hostname) |
| DHCP.Hostname, config_parse_hostname, 0, offsetof(Network, dhcp_hostname) |
| DHCP.RequestBroadcast, config_parse_bool, 0, offsetof(Network, dhcp_broadcast) |
| DHCP.CriticalConnection, config_parse_bool, 0, offsetof(Network, dhcp_critical) |
| DHCP.VendorClassIdentifier, config_parse_string, 0, offsetof(Network, dhcp_vendor_class_identifier) |
| DHCP.UserClass, config_parse_dhcp_user_class, 0, offsetof(Network, dhcp_user_class) |
| DHCP.DUIDType, config_parse_duid_type, 0, offsetof(Network, duid) |
| DHCP.DUIDRawData, config_parse_duid_rawdata, 0, offsetof(Network, duid) |
| DHCP.RouteMetric, config_parse_unsigned, 0, offsetof(Network, dhcp_route_metric) |
| DHCP.RouteTable, config_parse_dhcp_route_table, 0, 0 |
| DHCP.UseTimezone, config_parse_bool, 0, offsetof(Network, dhcp_use_timezone) |
| DHCP.IAID, config_parse_iaid, 0, 0 |
| DHCP.ListenPort, config_parse_uint16, 0, offsetof(Network, dhcp_client_port) |
| DHCP.RapidCommit, config_parse_bool, 0, offsetof(Network, rapid_commit) |
| DHCP.ForceDHCPv6PDOtherInformation, config_parse_bool, 0, offsetof(Network, dhcp6_force_pd_other_information) |
| IPv6AcceptRA.UseDNS, config_parse_bool, 0, offsetof(Network, ipv6_accept_ra_use_dns) |
| IPv6AcceptRA.UseDomains, config_parse_dhcp_use_domains, 0, offsetof(Network, ipv6_accept_ra_use_domains) |
| IPv6AcceptRA.RouteTable, config_parse_uint32, 0, offsetof(Network, ipv6_accept_ra_route_table) |
| DHCPServer.MaxLeaseTimeSec, config_parse_sec, 0, offsetof(Network, dhcp_server_max_lease_time_usec) |
| DHCPServer.DefaultLeaseTimeSec, config_parse_sec, 0, offsetof(Network, dhcp_server_default_lease_time_usec) |
| DHCPServer.EmitDNS, config_parse_bool, 0, offsetof(Network, dhcp_server_emit_dns) |
| DHCPServer.DNS, config_parse_dhcp_server_dns, 0, 0 |
| DHCPServer.EmitNTP, config_parse_bool, 0, offsetof(Network, dhcp_server_emit_ntp) |
| DHCPServer.NTP, config_parse_dhcp_server_ntp, 0, 0 |
| DHCPServer.EmitRouter, config_parse_bool, 0, offsetof(Network, dhcp_server_emit_router) |
| DHCPServer.EmitTimezone, config_parse_bool, 0, offsetof(Network, dhcp_server_emit_timezone) |
| DHCPServer.Timezone, config_parse_timezone, 0, offsetof(Network, dhcp_server_timezone) |
| DHCPServer.PoolOffset, config_parse_uint32, 0, offsetof(Network, dhcp_server_pool_offset) |
| DHCPServer.PoolSize, config_parse_uint32, 0, offsetof(Network, dhcp_server_pool_size) |
| Bridge.Cost, config_parse_uint32, 0, offsetof(Network, cost) |
| Bridge.UseBPDU, config_parse_tristate, 0, offsetof(Network, use_bpdu) |
| Bridge.HairPin, config_parse_tristate, 0, offsetof(Network, hairpin) |
| Bridge.FastLeave, config_parse_tristate, 0, offsetof(Network, fast_leave) |
| Bridge.AllowPortToBeRoot, config_parse_tristate, 0, offsetof(Network, allow_port_to_be_root) |
| Bridge.UnicastFlood, config_parse_tristate, 0, offsetof(Network, unicast_flood) |
| Bridge.MulticastToUnicast, config_parse_tristate, 0, offsetof(Network, multicast_to_unicast) |
| Bridge.Priority, config_parse_bridge_port_priority, 0, offsetof(Network, priority) |
| BridgeFDB.MACAddress, config_parse_fdb_hwaddr, 0, 0 |
| BridgeFDB.VLANId, config_parse_fdb_vlan_id, 0, 0 |
| BridgeVLAN.PVID, config_parse_brvlan_pvid, 0, 0 |
| BridgeVLAN.VLAN, config_parse_brvlan_vlan, 0, 0 |
| BridgeVLAN.EgressUntagged, config_parse_brvlan_untagged, 0, 0 |
| Network.IPv6PrefixDelegation, config_parse_router_prefix_delegation, 0, 0 |
| IPv6PrefixDelegation.RouterLifetimeSec, config_parse_sec, 0, offsetof(Network, router_lifetime_usec) |
| IPv6PrefixDelegation.Managed, config_parse_bool, 0, offsetof(Network, router_managed) |
| IPv6PrefixDelegation.OtherInformation, config_parse_bool, 0, offsetof(Network, router_other_information) |
| IPv6PrefixDelegation.RouterPreference, config_parse_router_preference, 0, 0 |
| IPv6PrefixDelegation.EmitDNS, config_parse_bool, 0, offsetof(Network, router_emit_dns) |
| IPv6PrefixDelegation.DNS, config_parse_radv_dns, 0, 0 |
| IPv6PrefixDelegation.EmitDomains, config_parse_bool, 0, offsetof(Network, router_emit_domains) |
| IPv6PrefixDelegation.Domains, config_parse_radv_search_domains, 0, 0 |
| IPv6PrefixDelegation.DNSLifetimeSec, config_parse_sec, 0, offsetof(Network, router_dns_lifetime_usec) |
| IPv6Prefix.Prefix, config_parse_prefix, 0, 0 |
| IPv6Prefix.OnLink, config_parse_prefix_flags, 0, 0 |
| IPv6Prefix.AddressAutoconfiguration, config_parse_prefix_flags, 0, 0 |
| IPv6Prefix.ValidLifetimeSec, config_parse_prefix_lifetime, 0, 0 |
| IPv6Prefix.PreferredLifetimeSec, config_parse_prefix_lifetime, 0, 0 |
| CAN.BitRate, config_parse_si_size, 0, offsetof(Network, can_bitrate) |
| CAN.SamplePoint, config_parse_permille, 0, offsetof(Network, can_sample_point) |
| CAN.RestartSec, config_parse_sec, 0, offsetof(Network, can_restart_us) |
| /* backwards compatibility: do not add new entries to this section */ |
| Network.IPv4LL, config_parse_ipv4ll, 0, offsetof(Network, link_local) |
| DHCPv4.UseDNS, config_parse_bool, 0, offsetof(Network, dhcp_use_dns) |
| DHCPv4.UseMTU, config_parse_bool, 0, offsetof(Network, dhcp_use_mtu) |
| DHCPv4.UseHostname, config_parse_bool, 0, offsetof(Network, dhcp_use_hostname) |
| DHCP.UseDomainName, config_parse_dhcp_use_domains, 0, offsetof(Network, dhcp_use_domains) |
| DHCPv4.UseDomainName, config_parse_dhcp_use_domains, 0, offsetof(Network, dhcp_use_domains) |
| DHCPv4.CriticalConnection, config_parse_bool, 0, offsetof(Network, dhcp_critical) |