mirror of
https://gitlab.nic.cz/labs/bird.git
synced 2024-12-22 09:41:54 +00:00
BGP: split tx explicitly
If BGP has too many data to send and BIRD is slower than the link, TX is always possible until all data is sent. This patch limits maximum number of generated BGP messages in one iteration of TX hook.
This commit is contained in:
parent
5648f07e4d
commit
e989b901fc
@ -784,8 +784,12 @@ bgp_kick_tx(void *vconn)
|
||||
struct bgp_conn *conn = vconn;
|
||||
|
||||
DBG("BGP: kicking TX\n");
|
||||
while (bgp_fire_tx(conn) > 0)
|
||||
uint max = 1024;
|
||||
while (--max && (bgp_fire_tx(conn) > 0))
|
||||
;
|
||||
|
||||
if (!max && !ev_active(conn->tx_ev))
|
||||
ev_schedule(conn->tx_ev);
|
||||
}
|
||||
|
||||
void
|
||||
@ -794,8 +798,12 @@ bgp_tx(sock *sk)
|
||||
struct bgp_conn *conn = sk->data;
|
||||
|
||||
DBG("BGP: TX hook\n");
|
||||
while (bgp_fire_tx(conn) > 0)
|
||||
uint max = 1024;
|
||||
while (--max && (bgp_fire_tx(conn) > 0))
|
||||
;
|
||||
|
||||
if (!max && !ev_active(conn->tx_ev))
|
||||
ev_schedule(conn->tx_ev);
|
||||
}
|
||||
|
||||
/* Capatibility negotiation as per RFC 2842 */
|
||||
|
Loading…
Reference in New Issue
Block a user