https://projects.osmocom.org/https://projects.osmocom.org/favicon.ico?16647414092022-03-21T15:20:48ZOpen Source Mobile Communicationslibosmo-sccp + libosmo-sigtran - Feature #2006: Implement M2PA supporthttps://projects.osmocom.org/issues/2006?journal_id=237982022-03-21T15:20:48Zlaforge
<ul><li><strong>Related to</strong> <i><a class="issue tracker-2 status-1 priority-1 priority-lowest" href="/issues/3603">Feature #3603</a>: M2PA support</i> added</li></ul> libosmo-sccp + libosmo-sigtran - Feature #2006: Implement M2PA supporthttps://projects.osmocom.org/issues/2006?journal_id=238042022-03-22T16:54:52Zlaforge
<ul></ul><p>Reading through RFC4165 and taking some random notes:</p>
<ul>
<li>two SCTP streams per direction (one for Link Status, another for User Data)</li>
<li>M2PA retains classic notion of ss7 links + linksets
<ul>
<li>1:1 mapping beteween SCTP association and SS7 link
<ul>
<li>same SLC for same link (==association) on both ends</li>
</ul>
</li>
</ul>
</li>
<li>empty user data messages used to acknowledge receipt in some situations</li>
</ul>
<a name="Message-format-protocol-elements"></a>
<h3 >Message format / protocol elements<a href="#Message-format-protocol-elements" class="wiki-anchor">¶</a></h3>
<ul>
<li>24-bit FSN / BSN sequence numbers in each header</li>
<li>only one message class with two message types
<ul>
<li>User Data
<ul>
<li>contains MTP3 message with PRI/SIO/SIF fields</li>
</ul>
</li>
<li>Link Status
<ul>
<li>Alignment / Proving Normal / Proving Emergency / Ready / Processor Outage / Processor Recovered / Busy / Busy Ended / OOS</li>
<li>not all are sent on Stream0, but some on Stream1</li>
</ul>
</li>
</ul>
</li>
<li>local processor outage
<ul>
<li>MTP3 from peer must be buffered</li>
</ul>
</li>
<li>remote processor outage
<ul>
<li>MTP3 messages might also need buffering</li>
</ul>
</li>
<li>flow control / congestion timers
<ul>
<li>criteria how to determine congestion onset is "implementation dependent" </li>
</ul>
</li>
<li>signaling of SCTP association failures up to MTP3 / take link out of service</li>
<li>change-over procedure in case of link failure
<ul>
<li>message retrieval: obtain all not-yet-transmitted and all sent-but-not-yet-acknowledged messages from the old link</li>
<li>MTP3 XCO / XCA messages instead of COO/COA due to longer FSM/BSN range</li>
</ul></li>
</ul>
<a name="FSMs"></a>
<h3 >FSMs<a href="#FSMs" class="wiki-anchor">¶</a></h3>
<ul>
<li>MTP2 IAC (Initial Alignment Control) as per Q.703 Figure 4 / Figure 9</li>
<li>MTP2 LSC (Link State Control) as per Q.703 Figure 3 / Figure 8</li>
<li>MTP3 SLTC (Signalling Link Test Control) as per Q.707</li>
<li>MTP3 HMDT (Message Distribution) as per Q.704</li>
</ul> libosmo-sccp + libosmo-sigtran - Feature #2006: Implement M2PA supporthttps://projects.osmocom.org/issues/2006?journal_id=292612024-02-10T13:17:04Zlaforge
<ul></ul><p>for reference, there is some initial/incomplete WIP code towards m2pa support in the <code>laforge/m2pa</code> branch, specifically the following commits:</p>
<pre>
commit 6683ebc2acd86f4a9841b7c0037c7e5ef8a6a599 (gerrit/laforge/m2pa)
Author: Harald Welte <laforge@osmocom.org>
Date: Sun Sep 4 11:13:36 2022 +0200
WIP: MTP2 IAC + LSC FSM
Change-Id: I1392b8b2f85c70f3783af655d5906a86a8b9a9c1
commit 6a8c053d4a1f914556613eda8bbfcf37aad6fbd2
Author: Harald Welte <laforge@osmocom.org>
Date: Fri Sep 2 20:23:52 2022 +0200
WIP: M2PA
Change-Id: Icd0f9464447a98031c3ee093e2b8362f52eab47d
</pre>