The BGP unnumbered codebase has some interface lifecycle handling, which was introduced primarily to handle the scenario where nexus sends mgd config for an unnumbered interface which hasn't yet been created in the underlying OS.
However, this implementation has gaps:
- If the OS interface were to be deleted, the active interface doesn't go back into the pending state
- If the OS interface were to have its ifindex / scope_id change (e.g. upon OS interface deletion/re-creation), this is not detected and the cache is not updated (meaning BGP may keep trying to bind its TCP sockets to an old/wrong/invalid/missing ifindex).
These issues haven't been observed/reported yet, but they are real gaps in the codebase which should be handled.
The BGP unnumbered codebase has some interface lifecycle handling, which was introduced primarily to handle the scenario where nexus sends mgd config for an unnumbered interface which hasn't yet been created in the underlying OS.
However, this implementation has gaps:
These issues haven't been observed/reported yet, but they are real gaps in the codebase which should be handled.