Merge branch '-isisd-simpl' into stable/2.0

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
This commit is contained in:
David Lamparter 2016-12-08 12:52:45 +01:00
commit d987f2339d
3 changed files with 15 additions and 50 deletions

View File

@ -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
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->snd_stream);
#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
isis_circuit_prepare (circuit);
circuit->lsp_queue = list_new ();
circuit->lsp_queue_last_cleared = time (NULL);

View File

@ -168,6 +168,7 @@ void isis_circuit_add_addr (struct isis_circuit *circuit,
struct connected *conn);
void isis_circuit_del_addr (struct isis_circuit *circuit,
struct connected *conn);
void isis_circuit_prepare (struct isis_circuit *circuit);
int isis_circuit_up (struct isis_circuit *circuit);
void isis_circuit_down (struct isis_circuit *);
void circuit_update_nlpids (struct isis_circuit *circuit);

View File

@ -2134,41 +2134,6 @@ isis_handle_pdu (struct isis_circuit *circuit, u_char * ssnpa)
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
isis_receive (struct thread *thread)
{
@ -2195,18 +2160,11 @@ isis_receive (struct thread *thread)
* prepare for next packet.
*/
if (!circuit->is_passive)
{
circuit->t_read = thread_add_timer_msec (master, isis_receive, circuit,
listcount
(circuit->area->circuit_list) *
100);
}
isis_circuit_prepare (circuit);
return retval;
}
#endif
/* filling of the fixed isis header */
void
fill_fixed_hdr (struct isis_fixed_hdr *hdr, u_char pdu_type)