OpenAT 422d fcm adl_fcmSendData() function failures


#1

I have been running my own IP/UDP stack in Wavecom modems for almost 5 years. I just receently added a complete TCP client to my custome stack and it runs fine. I have not gone to OASIS yet due to project restraints. I am using OpenAT 422d, the current OS on the WaveCom website. I have been using the adl_fcmSendData() function for several years until a few weeks ago. Under stress testing, sending 10 TCP HTTP packets in excess of 400 bytes back-to-back every 60 seconds, I found that the OS will cause a memory fault most times indicating a problem with a memcpy() or a memset(). Sometimes there were faults indicated in functions unrelated to any application code. The wierd part of the matter was that the reset would happen when only the 1 minute timer in the OBA was running and the rest of the application dormant including that the GPRS session with the network had been dropped (adl)gprsDeact()). After shasing this for several weeks I pinned it to the OS. It failed consistantly every 35-37 minutes in the test scenario. I then switched to the adl_fcmSendDataExt() function where you build a structure and pass it to the OS. The every 35 or so minute resets ceased. However after 5 hours of the same test running the OS reset with the same indications and happend while the application was in a ‘idle’ state . I might add that reset always happened about 10 -15 seconds after the application shut down the GPRS connection and entered a completely idle state waiting for the 1 minute timer to expire. I might also add that until July 2007 all of my code was written under basic with the custom UDP/IP satck including the use of ZLIB data compression and a custom protocol running on top of UDP. Testing up until the past couple weekes included days of continuous testing using maximum GPRS packet sizes of 1500 byte send to a loop back HOST which returned the packet. All that time I used the wm_fcmSendData() or the adl_fcmSendData() when I switched to ADL. I did not experience problems with OpenAT versions below 4.20

I have used WIP for a quick demo for TCP but the excessive code (~92k additional bytes) size for its use is not acceptible. My OBA code with the WIP library added including the code to handle the library and seesion operation was 184+k. Once I completed the TCP session code in my custom satck which also supports UDP operations including DNS lookup and a lot of additional code is less than 90K.

I hope this catches someone’s attention.