mirror of
https://git.proxmox.com/git/mirror_frr
synced 2025-08-07 10:46:22 +00:00
Merge branch '-isisd-simpl' into stable/2.0
Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
This commit is contained in:
commit
d987f2339d
@ -606,6 +606,18 @@ isis_circuit_stream(struct isis_circuit *circuit, struct stream **stream)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
isis_circuit_prepare (struct isis_circuit *circuit)
|
||||||
|
{
|
||||||
|
#ifdef GNU_LINUX
|
||||||
|
THREAD_READ_ON (master, circuit->t_read, isis_receive, circuit,
|
||||||
|
circuit->fd);
|
||||||
|
#else
|
||||||
|
THREAD_TIMER_MSEC_ON (master, circuit->t_read, isis_receive, circuit,
|
||||||
|
listcount (circuit->area->circuit_list) * 100);
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
int
|
int
|
||||||
isis_circuit_up (struct isis_circuit *circuit)
|
isis_circuit_up (struct isis_circuit *circuit)
|
||||||
{
|
{
|
||||||
@ -715,13 +727,7 @@ isis_circuit_up (struct isis_circuit *circuit)
|
|||||||
isis_circuit_stream(circuit, &circuit->rcv_stream);
|
isis_circuit_stream(circuit, &circuit->rcv_stream);
|
||||||
isis_circuit_stream(circuit, &circuit->snd_stream);
|
isis_circuit_stream(circuit, &circuit->snd_stream);
|
||||||
|
|
||||||
#ifdef GNU_LINUX
|
isis_circuit_prepare (circuit);
|
||||||
THREAD_READ_ON (master, circuit->t_read, isis_receive, circuit,
|
|
||||||
circuit->fd);
|
|
||||||
#else
|
|
||||||
THREAD_TIMER_MSEC_ON (master, circuit->t_read, isis_receive, circuit,
|
|
||||||
listcount (circuit->area->circuit_list) * 100);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
circuit->lsp_queue = list_new ();
|
circuit->lsp_queue = list_new ();
|
||||||
circuit->lsp_queue_last_cleared = time (NULL);
|
circuit->lsp_queue_last_cleared = time (NULL);
|
||||||
|
@ -168,6 +168,7 @@ void isis_circuit_add_addr (struct isis_circuit *circuit,
|
|||||||
struct connected *conn);
|
struct connected *conn);
|
||||||
void isis_circuit_del_addr (struct isis_circuit *circuit,
|
void isis_circuit_del_addr (struct isis_circuit *circuit,
|
||||||
struct connected *conn);
|
struct connected *conn);
|
||||||
|
void isis_circuit_prepare (struct isis_circuit *circuit);
|
||||||
int isis_circuit_up (struct isis_circuit *circuit);
|
int isis_circuit_up (struct isis_circuit *circuit);
|
||||||
void isis_circuit_down (struct isis_circuit *);
|
void isis_circuit_down (struct isis_circuit *);
|
||||||
void circuit_update_nlpids (struct isis_circuit *circuit);
|
void circuit_update_nlpids (struct isis_circuit *circuit);
|
||||||
|
@ -2134,41 +2134,6 @@ isis_handle_pdu (struct isis_circuit *circuit, u_char * ssnpa)
|
|||||||
return retval;
|
return retval;
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef GNU_LINUX
|
|
||||||
int
|
|
||||||
isis_receive (struct thread *thread)
|
|
||||||
{
|
|
||||||
struct isis_circuit *circuit;
|
|
||||||
u_char ssnpa[ETH_ALEN];
|
|
||||||
int retval;
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Get the circuit
|
|
||||||
*/
|
|
||||||
circuit = THREAD_ARG (thread);
|
|
||||||
assert (circuit);
|
|
||||||
|
|
||||||
isis_circuit_stream(circuit, &circuit->rcv_stream);
|
|
||||||
|
|
||||||
retval = circuit->rx (circuit, ssnpa);
|
|
||||||
circuit->t_read = NULL;
|
|
||||||
|
|
||||||
if (retval == ISIS_OK)
|
|
||||||
retval = isis_handle_pdu (circuit, ssnpa);
|
|
||||||
|
|
||||||
/*
|
|
||||||
* prepare for next packet.
|
|
||||||
*/
|
|
||||||
if (!circuit->is_passive)
|
|
||||||
{
|
|
||||||
THREAD_READ_ON (master, circuit->t_read, isis_receive, circuit,
|
|
||||||
circuit->fd);
|
|
||||||
}
|
|
||||||
|
|
||||||
return retval;
|
|
||||||
}
|
|
||||||
|
|
||||||
#else
|
|
||||||
int
|
int
|
||||||
isis_receive (struct thread *thread)
|
isis_receive (struct thread *thread)
|
||||||
{
|
{
|
||||||
@ -2195,18 +2160,11 @@ isis_receive (struct thread *thread)
|
|||||||
* prepare for next packet.
|
* prepare for next packet.
|
||||||
*/
|
*/
|
||||||
if (!circuit->is_passive)
|
if (!circuit->is_passive)
|
||||||
{
|
isis_circuit_prepare (circuit);
|
||||||
circuit->t_read = thread_add_timer_msec (master, isis_receive, circuit,
|
|
||||||
listcount
|
|
||||||
(circuit->area->circuit_list) *
|
|
||||||
100);
|
|
||||||
}
|
|
||||||
|
|
||||||
return retval;
|
return retval;
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* filling of the fixed isis header */
|
/* filling of the fixed isis header */
|
||||||
void
|
void
|
||||||
fill_fixed_hdr (struct isis_fixed_hdr *hdr, u_char pdu_type)
|
fill_fixed_hdr (struct isis_fixed_hdr *hdr, u_char pdu_type)
|
||||||
|
Loading…
Reference in New Issue
Block a user