summaryrefslogtreecommitdiff
path: root/pimd/pim_msdp_socket.c
diff options
context:
space:
mode:
authorDonald Sharp <sharpd@cumulusnetworks.com>2017-06-10 15:05:31 -0400
committerDonald Sharp <sharpd@cumulusnetworks.com>2017-07-24 13:51:39 -0400
commit2267994ca9aa4ae69ce808bb8231f1b025fa5fba (patch)
tree05f6381da0a3d43ec5383c608a88ee174eb220da /pimd/pim_msdp_socket.c
parent7f1d002a040476e675ce7840256c0f3ca65b5194 (diff)
pimd: Bind msdp listen socket to vrf
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
Diffstat (limited to 'pimd/pim_msdp_socket.c')
-rw-r--r--pimd/pim_msdp_socket.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/pimd/pim_msdp_socket.c b/pimd/pim_msdp_socket.c
index ee3cc96980..b8c103fe27 100644
--- a/pimd/pim_msdp_socket.c
+++ b/pimd/pim_msdp_socket.c
@@ -150,6 +150,12 @@ int pim_msdp_sock_listen(struct pim_instance *pim)
sockopt_reuseaddr(sock);
sockopt_reuseport(sock);
+ if (pim->vrf_id != VRF_DEFAULT) {
+ struct interface *ifp =
+ if_lookup_by_name(pim->vrf->name, pim->vrf_id);
+ pim_socket_bind(sock, ifp);
+ }
+
if (pimd_privs.change(ZPRIVS_RAISE)) {
zlog_err("pim_msdp_socket: could not raise privs, %s",
safe_strerror(errno));