diff options
| author | Donald Sharp <sharpd@cumulusnetworks.com> | 2017-06-07 16:24:07 -0400 |
|---|---|---|
| committer | Donald Sharp <sharpd@cumulusnetworks.com> | 2017-07-24 13:51:39 -0400 |
| commit | 62fde40935d0493644e5c847d852e86f684f3380 (patch) | |
| tree | c19be80c079f37992e424c6c3fc4b0340ee6fc30 /pimd/pim_msdp_socket.c | |
| parent | 56243c3a4ae215314efd6f478034c00e287de685 (diff) | |
pimd: For non-default vrf's bind the msdp socket to the vrf
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
Diffstat (limited to 'pimd/pim_msdp_socket.c')
| -rw-r--r-- | pimd/pim_msdp_socket.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/pimd/pim_msdp_socket.c b/pimd/pim_msdp_socket.c index 897a1b3d04..ee3cc96980 100644 --- a/pimd/pim_msdp_socket.c +++ b/pimd/pim_msdp_socket.c @@ -24,8 +24,11 @@ #include <lib/sockunion.h> #include <lib/thread.h> #include <lib/vty.h> +#include <lib/if.h> +#include <lib/vrf.h> #include "pimd.h" +#include "pim_sock.h" #include "pim_msdp.h" #include "pim_msdp_socket.h" @@ -214,6 +217,12 @@ int pim_msdp_sock_connect(struct pim_msdp_peer *mp) return -1; } + if (mp->pim->vrf_id != VRF_DEFAULT) { + struct interface *ifp = + if_lookup_by_name(mp->pim->vrf->name, mp->pim->vrf_id); + pim_socket_bind(mp->fd, ifp); + } + set_nonblocking(mp->fd); /* Set socket send buffer size */ |
