mirror of
https://github.com/systemd/systemd-stable.git
synced 2024-12-23 17:34:00 +03:00
networkd: Allow specifying RouteTable for RAs
This commit is contained in:
parent
f594276b86
commit
2ba31d29a5
@ -966,6 +966,15 @@
|
||||
project='man-pages'><refentrytitle>resolv.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry>.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><varname>RouteTable=<replaceable>num</replaceable></varname></term>
|
||||
<listitem>
|
||||
<para>The table identifier for dhcp routes (a number between 1 and 4294967295, or 0 to unset).
|
||||
The table can be retrieved using <command>ip route show table <replaceable>num</replaceable></command>.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
</refsect1>
|
||||
|
||||
|
@ -94,7 +94,7 @@ static void ndisc_router_process_default(Link *link, sd_ndisc_router *rt) {
|
||||
}
|
||||
|
||||
route->family = AF_INET6;
|
||||
route->table = RT_TABLE_MAIN;
|
||||
route->table = link->network->ipv6_accept_ra_route_table;
|
||||
route->protocol = RTPROT_RA;
|
||||
route->pref = preference;
|
||||
route->gw.in6 = gateway;
|
||||
@ -214,7 +214,7 @@ static void ndisc_router_process_onlink_prefix(Link *link, sd_ndisc_router *rt)
|
||||
}
|
||||
|
||||
route->family = AF_INET6;
|
||||
route->table = RT_TABLE_MAIN;
|
||||
route->table = link->network->ipv6_accept_ra_route_table;
|
||||
route->protocol = RTPROT_RA;
|
||||
route->flags = RTM_F_PREFIX;
|
||||
route->dst_prefixlen = prefixlen;
|
||||
@ -285,7 +285,7 @@ static void ndisc_router_process_route(Link *link, sd_ndisc_router *rt) {
|
||||
}
|
||||
|
||||
route->family = AF_INET6;
|
||||
route->table = RT_TABLE_MAIN;
|
||||
route->table = link->network->ipv6_accept_ra_route_table;
|
||||
route->protocol = RTPROT_RA;
|
||||
route->pref = preference;
|
||||
route->gw.in6 = gateway;
|
||||
|
@ -97,6 +97,7 @@ DHCP.UseTimezone, config_parse_bool,
|
||||
DHCP.IAID, config_parse_iaid, 0, offsetof(Network, iaid)
|
||||
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_dhcp_route_table, 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)
|
||||
|
@ -138,6 +138,7 @@ static int network_load_one(Manager *manager, const char *filename) {
|
||||
network->proxy_arp = -1;
|
||||
network->arp = -1;
|
||||
network->ipv6_accept_ra_use_dns = true;
|
||||
network->ipv6_accept_ra_route_table = RT_TABLE_MAIN;
|
||||
|
||||
dropin_dirname = strjoina(network->name, ".network.d");
|
||||
|
||||
|
@ -167,6 +167,7 @@ struct Network {
|
||||
|
||||
bool ipv6_accept_ra_use_dns;
|
||||
DHCPUseDomains ipv6_accept_ra_use_domains;
|
||||
uint32_t ipv6_accept_ra_route_table;
|
||||
|
||||
union in_addr_union ipv6_token;
|
||||
IPv6PrivacyExtensions ipv6_privacy_extensions;
|
||||
|
Loading…
Reference in New Issue
Block a user