Commit e19d0805 authored by Ondřej Zajíček's avatar Ondřej Zajíček

BGP: Fix VRF for listening socket

Listening socket should be bound to specified interface and VRF.

Thanks to Alexander Zubkov for the bugreport.
parent 0ac9cb2c
Pipeline #41693 passed with stages
in 4 minutes and 9 seconds
......@@ -159,7 +159,8 @@ bgp_open(struct bgp_proto *p)
/* We assume that cf->iface is defined iff cf->local_ip is link-local */
WALK_LIST(bs, bgp_sockets)
if (ipa_equal(bs->sk->saddr, addr) && (bs->sk->iface == ifa) && (bs->sk->sport == port))
if (ipa_equal(bs->sk->saddr, addr) && (bs->sk->sport == port) &&
(bs->sk->iface == ifa) && (bs->sk->vrf == p->p.vrf))
{
bs->uc++;
p->sock = bs;
......@@ -171,6 +172,8 @@ bgp_open(struct bgp_proto *p)
sk->ttl = 255;
sk->saddr = addr;
sk->sport = port;
sk->iface = ifa;
sk->vrf = p->p.vrf;
sk->flags = 0;
sk->tos = IP_PREC_INTERNET_CONTROL;
sk->rbsize = BGP_RX_BUFFER_SIZE;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment