[sr-dev] git:master: tm: keep internal retr. intervals in ms

Andrei Pelinescu-Onciul andrei at iptel.org
Thu Aug 11 17:22:12 CEST 2011


Module: sip-router
Branch: master
Commit: a92001d430b897e79139580d21995ec7e5d7b417
URL:    http://git.sip-router.org/cgi-bin/gitweb.cgi/sip-router/?a=commit;h=a92001d430b897e79139580d21995ec7e5d7b417

Author: Andrei Pelinescu-Onciul <andrei at iptel.org>
Committer: Andrei Pelinescu-Onciul <andrei at iptel.org>
Date:   Thu Aug 11 16:58:12 2011 +0200

tm: keep internal retr. intervals in ms

When using ticks to keep the retransmission intervals, any
rounding error (when converting from ms to ticks) is increased
with each doubling of the retransmission interval. In the standard
configuration this means that the last retransmission before t2
kicks in, has an error up to 4 times bigger then the initial one
(the rounding error is max. 1 tick/62.5ms for the initial interval
 => up to 250 ms for the last retransmission before t2).

By keeping the retransmission intervals in ms instead of ticks,
this problem is avoided, and the timing error is always < 1 tick
(62.5 ms) + system timer error (< 10 ms usually).

---

 modules/tm/config.c   |    8 ++--
 modules/tm/config.h   |    4 +-
 modules/tm/h_table.h  |    9 ++---
 modules/tm/t_funcs.h  |   10 +++--
 modules/tm/t_lookup.c |   55 +++++++++++++++++---------------
 modules/tm/timer.c    |   85 ++++++++++++++++++++++++++++---------------------
 modules/tm/timer.h    |   60 ++++++++++++++++++----------------
 modules/tm/tm.c       |    4 +-
 modules/tm/uac.c      |    4 +-
 9 files changed, 130 insertions(+), 109 deletions(-)

Diff:   http://git.sip-router.org/cgi-bin/gitweb.cgi/sip-router/?a=commitdiff;h=a92001d430b897e79139580d21995ec7e5d7b417



More information about the sr-dev mailing list