[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Tue, 4 Mar 2003 13:50:20 +0200 (EET)
On Tue, 4 Mar 2003, BORBELY Zoltan wrote:
> I did a little modification in the atbus and the fbus-3110 driver. I
> moved the invocation of the sm_incoming_acknowledge function into the
> send function. These drivers aren't support real acknowledge handling
> currently, so this change will give us exactly the same semantics back
> as before the statemachine enhacement (sm_block_no_retry won't make a
> retransmission). I think this is the best workaround until we have
> enough time to redesign the statemachine and the link layer.
Arrgh! The intent was good but this again broke the 3110 driver because
of the peculiar protocol it has and how it relates to the statemachine.
The problem is again the getsms operation, where the phone sends up to 4
messages in response to a single request. The statemachine
only recognizes messages on the "waiting for" list if it is in the
GN_SM_WaitingForResponse state. This state is reached when
sm_incoming_acknowledge() is called.
Since you moved this call in the fbus-3110 driver from the incoming part
to the sending part, it is not called anymore in between these data
packets of the getsms operation, thus the statemachine never reaches the
GN_SM_WaitingForResponse state and the data frames are not passed on to
the 3110 driver (in fact they are, but not with the correct data
argument) and the __sm_block_timeout() loop exits with a timeout because
the GN_SM_ResponseReceived state is never reached.
Could you please revert this patch for the fbus-3110 driver, because I
cannot work around this problem in the 3110 driver. The statemachine
would have to be changed drastically and that is not possible for the
0.5.0 release. I know the present situation is pretty fragile but at
least it works the way it is.
The real solution is to add proper ack frame handling (they exist) to
the fbus-3110 driver and rewrite the statemachine, but there's no time
to do that before release.
PS. Thanks for applying my patches, except for this problem the 3110
driver now works quite well.
*** Osma Suominen *** address@hidden *** http://www.iki.fi/ozone/ ***