[PATCH v3] babel: Rework seqno request handling

Ondrej Zajicek santiago at crfreenet.org
Mon Dec 19 04:11:11 CET 2022


On Sat, Dec 17, 2022 at 09:45:59PM +0100, Toke Høiland-Jørgensen via Bird-users wrote:
> The seqno request retransmission handling was tracking the destination that
> a forwarded request was being sent to and always retransmitting to that
> same destination. This is unnecessary because we only need to retransmit
> requests we originate ourselves, not those we forward on behalf of
> others; in fact retransmitting on behalf of others can lead to exponential
> multiplication of requests, which would be bad.

Hi

Thanks for investigating the issue and the patch. It took me some time to
process it, so answering now. I have some notes / suggestions:

 - In babel_expire_requests() the check for sr->forwarded is inside
 sr->count check, so BABEL_SEQNO_REQUEST_RETRY is applied for forwarded
 info, which does not make sense, perhaps it should be like:
 if (!sr->forwarded && (sr->count < BABEL_SEQNO_REQUEST_RETRY)) ...

 - There is no need to check hop_count in babel_handle_seqno_request(),
 that is already done in babel_read_seqno_request().

 - Seems to me that as the focus of the patch changed completely from v1
 to v3, some changes thate were initially introduced now makes less sense.
 Namely i would keep meaning of the last argument of babel_add_seqno_request()
 to be the neighbor we forward the request to, and keep seqno request routing
 (i.e. babel_find_seqno_request_tgt()) outside. Either keep old code in
 babel_handle_seqno_request(), or call babel_find_seqno_request_tgt() from
 that. That makes more sense to me as it is part of section 3.8.1.2
 implemented there.

-- 
Elen sila lumenn' omentielvo

Ondrej 'Santiago' Zajicek (email: santiago at crfreenet.org)
OpenPGP encrypted e-mails preferred (KeyID 0x11DEADC3, wwwkeys.pgp.net)
"To err is human -- to blame it on a computer is even more so."



More information about the Bird-users mailing list