]>
Commit | Line | Data |
---|---|---|
c0dda186 | 1 | %{ |
4831981d SL |
2 | #if __GNUC__ >= 7 |
3 | _Pragma("GCC diagnostic ignored \"-Wimplicit-fallthrough\"") | |
4 | #endif | |
c0dda186 TG |
5 | #include <stddef.h> |
6 | #include "conf-parser.h" | |
0fbddd04 | 7 | #include "network-internal.h" |
413708d1 | 8 | #include "networkd-conf.h" |
e520ce64 | 9 | #include "networkd-ndisc.h" |
23f53b99 | 10 | #include "networkd-network.h" |
13b498f9 | 11 | #include "vlan-util.h" |
c0dda186 TG |
12 | %} |
13 | struct ConfigPerfItem; | |
14 | %null_strings | |
15 | %language=ANSI-C | |
16 | %define slot-name section_and_lvalue | |
17 | %define hash-function-name network_network_gperf_hash | |
18 | %define lookup-function-name network_network_gperf_lookup | |
19 | %readonly-tables | |
20 | %omit-struct-type | |
21 | %struct-type | |
22 | %includes | |
23 | %% | |
e57319dd | 24 | Match.MACAddress, config_parse_hwaddrs, 0, offsetof(Network, match_mac) |
54a84237 YW |
25 | Match.Path, config_parse_match_strv, 0, offsetof(Network, match_path) |
26 | Match.Driver, config_parse_match_strv, 0, offsetof(Network, match_driver) | |
27 | Match.Type, config_parse_match_strv, 0, offsetof(Network, match_type) | |
28 | Match.Name, config_parse_match_ifnames, 0, offsetof(Network, match_name) | |
44005bfb | 29 | Match.Property, config_parse_match_property, 0, offsetof(Network, match_property) |
e57319dd YW |
30 | Match.Host, config_parse_net_condition, CONDITION_HOST, offsetof(Network, conditions) |
31 | Match.Virtualization, config_parse_net_condition, CONDITION_VIRTUALIZATION, offsetof(Network, conditions) | |
32 | Match.KernelCommandLine, config_parse_net_condition, CONDITION_KERNEL_COMMAND_LINE, offsetof(Network, conditions) | |
33 | Match.KernelVersion, config_parse_net_condition, CONDITION_KERNEL_VERSION, offsetof(Network, conditions) | |
34 | Match.Architecture, config_parse_net_condition, CONDITION_ARCHITECTURE, offsetof(Network, conditions) | |
35 | Link.MACAddress, config_parse_hwaddr, 0, offsetof(Network, mac) | |
36 | Link.MTUBytes, config_parse_mtu, AF_UNSPEC, offsetof(Network, mtu) | |
37 | Link.ARP, config_parse_tristate, 0, offsetof(Network, arp) | |
38 | Link.Multicast, config_parse_tristate, 0, offsetof(Network, multicast) | |
39 | Link.AllMulticast, config_parse_tristate, 0, offsetof(Network, allmulticast) | |
40 | Link.Unmanaged, config_parse_bool, 0, offsetof(Network, unmanaged) | |
41 | Link.RequiredForOnline, config_parse_required_for_online, 0, 0 | |
42 | Network.Description, config_parse_string, 0, offsetof(Network, description) | |
43 | Network.Bridge, config_parse_ifname, 0, offsetof(Network, bridge_name) | |
44 | Network.Bond, config_parse_ifname, 0, offsetof(Network, bond_name) | |
45 | Network.VLAN, config_parse_stacked_netdev, NETDEV_KIND_VLAN, offsetof(Network, stacked_netdev_names) | |
46 | Network.MACVLAN, config_parse_stacked_netdev, NETDEV_KIND_MACVLAN, offsetof(Network, stacked_netdev_names) | |
47 | Network.MACVTAP, config_parse_stacked_netdev, NETDEV_KIND_MACVTAP, offsetof(Network, stacked_netdev_names) | |
48 | Network.IPVLAN, config_parse_stacked_netdev, NETDEV_KIND_IPVLAN, offsetof(Network, stacked_netdev_names) | |
69c317a0 | 49 | Network.IPVTAP, config_parse_stacked_netdev, NETDEV_KIND_IPVTAP, offsetof(Network, stacked_netdev_names) |
e57319dd YW |
50 | Network.VXLAN, config_parse_stacked_netdev, NETDEV_KIND_VXLAN, offsetof(Network, stacked_netdev_names) |
51 | Network.L2TP, config_parse_stacked_netdev, NETDEV_KIND_L2TP, offsetof(Network, stacked_netdev_names) | |
52 | Network.MACsec, config_parse_stacked_netdev, NETDEV_KIND_MACSEC, offsetof(Network, stacked_netdev_names) | |
53 | Network.Tunnel, config_parse_stacked_netdev, _NETDEV_KIND_TUNNEL, offsetof(Network, stacked_netdev_names) | |
54 | Network.VRF, config_parse_ifname, 0, offsetof(Network, vrf_name) | |
55 | Network.DHCP, config_parse_dhcp, 0, offsetof(Network, dhcp) | |
56 | Network.DHCPServer, config_parse_bool, 0, offsetof(Network, dhcp_server) | |
e800fd24 | 57 | Network.LinkLocalAddressing, config_parse_link_local_address_family_boolean, 0, offsetof(Network, link_local) |
e57319dd | 58 | Network.IPv4LLRoute, config_parse_bool, 0, offsetof(Network, ipv4ll_route) |
5d5003ab | 59 | Network.DefaultRouteOnDevice, config_parse_bool, 0, offsetof(Network, default_route_on_device) |
e57319dd YW |
60 | Network.IPv6Token, config_parse_ipv6token, 0, offsetof(Network, ipv6_token) |
61 | Network.LLDP, config_parse_lldp_mode, 0, offsetof(Network, lldp_mode) | |
62 | Network.EmitLLDP, config_parse_lldp_emit, 0, offsetof(Network, lldp_emit) | |
63 | Network.Address, config_parse_address, 0, 0 | |
64 | Network.Gateway, config_parse_gateway, 0, 0 | |
65 | Network.Domains, config_parse_domains, 0, 0 | |
66 | Network.DNS, config_parse_dns, 0, 0 | |
67 | Network.DNSDefaultRoute, config_parse_tristate, 0, offsetof(Network, dns_default_route) | |
68 | Network.LLMNR, config_parse_resolve_support, 0, offsetof(Network, llmnr) | |
69 | Network.MulticastDNS, config_parse_resolve_support, 0, offsetof(Network, mdns) | |
70 | Network.DNSOverTLS, config_parse_dns_over_tls_mode, 0, offsetof(Network, dns_over_tls_mode) | |
71 | Network.DNSSEC, config_parse_dnssec_mode, 0, offsetof(Network, dnssec_mode) | |
72 | Network.DNSSECNegativeTrustAnchors, config_parse_dnssec_negative_trust_anchors, 0, 0 | |
73 | Network.NTP, config_parse_ntp, 0, offsetof(Network, ntp) | |
74 | Network.IPForward, config_parse_address_family_boolean_with_kernel, 0, offsetof(Network, ip_forward) | |
75 | Network.IPMasquerade, config_parse_bool, 0, offsetof(Network, ip_masquerade) | |
76 | Network.IPv6PrivacyExtensions, config_parse_ipv6_privacy_extensions, 0, offsetof(Network, ipv6_privacy_extensions) | |
77 | Network.IPv6AcceptRA, config_parse_tristate, 0, offsetof(Network, ipv6_accept_ra) | |
78 | Network.IPv6AcceptRouterAdvertisements, config_parse_tristate, 0, offsetof(Network, ipv6_accept_ra) | |
79 | Network.IPv6DuplicateAddressDetection, config_parse_int, 0, offsetof(Network, ipv6_dad_transmits) | |
80 | Network.IPv6HopLimit, config_parse_int, 0, offsetof(Network, ipv6_hop_limit) | |
81 | Network.IPv6ProxyNDP, config_parse_tristate, 0, offsetof(Network, ipv6_proxy_ndp) | |
82 | Network.IPv6MTUBytes, config_parse_mtu, AF_INET6, offsetof(Network, ipv6_mtu) | |
83 | Network.ActiveSlave, config_parse_bool, 0, offsetof(Network, active_slave) | |
84 | Network.PrimarySlave, config_parse_bool, 0, offsetof(Network, primary_slave) | |
85 | Network.IPv4ProxyARP, config_parse_tristate, 0, offsetof(Network, proxy_arp) | |
86 | Network.ProxyARP, config_parse_tristate, 0, offsetof(Network, proxy_arp) | |
87 | Network.IPv6ProxyNDPAddress, config_parse_ipv6_proxy_ndp_address, 0, 0 | |
88 | Network.BindCarrier, config_parse_strv, 0, offsetof(Network, bind_carrier) | |
89 | Network.ConfigureWithoutCarrier, config_parse_bool, 0, offsetof(Network, configure_without_carrier) | |
90 | Network.IgnoreCarrierLoss, config_parse_bool, 0, offsetof(Network, ignore_carrier_loss) | |
7da377ef | 91 | Network.KeepConfiguration, config_parse_keep_configuration, 0, offsetof(Network, keep_configuration) |
e57319dd YW |
92 | Address.Address, config_parse_address, 0, 0 |
93 | Address.Peer, config_parse_address, 0, 0 | |
94 | Address.Broadcast, config_parse_broadcast, 0, 0 | |
95 | Address.Label, config_parse_label, 0, 0 | |
96 | Address.PreferredLifetime, config_parse_lifetime, 0, 0 | |
97 | Address.HomeAddress, config_parse_address_flags, 0, 0 | |
98 | Address.DuplicateAddressDetection, config_parse_address_flags, 0, 0 | |
99 | Address.ManageTemporaryAddress, config_parse_address_flags, 0, 0 | |
100 | Address.PrefixRoute, config_parse_address_flags, 0, 0 | |
101 | Address.AutoJoin, config_parse_address_flags, 0, 0 | |
102 | Address.Scope, config_parse_address_scope, 0, 0 | |
103 | IPv6AddressLabel.Prefix, config_parse_address_label_prefix, 0, 0 | |
104 | IPv6AddressLabel.Label, config_parse_address_label, 0, 0 | |
105 | Neighbor.Address, config_parse_neighbor_address, 0, 0 | |
106 | Neighbor.MACAddress, config_parse_neighbor_hwaddr, 0, 0 | |
107 | RoutingPolicyRule.TypeOfService, config_parse_routing_policy_rule_tos, 0, 0 | |
108 | RoutingPolicyRule.Priority, config_parse_routing_policy_rule_priority, 0, 0 | |
109 | RoutingPolicyRule.Table, config_parse_routing_policy_rule_table, 0, 0 | |
110 | RoutingPolicyRule.FirewallMark, config_parse_routing_policy_rule_fwmark_mask, 0, 0 | |
111 | RoutingPolicyRule.From, config_parse_routing_policy_rule_prefix, 0, 0 | |
112 | RoutingPolicyRule.To, config_parse_routing_policy_rule_prefix, 0, 0 | |
113 | RoutingPolicyRule.IncomingInterface, config_parse_routing_policy_rule_device, 0, 0 | |
114 | RoutingPolicyRule.OutgoingInterface, config_parse_routing_policy_rule_device, 0, 0 | |
115 | RoutingPolicyRule.IPProtocol, config_parse_routing_policy_rule_ip_protocol, 0, 0 | |
116 | RoutingPolicyRule.SourcePort, config_parse_routing_policy_rule_port_range, 0, 0 | |
117 | RoutingPolicyRule.DestinationPort, config_parse_routing_policy_rule_port_range, 0, 0 | |
118 | RoutingPolicyRule.InvertRule, config_parse_routing_policy_rule_invert, 0, 0 | |
119 | Route.Gateway, config_parse_gateway, 0, 0 | |
120 | Route.Destination, config_parse_destination, 0, 0 | |
121 | Route.Source, config_parse_destination, 0, 0 | |
122 | Route.Metric, config_parse_route_priority, 0, 0 | |
123 | Route.Scope, config_parse_route_scope, 0, 0 | |
124 | Route.PreferredSource, config_parse_preferred_src, 0, 0 | |
125 | Route.Table, config_parse_route_table, 0, 0 | |
126 | Route.MTUBytes, config_parse_route_mtu, AF_UNSPEC, 0 | |
127 | Route.GatewayOnLink, config_parse_gateway_onlink, 0, 0 | |
128 | Route.GatewayOnlink, config_parse_gateway_onlink, 0, 0 | |
129 | Route.IPv6Preference, config_parse_ipv6_route_preference, 0, 0 | |
130 | Route.Protocol, config_parse_route_protocol, 0, 0 | |
131 | Route.Type, config_parse_route_type, 0, 0 | |
132 | Route.InitialCongestionWindow, config_parse_tcp_window, 0, 0 | |
133 | Route.InitialAdvertisedReceiveWindow, config_parse_tcp_window, 0, 0 | |
134 | Route.QuickAck, config_parse_quickack, 0, 0 | |
633c7258 | 135 | Route.FastOpenNoCookie, config_parse_fast_open_no_cookie, 0, 0 |
9b88f20a | 136 | Route.TTLPropagate, config_parse_route_ttl_propagate, 0, 0 |
e57319dd YW |
137 | DHCP.ClientIdentifier, config_parse_dhcp_client_identifier, 0, offsetof(Network, dhcp_client_identifier) |
138 | DHCP.UseDNS, config_parse_bool, 0, offsetof(Network, dhcp_use_dns) | |
139 | DHCP.UseNTP, config_parse_bool, 0, offsetof(Network, dhcp_use_ntp) | |
140 | DHCP.UseMTU, config_parse_bool, 0, offsetof(Network, dhcp_use_mtu) | |
141 | DHCP.UseHostname, config_parse_bool, 0, offsetof(Network, dhcp_use_hostname) | |
142 | DHCP.UseDomains, config_parse_dhcp_use_domains, 0, offsetof(Network, dhcp_use_domains) | |
143 | DHCP.UseRoutes, config_parse_bool, 0, offsetof(Network, dhcp_use_routes) | |
144 | DHCP.Anonymize, config_parse_bool, 0, offsetof(Network, dhcp_anonymize) | |
145 | DHCP.SendHostname, config_parse_bool, 0, offsetof(Network, dhcp_send_hostname) | |
146 | DHCP.Hostname, config_parse_hostname, 0, offsetof(Network, dhcp_hostname) | |
147 | DHCP.RequestBroadcast, config_parse_bool, 0, offsetof(Network, dhcp_broadcast) | |
7da377ef | 148 | DHCP.CriticalConnection, config_parse_tristate, 0, offsetof(Network, dhcp_critical) /* deprecated */ |
e57319dd | 149 | DHCP.VendorClassIdentifier, config_parse_string, 0, offsetof(Network, dhcp_vendor_class_identifier) |
715cedfb | 150 | DHCP.MaxAttempts, config_parse_dhcp_max_attempts, 0, 0 |
e57319dd YW |
151 | DHCP.UserClass, config_parse_dhcp_user_class, 0, offsetof(Network, dhcp_user_class) |
152 | DHCP.DUIDType, config_parse_duid_type, 0, offsetof(Network, duid) | |
153 | DHCP.DUIDRawData, config_parse_duid_rawdata, 0, offsetof(Network, duid) | |
154 | DHCP.RouteMetric, config_parse_unsigned, 0, offsetof(Network, dhcp_route_metric) | |
155 | DHCP.RouteTable, config_parse_section_route_table, 0, 0 | |
156 | DHCP.UseTimezone, config_parse_bool, 0, offsetof(Network, dhcp_use_timezone) | |
157 | DHCP.IAID, config_parse_iaid, 0, 0 | |
158 | DHCP.ListenPort, config_parse_uint16, 0, offsetof(Network, dhcp_client_port) | |
1501b429 | 159 | DHCP.SendRelease, config_parse_bool, 0, offsetof(Network, dhcp_send_release) |
e57319dd | 160 | DHCP.RapidCommit, config_parse_bool, 0, offsetof(Network, rapid_commit) |
727b5734 | 161 | DHCP.BlackList, config_parse_dhcp_black_listed_ip_address, 0, 0 |
e57319dd YW |
162 | DHCP.ForceDHCPv6PDOtherInformation, config_parse_bool, 0, offsetof(Network, dhcp6_force_pd_other_information) |
163 | IPv6AcceptRA.UseAutonomousPrefix, config_parse_bool, 0, offsetof(Network, ipv6_accept_ra_use_autonomous_prefix) | |
164 | IPv6AcceptRA.UseOnLinkPrefix, config_parse_bool, 0, offsetof(Network, ipv6_accept_ra_use_onlink_prefix) | |
165 | IPv6AcceptRA.UseDNS, config_parse_bool, 0, offsetof(Network, ipv6_accept_ra_use_dns) | |
166 | IPv6AcceptRA.UseDomains, config_parse_dhcp_use_domains, 0, offsetof(Network, ipv6_accept_ra_use_domains) | |
167 | IPv6AcceptRA.RouteTable, config_parse_section_route_table, 0, 0 | |
e520ce64 | 168 | IPv6AcceptRA.BlackList, config_parse_ndisc_black_listed_prefix, 0, 0 |
e57319dd YW |
169 | DHCPServer.MaxLeaseTimeSec, config_parse_sec, 0, offsetof(Network, dhcp_server_max_lease_time_usec) |
170 | DHCPServer.DefaultLeaseTimeSec, config_parse_sec, 0, offsetof(Network, dhcp_server_default_lease_time_usec) | |
171 | DHCPServer.EmitDNS, config_parse_bool, 0, offsetof(Network, dhcp_server_emit_dns) | |
172 | DHCPServer.DNS, config_parse_dhcp_server_dns, 0, 0 | |
173 | DHCPServer.EmitNTP, config_parse_bool, 0, offsetof(Network, dhcp_server_emit_ntp) | |
174 | DHCPServer.NTP, config_parse_dhcp_server_ntp, 0, 0 | |
175 | DHCPServer.EmitRouter, config_parse_bool, 0, offsetof(Network, dhcp_server_emit_router) | |
176 | DHCPServer.EmitTimezone, config_parse_bool, 0, offsetof(Network, dhcp_server_emit_timezone) | |
177 | DHCPServer.Timezone, config_parse_timezone, 0, offsetof(Network, dhcp_server_timezone) | |
178 | DHCPServer.PoolOffset, config_parse_uint32, 0, offsetof(Network, dhcp_server_pool_offset) | |
179 | DHCPServer.PoolSize, config_parse_uint32, 0, offsetof(Network, dhcp_server_pool_size) | |
180 | Bridge.Cost, config_parse_uint32, 0, offsetof(Network, cost) | |
181 | Bridge.UseBPDU, config_parse_tristate, 0, offsetof(Network, use_bpdu) | |
182 | Bridge.HairPin, config_parse_tristate, 0, offsetof(Network, hairpin) | |
183 | Bridge.FastLeave, config_parse_tristate, 0, offsetof(Network, fast_leave) | |
184 | Bridge.AllowPortToBeRoot, config_parse_tristate, 0, offsetof(Network, allow_port_to_be_root) | |
185 | Bridge.UnicastFlood, config_parse_tristate, 0, offsetof(Network, unicast_flood) | |
186 | Bridge.MulticastFlood, config_parse_tristate, 0, offsetof(Network, multicast_flood) | |
187 | Bridge.MulticastToUnicast, config_parse_tristate, 0, offsetof(Network, multicast_to_unicast) | |
188 | Bridge.NeighborSuppression, config_parse_tristate, 0, offsetof(Network, neighbor_suppression) | |
189 | Bridge.Learning, config_parse_tristate, 0, offsetof(Network, learning) | |
1087623b SS |
190 | Bridge.ProxyARP, config_parse_tristate, 0, offsetof(Network, bridge_proxy_arp) |
191 | Bridge.ProxyARPWiFi, config_parse_tristate, 0, offsetof(Network, bridge_proxy_arp_wifi) | |
e57319dd | 192 | Bridge.Priority, config_parse_bridge_port_priority, 0, offsetof(Network, priority) |
0fadb2a4 | 193 | Bridge.MulticastRouter, config_parse_multicast_router, 0, offsetof(Network, multicast_router) |
e57319dd YW |
194 | BridgeFDB.MACAddress, config_parse_fdb_hwaddr, 0, 0 |
195 | BridgeFDB.VLANId, config_parse_fdb_vlan_id, 0, 0 | |
c2c2793f | 196 | BridgeFDB.Destination, config_parse_fdb_destination, 0, 0 |
61b824c5 | 197 | BridgeFDB.VNI, config_parse_fdb_vxlan_vni, 0, 0 |
bdb397ed | 198 | BridgeFDB.AssociatedWith, config_parse_fdb_ntf_flags, 0, 0 |
e57319dd YW |
199 | BridgeVLAN.PVID, config_parse_brvlan_pvid, 0, 0 |
200 | BridgeVLAN.VLAN, config_parse_brvlan_vlan, 0, 0 | |
201 | BridgeVLAN.EgressUntagged, config_parse_brvlan_untagged, 0, 0 | |
202 | Network.IPv6PrefixDelegation, config_parse_router_prefix_delegation, 0, 0 | |
203 | IPv6PrefixDelegation.RouterLifetimeSec, config_parse_sec, 0, offsetof(Network, router_lifetime_usec) | |
204 | IPv6PrefixDelegation.Managed, config_parse_bool, 0, offsetof(Network, router_managed) | |
205 | IPv6PrefixDelegation.OtherInformation, config_parse_bool, 0, offsetof(Network, router_other_information) | |
206 | IPv6PrefixDelegation.RouterPreference, config_parse_router_preference, 0, 0 | |
207 | IPv6PrefixDelegation.EmitDNS, config_parse_bool, 0, offsetof(Network, router_emit_dns) | |
208 | IPv6PrefixDelegation.DNS, config_parse_radv_dns, 0, 0 | |
209 | IPv6PrefixDelegation.EmitDomains, config_parse_bool, 0, offsetof(Network, router_emit_domains) | |
210 | IPv6PrefixDelegation.Domains, config_parse_radv_search_domains, 0, 0 | |
211 | IPv6PrefixDelegation.DNSLifetimeSec, config_parse_sec, 0, offsetof(Network, router_dns_lifetime_usec) | |
212 | IPv6Prefix.Prefix, config_parse_prefix, 0, 0 | |
213 | IPv6Prefix.OnLink, config_parse_prefix_flags, 0, 0 | |
214 | IPv6Prefix.AddressAutoconfiguration, config_parse_prefix_flags, 0, 0 | |
215 | IPv6Prefix.ValidLifetimeSec, config_parse_prefix_lifetime, 0, 0 | |
216 | IPv6Prefix.PreferredLifetimeSec, config_parse_prefix_lifetime, 0, 0 | |
217 | CAN.BitRate, config_parse_si_size, 0, offsetof(Network, can_bitrate) | |
218 | CAN.SamplePoint, config_parse_permille, 0, offsetof(Network, can_sample_point) | |
219 | CAN.RestartSec, config_parse_sec, 0, offsetof(Network, can_restart_us) | |
220 | CAN.TripleSampling, config_parse_tristate, 0, offsetof(Network, can_triple_sampling) | |
4cc7a82c | 221 | /* backwards compatibility: do not add new entries to this section */ |
e57319dd YW |
222 | Network.IPv4LL, config_parse_ipv4ll, 0, offsetof(Network, link_local) |
223 | DHCPv4.UseDNS, config_parse_bool, 0, offsetof(Network, dhcp_use_dns) | |
224 | DHCPv4.UseMTU, config_parse_bool, 0, offsetof(Network, dhcp_use_mtu) | |
225 | DHCPv4.UseHostname, config_parse_bool, 0, offsetof(Network, dhcp_use_hostname) | |
226 | DHCP.UseDomainName, config_parse_dhcp_use_domains, 0, offsetof(Network, dhcp_use_domains) | |
227 | DHCPv4.UseDomainName, config_parse_dhcp_use_domains, 0, offsetof(Network, dhcp_use_domains) | |
228 | DHCPv4.CriticalConnection, config_parse_bool, 0, offsetof(Network, dhcp_critical) |