Skip to content

BGP unnumbered doesn't handle active interfaces state changes #801

Description

@taspelund

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:

  1. If the OS interface were to be deleted, the active interface doesn't go back into the pending state
  2. 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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    BugbgpBorder Gateway ProtocolmgdMaghemite daemonneeds testingrustPull requests that update rust code

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions