if (!link->network->ndisc_use_reachable_time)
return 0;
- /* Ignore the reachable time field of the RA header if the lifetime is zero. */
- r = sd_ndisc_router_get_lifetime(rt, NULL);
- if (r <= 0)
- return r;
-
r = sd_ndisc_router_get_reachable_time(rt, &reachable_time);
if (r < 0)
return log_link_warning_errno(link, r, "Failed to get reachable time from RA: %m");
if (!link->network->ndisc_use_retransmission_time)
return 0;
- /* Ignore the retransmission time field of the RA header if the lifetime is zero. */
- r = sd_ndisc_router_get_lifetime(rt, NULL);
- if (r <= 0)
- return r;
-
r = sd_ndisc_router_get_retransmission_time(rt, &retrans_time);
if (r < 0)
return log_link_warning_errno(link, r, "Failed to get retransmission time from RA: %m");
if (!link->network->ndisc_use_hop_limit)
return 0;
- /* Ignore the hop limit field of the RA header if the lifetime is zero. */
- r = sd_ndisc_router_get_lifetime(rt, NULL);
- if (r <= 0)
- return r;
-
r = sd_ndisc_router_get_hop_limit(rt, &hop_limit);
if (r < 0)
return log_link_warning_errno(link, r, "Failed to get hop limit from RA: %m");
if (!link->network->ndisc_use_mtu)
return 0;
- /* Ignore the MTU option if the lifetime is zero. */
- r = sd_ndisc_router_get_lifetime(rt, NULL);
- if (r <= 0)
- return r;
-
r = sd_ndisc_router_get_mtu(rt, &mtu);
if (r == -ENODATA)
return 0;
return sd_ndisc_stop(link->ndisc);
}
-
void ndisc_flush(Link *link) {
assert(link);