RE: Looking for ways to improve CIMD2 protocol performance
Michael Zervakis <[email protected]>
| Newsgroups | gmane.comp.mobile.kannel.devel |
|---|---|
| Message-ID | <[email protected]> |
Windowing is an optional feature in CIMD2 with a max window size of 128. If you wish to use windowing you have to declare the window size within the login request using parameter 019 otherwise the SMSC will set a window size of 1 by default. Current implementation has no windowing functionality so I modified cimd2_login() in smsc_cimd2.c to declare the int parameter 019 when sending login request to SMSC just to check if the SMSC will accept the windowing parameter. The test was a success and we managed to successfully login using a window size of 32: 2007-06-08 20:40:04 [19247] [6] DEBUG: CIMD2[cimd2_smsc]: sending <01:001 010:test 011:test 019:32 82> 2007-06-08 20:40:05 [19247] [6] DEBUG: CIMD2[cimd2_smsc]: received: <51:001 3C> CIMD2 windowing have two important restrictions. All operations to the SMSC (keepalive, submit SM etc.) use a window slot not just the submit SM, so all outstanding operations should *NOT* exceed window size. The SME is forced to use the packet numbers in strict increasing order 001,003,005 etc.and *NOT* randomly 011,123,009 etc. We must receive responses for every operation before starting a new window.