[Vortex] vortex_channel_update_incoming_buffer question
Mikhail Dmitrievsky
mishadm at mail.ru
Tue Oct 14 09:32:17 CEST 2008
Hello All!
I have a question about code in vortex_channel_update_incoming_buffer where we decide to send SEQ frame or not:
vortex_channel.c, lines near 3365:
/* check we have filled half window size advertised */
/* if ((new_max_seq_no_accepted - channel->max_seq_no_accepted) < (window_size / 2)) { */
if ((consumed_seqno - (channel->max_seq_no_accepted - window_size)) < (window_size / 2)) {
Can anyone explain why we use window_size/2 magic number? I read discussion at http://drakken.dbc.mtview.ca.us/pipermail/beepwg/2006-January/001605.html about sending SEQ frames and now i don't understand why we use window_size/2.
I got a problem with this code then i change window_size. After some time of exchanging between listener and initiator one of them hangs up. It always happend at different time, so it is very hard to catch this bug. Now I know if i change
if ((consumed_seqno - (channel->max_seq_no_accepted - window_size)) < (window_size / 2)) {
to
if ((consumed_seqno - (channel->max_seq_no_accepted - 4096)) < (4096 / 2)) {
all works fine, but i really don't understand why.
WBR, Mikhail
More information about the Vortex
mailing list