summaryrefslogtreecommitdiff
path: root/pimd/pim_autorp.c
diff options
context:
space:
mode:
authorDonald Sharp <donaldsharp72@gmail.com>2025-02-24 13:53:39 -0500
committerGitHub <noreply@github.com>2025-02-24 13:53:39 -0500
commit777aae08cfb5d85b98fe24317565e01b71fc7580 (patch)
tree2f97ae91f92f051548ba3fb8e7ca0b41bfa3ddbd /pimd/pim_autorp.c
parent231110aefd34bd72b84dfd72a1aabdecda86cfaf (diff)
parent7e181a771c2e525aeda6e8f6c2d58e9ee2503949 (diff)
Merge pull request #18226 from nabahr/pim-vrf-bind
pim: Fix vrf binding of autorp and mroute socket
Diffstat (limited to 'pimd/pim_autorp.c')
-rw-r--r--pimd/pim_autorp.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/pimd/pim_autorp.c b/pimd/pim_autorp.c
index 09bbf43885..d3f3517efd 100644
--- a/pimd/pim_autorp.c
+++ b/pimd/pim_autorp.c
@@ -981,6 +981,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));
@@ -1550,7 +1557,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);
}