![Lennart Poettering](/assets/img/avatar_default.png)
Previously, .network files only knew a vaguely defined "Domains=" concept, for which the documentation declared it was the "DNS domain" for the network connection, without specifying what that means. With this the Domains setting is reworked, so that there are now "routing" domains and "search" domains. The former are to be used by resolved to route DNS request to specific network interfaces, the latter is to be used for searching single-label hostnames with (in addition to being used for routing). Both settings are configured in the "Domains=" setting. Normal domain names listed in it are now considered search domains (for compatibility with existing setups), while those prefixed with "~" are considered routing domains only. To route all lookups to a specific interface the routing domain "." may be used, referring to the root domain. An alternative syntax for this is the "*", as was already implemented before using the "wildcard" domain concept. This commit adds proper parsers for this new logic, and exposes this via the sd-network API. This information is not used by resolved yet, this will be added in a later commit.
110 lines
13 KiB
Plaintext
110 lines
13 KiB
Plaintext
%{
|
|
#include <stddef.h>
|
|
#include "conf-parser.h"
|
|
#include "networkd.h"
|
|
#include "network-internal.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_hwaddr, 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)
|
|
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_iec_size, 0, offsetof(Network, mtu)
|
|
Network.Description, config_parse_string, 0, offsetof(Network, description)
|
|
Network.Bridge, config_parse_netdev, 0, offsetof(Network, bridge)
|
|
Network.Bond, config_parse_netdev, 0, offsetof(Network, bond)
|
|
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.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_bool, 0, offsetof(Network, lldp)
|
|
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_strv, 0, offsetof(Network, dns)
|
|
Network.LLMNR, config_parse_resolve_support, 0, offsetof(Network, llmnr)
|
|
Network.MulticastDNS, config_parse_resolve_support, 0, offsetof(Network, mdns)
|
|
Network.DNSSEC, config_parse_dnssec_mode, 0, offsetof(Network, dnssec_mode)
|
|
Network.DNSSECNegativeTrustAnchors, config_parse_dnssec_negative_trust_anchors, 0, offsetof(Network, dnssec_negative_trust_anchors)
|
|
Network.NTP, config_parse_strv, 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.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.BindCarrier, config_parse_strv, 0, offsetof(Network, bind_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
|
|
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
|
|
DHCP.ClientIdentifier, config_parse_dhcp_client_identifier, 0, offsetof(Network, dhcp_client_identifier)
|
|
DHCP.UseDNS, config_parse_bool, 0, offsetof(Network, dhcp_dns)
|
|
DHCP.UseNTP, config_parse_bool, 0, offsetof(Network, dhcp_ntp)
|
|
DHCP.UseMTU, config_parse_bool, 0, offsetof(Network, dhcp_mtu)
|
|
DHCP.UseHostname, config_parse_bool, 0, offsetof(Network, dhcp_hostname)
|
|
DHCP.UseDomains, config_parse_bool, 0, offsetof(Network, dhcp_domains)
|
|
DHCP.UseRoutes, config_parse_bool, 0, offsetof(Network, dhcp_routes)
|
|
DHCP.SendHostname, config_parse_bool, 0, offsetof(Network, dhcp_sendhost)
|
|
DHCP.Hostname, config_parse_hostname, 0, offsetof(Network, 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.RouteMetric, config_parse_unsigned, 0, offsetof(Network, dhcp_route_metric)
|
|
DHCP.UseTimezone, config_parse_bool, 0, offsetof(Network, dhcp_timezone)
|
|
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.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_unsigned, 0, offsetof(Network, cost)
|
|
Bridge.UseBPDU, config_parse_bool, 0, offsetof(Network, use_bpdu)
|
|
Bridge.HairPin, config_parse_bool, 0, offsetof(Network, hairpin)
|
|
Bridge.FastLeave, config_parse_bool, 0, offsetof(Network, fast_leave)
|
|
Bridge.AllowPortToBeRoot, config_parse_bool, 0, offsetof(Network, allow_port_to_be_root)
|
|
Bridge.UnicastFlood, config_parse_bool, 0, offsetof(Network, unicast_flood)
|
|
BridgeFDB.MACAddress, config_parse_fdb_hwaddr, 0, 0
|
|
BridgeFDB.VLANId, config_parse_fdb_vlan_id, 0, 0
|
|
/* 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_dns)
|
|
DHCPv4.UseMTU, config_parse_bool, 0, offsetof(Network, dhcp_mtu)
|
|
DHCPv4.UseHostname, config_parse_bool, 0, offsetof(Network, dhcp_hostname)
|
|
DHCP.UseDomainName, config_parse_bool, 0, offsetof(Network, dhcp_domains)
|
|
DHCPv4.UseDomainName, config_parse_bool, 0, offsetof(Network, dhcp_domains)
|
|
DHCPv4.CriticalConnection, config_parse_bool, 0, offsetof(Network, dhcp_critical)
|