diff options
author | Ondrej Zajicek (work) <santiago@crfreenet.org> | 2019-09-17 14:45:14 +0200 |
---|---|---|
committer | Ondrej Zajicek (work) <santiago@crfreenet.org> | 2019-09-17 14:45:14 +0200 |
commit | eb1e43a9af9e1905b754f1f191d228e2676ce181 (patch) | |
tree | f9aedacfe1d39d312da7bf9dbb90bd5a8abbe4cc | |
parent | 5235c3f78da15826b0654ba68dc7a897faa42c98 (diff) |
BGP: Fix setup with multiple dynamic BGP ranges
Based on a patch from Liam Nattrass, thanks.
-rw-r--r-- | proto/bgp/bgp.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/proto/bgp/bgp.c b/proto/bgp/bgp.c index b26e5e87..d6c2b7e4 100644 --- a/proto/bgp/bgp.c +++ b/proto/bgp/bgp.c @@ -1551,6 +1551,14 @@ bgp_start(struct proto *P) lock->type = OBJLOCK_TCP; lock->hook = bgp_start_locked; lock->data = p; + + /* For dynamic BGP, we use inst 1 to avoid collisions with regular BGP */ + if (bgp_is_dynamic(p)) + { + lock->addr = net_prefix(p->cf->remote_range); + lock->inst = 1; + } + olock_acquire(lock); return PS_START; |