On Fri, 11 May 2001 15:57:48 -0700, Jean Tourrilhes wrote:
> The final timer is calculated from qos_rx. So, N1 and N2
> should be as well. However, N1 and N2 applies also to the wd
> timer. And the wd timer is calculated from the qos_tx.
> I spend a bit of time reading the spec and the code. My
> conclusion is that your fix is correct, but wd_timer should also be
> calculated from the qos_rx.
That's correct, but one very minor detail is that your patch now
makes the wd timeout dependant on the final timeout. As you say
yourself, the wd timeout has to do with the secondary station only,
and the final timeout has to do with a primary station only, the code
is correct, but may be a bit confusing. Somebody may some day want to
put some #ifdef PRIMARY/SECONDARY in the code.
> The second one is a recurring bug... It's tricky one.
> Let's assume self->qos_rx.max_turn_time.value = 200ms. So, we
> have self->N1 = 15.
> Now, when is the test ((self->retry_count * 2) == self->N1)
> true ? Never !!! Ouch !
> On the other hand, (self->retry_count == (self->N1 / 2)) is
> true only once, when self->retry_count = 7...
>
Assume that the max turn time is 200ms!?!?! Why should I? The only
allowed values for the max turn time are {500, 250, 100, 50} ms! That
means that your patch is correct since N1 will always be a multiple
of 2 ;-) If you can do a run which makes the max turn time 200, then
something else must be wrong somewhere!?
-- Dag
--
Dag Brattli, Mail: [EMAIL PROTECTED]
CEO, ObexCode AS Web: http://www.obexcode.com
Tromsoe Science Park Phone: +47 776 33 690
Forskningsparken Fax: +47 776 33 691
NO-9291 Tromsoe, NORWAY Cell: +47 481 06 352
_______________________________________________
Linux-IrDA mailing list - [EMAIL PROTECTED]
http://www.pasta.cs.UiT.No/mailman/listinfo/linux-irda