IBGP fixes.
This commit is contained in:
parent
e1ddd99377
commit
5db9bae286
2 changed files with 16 additions and 7 deletions
|
@ -343,12 +343,20 @@ bgp_get_bucket(struct bgp_proto *p, ea_list *old, ea_list *tmp, int originate)
|
||||||
struct bgp_bucket *b;
|
struct bgp_bucket *b;
|
||||||
|
|
||||||
/* Merge the attribute lists */
|
/* Merge the attribute lists */
|
||||||
|
if (tmp)
|
||||||
|
{
|
||||||
for(t=tmp; t->next; t=t->next)
|
for(t=tmp; t->next; t=t->next)
|
||||||
;
|
;
|
||||||
t->next = old;
|
t->next = old;
|
||||||
new = alloca(ea_scan(tmp));
|
new = alloca(ea_scan(tmp));
|
||||||
ea_merge(tmp, new);
|
ea_merge(tmp, new);
|
||||||
t->next = NULL;
|
t->next = NULL;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
new = alloca(ea_scan(old));
|
||||||
|
ea_merge(old, new);
|
||||||
|
}
|
||||||
ea_sort(new);
|
ea_sort(new);
|
||||||
|
|
||||||
/* Normalize attributes */
|
/* Normalize attributes */
|
||||||
|
@ -668,7 +676,7 @@ bgp_path_loopy(struct bgp_proto *p, eattr *a)
|
||||||
while (len > 0)
|
while (len > 0)
|
||||||
{
|
{
|
||||||
n = path[1];
|
n = path[1];
|
||||||
len -= 2 - 2*n;
|
len -= 2 + 2*n;
|
||||||
path += 2;
|
path += 2;
|
||||||
for(i=0; i<n; i++)
|
for(i=0; i<n; i++)
|
||||||
{
|
{
|
||||||
|
|
|
@ -315,6 +315,7 @@ bgp_start_neighbor(struct bgp_proto *p)
|
||||||
s->tos = IP_PREC_INTERNET_CONTROL;
|
s->tos = IP_PREC_INTERNET_CONTROL;
|
||||||
s->ttl = 1;
|
s->ttl = 1;
|
||||||
s->rbsize = BGP_RX_BUFFER_SIZE;
|
s->rbsize = BGP_RX_BUFFER_SIZE;
|
||||||
|
s->tbsize = BGP_TX_BUFFER_SIZE;
|
||||||
s->rx_hook = bgp_incoming_connection;
|
s->rx_hook = bgp_incoming_connection;
|
||||||
if (sk_open(s))
|
if (sk_open(s))
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in a new issue