diff --git a/vrrpd/vrrp.c b/vrrpd/vrrp.c index 973485bb5d..2acf985893 100644 --- a/vrrpd/vrrp.c +++ b/vrrpd/vrrp.c @@ -1086,8 +1086,10 @@ static int vrrp_socket(struct vrrp_router *r) bool failed = false; frr_with_privs(&vrrp_privs) { - r->sock_rx = socket(r->family, SOCK_RAW, IPPROTO_VRRP); - r->sock_tx = socket(r->family, SOCK_RAW, IPPROTO_VRRP); + r->sock_rx = vrf_socket(r->family, SOCK_RAW, IPPROTO_VRRP, + r->vr->ifp->vrf_id, NULL); + r->sock_tx = vrf_socket(r->family, SOCK_RAW, IPPROTO_VRRP, + r->vr->ifp->vrf_id, NULL); } if (r->sock_rx < 0 || r->sock_tx < 0) {