diff options
author | Alexander Zubkov <green@qrator.net> | 2024-02-07 19:11:10 +0100 |
---|---|---|
committer | Ondrej Zajicek <santiago@crfreenet.org> | 2024-02-07 19:11:10 +0100 |
commit | 574d7eb241a60622b0573ab1460cb23d968ba1cc (patch) | |
tree | b17bc117bad5762d520ae91d003c44137918368c /proto/bgp/bgp.c | |
parent | 0b52f7c01f55707b25eebd0a66c48eafe06fe455 (diff) |
BGP: Allow multiple EBGP neighbors with the same peer.
We can distinguish BGP sessions if at least one side uses a different IP
address. Extend olock mechanism to handle local IP as a part of key, with
optional wildcard, so BGP sessions could local IP in the olock and not
block themselves.
Diffstat (limited to 'proto/bgp/bgp.c')
-rw-r--r-- | proto/bgp/bgp.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/proto/bgp/bgp.c b/proto/bgp/bgp.c index cd57c32b..e97b45e6 100644 --- a/proto/bgp/bgp.c +++ b/proto/bgp/bgp.c @@ -1616,6 +1616,7 @@ bgp_start(struct proto *P) struct object_lock *lock; lock = p->lock = olock_new(P->pool); lock->addr = p->remote_ip; + lock->addr_local = p->cf->local_ip; lock->port = p->cf->remote_port; lock->iface = p->cf->iface; lock->vrf = p->cf->iface ? NULL : p->p.vrf; |