aboutsummaryrefslogtreecommitdiffstats
path: root/doc/sequence_charts
diff options
context:
space:
mode:
authorNeels Hofmeyr <nhofmeyr@sysmocom.de>2023-03-23 00:27:00 +0100
committerNeels Hofmeyr <nhofmeyr@sysmocom.de>2023-04-15 00:10:40 +0200
commit192f75010b889b54cd9f189b55a8f95bc58d2aa4 (patch)
treede2af1f61684932eb3bfb2770e458714c15a7067 /doc/sequence_charts
parentac55f8721a17244d0bc83bb15854933fdb1c2918 (diff)
more verbose MNCC logging
It is pretty unclear what codec items MNCC sends and receives exactly when: * Bearer Capabilities speech versions, * 'payload message type' and * the new SDP information Include these items in MNCC rx and tx logging. In msc_log_to_ladder.py, in sequence charts generated from an actual osmo-msc log, also show all MNCC codec items. Change-Id: I19ccffa2f9b627ad51fffd344ee6e75908d30295
Diffstat (limited to 'doc/sequence_charts')
-rwxr-xr-xdoc/sequence_charts/msc_log_to_ladder.py36
1 files changed, 14 insertions, 22 deletions
diff --git a/doc/sequence_charts/msc_log_to_ladder.py b/doc/sequence_charts/msc_log_to_ladder.py
index 9bfb9c9c2..b342061a5 100755
--- a/doc/sequence_charts/msc_log_to_ladder.py
+++ b/doc/sequence_charts/msc_log_to_ladder.py
@@ -591,9 +591,11 @@ class Parse:
self.diagram.add_line(Arrow(e, MSC, '<>', '.', 'CC state:\\n%s' % to_state))
return True
- def rule_log_mncc_no_rtp(self, m):
- r'.*trans\(CC[^) ]* [^ )]+:([^:)]+) callref-([^ ]+) [^)]+\) (tx|rx) (MNCC_[^ ]*)$'
- l3type, callref_hex, tx_rx, mncc_msg = m.groups()
+ RE_LOG_MNCC_RTP_ADDR = re.compile('addr=([^ )]+)')
+ RE_LOG_MNCC_SDP_ADDR = re.compile('\(SDP ([^ ){]+)')
+ def rule_log_mncc(self, m):
+ r'.*trans\(CC[^) ]* [^ )]+:([^:)]+) callref-([^ ]+) [^)]+\) (tx|rx) (MNCC_[^ ]*)(.*)$'
+ l3type, callref_hex, tx_rx, mncc_msg, infos = m.groups()
if self.seen_udtrace_mncc:
# If no udtrace is present, take the MNCC logging.
@@ -607,27 +609,17 @@ class Parse:
except:
e = MT
- self.diagram.add_line(Arrow(e, MSC, '>' if tx else '<', 'mncc', mncc_msg))
- return True
-
- def rule_log_mncc_with_rtp(self, m):
- r'.*trans\(CC[^) ]* [^ )]+:([^:)]+) callref-([^ ]+) [^)]+\) (tx|rx) (MNCC_[^ ]*) \(RTP=([^){]+)(|{.*})\)$'
- l3type, callref_hex, tx_rx, mncc_msg, rtp, codec = m.groups()
-
- if self.seen_udtrace_mncc:
- # If no udtrace is present, take the MNCC logging.
- # But if there is udtrace logging available, we should not duplicate those MNCC lines.
- return True
+ for m in Parse.RE_LOG_MNCC_RTP_ADDR.finditer(infos):
+ addr = m.group(1)
+ masked_addr = self.mask_value('IP:port', addr);
+ infos = infos.replace(addr, masked_addr)
- tx = (tx_rx == 'tx')
+ for m in Parse.RE_LOG_MNCC_SDP_ADDR.finditer(infos):
+ addr = m.group(1)
+ masked_addr = self.mask_value('IP:port', addr);
+ infos = infos.replace(addr, masked_addr)
- try:
- e = self.callrefs_mo_mt.get(callref_hex, MT)
- except:
- e = MT
-
- rtp = self.mask_value('IP:port', rtp)
- self.diagram.add_line(Arrow(e, MSC, '>' if tx else '<', 'mncc', f'{mncc_msg}\\n{rtp}'))
+ self.diagram.add_line(Arrow(e, MSC, '>' if tx else '<', 'mncc', f'{mncc_msg}\\n{infos}'))
return True
RE_MNCC_RTP = re.compile(' ip := ([^, ]+), rtp_port := ([0-9]+),')