google / google/gvisor

Delay reachability confirmations to anycast addresses

Open
#2,242 0 comments 0 reactions 0 assignees View on GitHub
area: networking priority: p2 type: enhancement
Dominant language
Go
Stars
19.3k
Forks
2k
Avg merge
3d 5h
Merged PRs (30d)
264

Description

`MaxAnycastDelayTime` is the duration of time to delay before sending a reachability confirmation to an anycast address. Used by address resolution and the Neighbor Unreachability Detection algorithm (see RFC 4861 Sections 7.2 and 7.3).

From RFC 4861 7.2.4. Sending Solicited Neighbor Advertisements:
```
If the Target Address is an anycast address, the sender SHOULD delay
sending a response for a random time between 0 and
MAX_ANYCAST_DELAY_TIME seconds.
```

From RFC 4861 7.2.7. Anycast Neighbor Advertisements:
```
Nodes that have an anycast address assigned to an interface treat
them exactly the same as if they were unicast addresses with two
exceptions. First, Neighbor Advertisements sent in response to a
Neighbor Solicitation SHOULD be delayed by a random time between 0
and MAX_ANYCAST_DELAY_TIME to reduce the probability of network
congestion. Second, the Override flag in Neighbor Advertisements
SHOULD be set to 0, so that when multiple advertisements are
received, the first received advertisement is used rather than the
most recently received advertisement.
```

From RFC 4861 7.2.8. Proxy Neighbor Advertisements:
```
Finally, when sending a proxy advertisement in response to a Neighbor
Solicitation, the sender should delay its response by a random time
between 0 and MAX_ANYCAST_DELAY_TIME seconds to avoid collisions due
to multiple responses sent by several proxies. However, in some
cases (e.g., Mobile IPv6) where only one proxy is present, such delay
is not necessary.
```

This issue tracks the implementation of `MaxAnycastDelayTime`.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.