sctp: improve path verification
Ensure that a HB can be sent faster than a HB.Interval when performing path verification of a reachable peer address. Thanks to Alexander Funke for finding the issue and proposing a fix. MFC after: 3 days
This commit is contained in:
parent
9312ba239e
commit
aab6e5bd1e
@ -1439,7 +1439,8 @@ sctp_heartbeat_timer(struct sctp_inpcb *inp, struct sctp_tcb *stcb,
|
||||
(TAILQ_EMPTY(&stcb->asoc.sent_queue))) {
|
||||
sctp_audit_stream_queues_for_size(inp, stcb);
|
||||
}
|
||||
if (((net->dest_state & SCTP_ADDR_NOHB) == 0) &&
|
||||
if ((((net->dest_state & SCTP_ADDR_NOHB) == 0) ||
|
||||
(net->dest_state & SCTP_ADDR_UNCONFIRMED)) &&
|
||||
(net_was_pf || ((net->dest_state & SCTP_ADDR_PF) == 0))) {
|
||||
/*
|
||||
* When moving to PF during threshold management, a HB has
|
||||
@ -1459,6 +1460,7 @@ sctp_heartbeat_timer(struct sctp_inpcb *inp, struct sctp_tcb *stcb,
|
||||
ms_gone_by = 0xffffffff;
|
||||
}
|
||||
if ((ms_gone_by >= net->heart_beat_delay) ||
|
||||
(net->dest_state & SCTP_ADDR_UNCONFIRMED) ||
|
||||
(net->dest_state & SCTP_ADDR_PF)) {
|
||||
sctp_send_hb(stcb, net, SCTP_SO_NOT_LOCKED);
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user