Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Reclaim multicast addresses #1

Open
jvmk opened this issue Sep 20, 2021 · 0 comments · May be fixed by #2
Open

Reclaim multicast addresses #1

jvmk opened this issue Sep 20, 2021 · 0 comments · May be fixed by #2
Labels
enhancement New feature or request

Comments

@jvmk
Copy link

jvmk commented Sep 20, 2021

Issue

In the current implementation, whenever a multicast address m is allocated for a unicast flow u, that allocation is infinite. That is, the translator never reclaims m (to re-use it for a different unicast flow), even if u terminates (as in no more packets pertaining to u are (ever) received at the translator). As a result, the translator will eventually run out of multicast addresses.

Suggested enhancement

The translator should evict a unicast-to-multicast address mapping from its "Forwarding Information Base" (FIB) when it detects that the unicast flow has terminated, and make the multicast address available for re-use. This could be implemented by continuously logging the timestamp of the last packet received for each unicast flow, and then periodically checking these timestamps against the current time and evicting all entries that are not within some threshold of the current time.

These periodic checks should be performed on a separate worker thread so as to not slow down the thread responsible for translating inbound unicast to multicast. Care must be taken to minimize the amount of time this worker thread locks the FIB (to not slow down any ongoing translations), while still ensuring proper synchronization.

@jvmk jvmk added the enhancement New feature or request label Sep 20, 2021
@Laur04 Laur04 linked a pull request Apr 10, 2022 that will close this issue
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant