mirror of
https://git.proxmox.com/git/mirror_frr
synced 2025-08-06 02:46:26 +00:00
bfdd: socket should be bound to vrf interface by default
When running in vrf-lite mode, the socket used in a vrf environment should be bound to an interface belonging to the vrf. If no one is selected, then the vrf interface itself should be bound to that socket, so that outgoing packets are being applied routing rules for that vrf. Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
This commit is contained in:
parent
e11922f0e9
commit
031705c9fc
@ -951,8 +951,9 @@ int bp_peer_socket(const struct bfd_session *bs)
|
||||
|
||||
if (bs->key.ifname[0])
|
||||
device_to_bind = (const char *)bs->key.ifname;
|
||||
else if (CHECK_FLAG(bs->flags, BFD_SESS_FLAG_MH)
|
||||
&& bs->key.vrfname[0])
|
||||
else if ((!vrf_is_backend_netns() && bs->vrf->vrf_id != VRF_DEFAULT)
|
||||
|| ((CHECK_FLAG(bs->flags, BFD_SESS_FLAG_MH)
|
||||
&& bs->key.vrfname[0])))
|
||||
device_to_bind = (const char *)bs->key.vrfname;
|
||||
|
||||
frr_with_privs(&bglobal.bfdd_privs) {
|
||||
@ -1018,8 +1019,9 @@ int bp_peer_socketv6(const struct bfd_session *bs)
|
||||
|
||||
if (bs->key.ifname[0])
|
||||
device_to_bind = (const char *)bs->key.ifname;
|
||||
else if (CHECK_FLAG(bs->flags, BFD_SESS_FLAG_MH)
|
||||
&& bs->key.vrfname[0])
|
||||
else if ((!vrf_is_backend_netns() && bs->vrf->vrf_id != VRF_DEFAULT)
|
||||
|| ((CHECK_FLAG(bs->flags, BFD_SESS_FLAG_MH)
|
||||
&& bs->key.vrfname[0])))
|
||||
device_to_bind = (const char *)bs->key.vrfname;
|
||||
|
||||
frr_with_privs(&bglobal.bfdd_privs) {
|
||||
|
Loading…
Reference in New Issue
Block a user