summaryrefslogtreecommitdiff
path: root/src/ndisc/nm-lndp-ndisc.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/ndisc/nm-lndp-ndisc.c')
-rw-r--r--src/ndisc/nm-lndp-ndisc.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/src/ndisc/nm-lndp-ndisc.c b/src/ndisc/nm-lndp-ndisc.c
index 5643c19286..9352a75352 100644
--- a/src/ndisc/nm-lndp-ndisc.c
+++ b/src/ndisc/nm-lndp-ndisc.c
@@ -116,6 +116,7 @@ receive_ra (struct ndp *ndp, struct ndp_msg *msg, gpointer user_data)
gint32 now = nm_utils_get_monotonic_timestamp_s ();
int offset;
int hop_limit;
+ guint32 val;
/* Router discovery is subject to the following RFC documents:
*
@@ -294,6 +295,18 @@ receive_ra (struct ndp *ndp, struct ndp_msg *msg, gpointer user_data)
changed |= NM_NDISC_CONFIG_HOP_LIMIT;
}
+ val = ndp_msgra_reachable_time (msgra);
+ if (val && rdata->public.reachable_time_ms != val) {
+ rdata->public.reachable_time_ms = val;
+ changed |= NM_NDISC_CONFIG_REACHABLE_TIME;
+ }
+
+ val = ndp_msgra_retransmit_time (msgra);
+ if (val && rdata->public.retrans_timer_ms != val) {
+ rdata->public.retrans_timer_ms = val;
+ changed |= NM_NDISC_CONFIG_RETRANS_TIMER;
+ }
+
/* MTU */
ndp_msg_opt_for_each_offset(offset, msg, NDP_MSG_OPT_MTU) {
guint32 mtu = ndp_msg_opt_mtu(msg, offset);