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 */  | 
