diff options
| author | Nathan Bahr <nbahr@atcorp.com> | 2025-02-21 17:55:16 +0000 |
|---|---|---|
| committer | Mergify <37929162+mergify[bot]@users.noreply.github.com> | 2025-02-24 18:55:16 +0000 |
| commit | 76e4076d26dfbcf22fefd1eaecb3a490b57d2385 (patch) | |
| tree | 5e030ec17eb30e7b1f8f4a028b0f196ac0afd69f /pimd/pim_autorp.c | |
| parent | 24dbcbb31ee5edd79c0ed309e728d6758b8b0e76 (diff) | |
pim: Fix vrf binding of autorp and mroute socket
Bind the autorp socket to the vrf device.
Also fixed mroute socket to use vrf_bind instead of directly
setting the socket option.
Signed-off-by: Nathan Bahr <nbahr@atcorp.com>
(cherry picked from commit 7e181a771c2e525aeda6e8f6c2d58e9ee2503949)
Diffstat (limited to 'pimd/pim_autorp.c')
| -rw-r--r-- | pimd/pim_autorp.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/pimd/pim_autorp.c b/pimd/pim_autorp.c index dc077dbbd6..7bc28ff819 100644 --- a/pimd/pim_autorp.c +++ b/pimd/pim_autorp.c @@ -980,6 +980,13 @@ static bool pim_autorp_socket_enable(struct pim_autorp *autorp) return false; } + if (vrf_bind(autorp->pim->vrf->vrf_id, fd, NULL)) { + zlog_warn("Could not bind autorp socket to vrf fd=%d: vrf_id=%d: errno=%d: %s", + fd, autorp->pim->vrf->vrf_id, errno, safe_strerror(errno)); + close(fd); + return false; + } + if (!pim_autorp_setup(fd)) { zlog_warn("Could not setup autorp socket fd=%d: errno=%d: %s", fd, errno, safe_strerror(errno)); @@ -1549,7 +1556,10 @@ void pim_autorp_init(struct pim_instance *pim) if (PIM_DEBUG_AUTORP) zlog_debug("%s: AutoRP Initialized", __func__); +} +void pim_autorp_enable(struct pim_instance *pim) +{ /* Start AutoRP discovery by default on startup */ pim_autorp_start_discovery(pim); } |
