Support #623

Bridge clock adjustment improvements

Added by Madars over 3 years ago. Updated about 3 years ago.

Status:ClosedStart date:01/13/2021
Priority:Normal (Code 4)Due date:
Assignee:-% Done:

100%

Category:-
Target version:-

Description

Currently tpridge exchanges monotonic clock values when connection is established between nodes. This value is used for detection of expired in progress messages, and if they are expired, message is dropped automatically when call reaches server process. If the clocks on servers over the time drift away (thus the difference after some 15 days, is not more X seconds, stored in bridge, but Y seconds), and if this difference is higher than NDRX_TOUT setting, then it is possible that messages received from other server node are never processed and dropped immediately. Thus to cope with this situation:
- Periodic exchange of monotonic server clock value shall be implemented.
- Only if the exchange time is less than certain time, the new calculated difference should be used.
- Also when messages are dropped for this reason, they should go to ULOG and in process log logged with error level 2 (i.e. ndrx topic/facility shall be at-least set to ndrx=2 to see this message. In ULOG it is written unconditionally).

History

#1 Updated by Madars over 3 years ago

Please note! With this new version tpbridge protocol format changes. Thus all connected nodes needs to be upgraded.

#2 Updated by Madars over 3 years ago

  • Status changed from New to Resolved

#3 Updated by Madars over 3 years ago

  • Status changed from Resolved to Closed
  • % Done changed from 0 to 100

V 7.0.46

#4 Updated by Madars about 3 years ago

  • Description updated (diff)

#5 Updated by Madars about 3 years ago

Implemented change:

- Updated tpbridge network clock sync message with additional fields. Thus all interconnected nodes must be updated at the same time, otherwise connection won't work due protocol differences. Also note that protocol version is not done in software, thus some incorrect work by tpbridge might be expected, if nodes is not updated.
- Now tpbridge exchanges time-sync messages every 10 minutes, if message roundrip time is less than 200ms. This can be configured by [-k CLOCKSYNC_ROUNDTRIP] and [-K CLOCKSYNC_PERIOD] parameters
- Man page here: https://www.endurox.org/dokuwiki/doku.php?id=endurox:v7.0.x:manuals:tpbridge.8
- Now processes will log to process log & ULOG: "Recieved expired call - drop, cd: %d timestamp: ..."
- Also NTP is recommended on both servers, as it is stabilizing the monotonic clocks too.

#6 Updated by Madars about 3 years ago

  • Description updated (diff)

Also available in: Atom PDF