<p>laforge <strong>submitted</strong> this change.</p><p><a href="https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/21267">View Change</a></p><div style="white-space:pre-wrap">Approvals:
  Jenkins Builder: Verified

</div><pre style="font-family: monospace,monospace; white-space: pre-wrap;">sigtran: Describe sctp/m3ua role, multi-homing, traffic-modes<br><br>Change-Id: I4c54dbde5a0b0f6ae38efdd047b17b4dbaae12c3<br>---<br>M common/chapters/sigtran.adoc<br>1 file changed, 62 insertions(+), 0 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/common/chapters/sigtran.adoc b/common/chapters/sigtran.adoc</span><br><span>index 42135d5..cbf513e 100644</span><br><span>--- a/common/chapters/sigtran.adoc</span><br><span>+++ b/common/chapters/sigtran.adoc</span><br><span>@@ -333,3 +333,65 @@</span><br><span> stackings) operates on top of both IPv4 and IPv6.  As the entire</span><br><span> underlying IP transport is transparent to the SS7/SCCP applications,</span><br><span> there is no restriction on whether to use SIGTRAN over IPv4 or IPv6.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+==== SCTP multi-homing in SIGTARN</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+SCTP, unlike more traditional IP L4 protocols (TCP, UDP) doesn't work</span><br><span style="color: hsl(120, 100%, 40%);">+based on a _connection_ between source IP:port and Destination IP:port.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+Instead, SCTP creates _associations_ between two endpoints, both of which</span><br><span style="color: hsl(120, 100%, 40%);">+can have any number of IP addresses.  This means that in case of</span><br><span style="color: hsl(120, 100%, 40%);">+network outage, traffic can continue to flow through any of the IP</span><br><span style="color: hsl(120, 100%, 40%);">+addresses of that association.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+The Linux kernel by default advertises all IP addresses of the local</span><br><span style="color: hsl(120, 100%, 40%);">+system to the peer.  This can be seen when inspecting the SCTP INIT</span><br><span style="color: hsl(120, 100%, 40%);">+chunk e.g. in wireshark.  While this may be a reasonable default in some</span><br><span style="color: hsl(120, 100%, 40%);">+use cases, it is not always the best idea.  Imagine addresses of</span><br><span style="color: hsl(120, 100%, 40%);">+internal/private IP networks, for example local bridge devices between</span><br><span style="color: hsl(120, 100%, 40%);">+lxc or docker containers, or local VMs.  Such addresses have no</span><br><span style="color: hsl(120, 100%, 40%);">+significance beyond the local machine.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+Subsequently, libosmo-sigtran allows the user to explicitly select which</span><br><span style="color: hsl(120, 100%, 40%);">+local IP addresses shall be used in SCTP multi-homing for the SIGTRAN</span><br><span style="color: hsl(120, 100%, 40%);">+associations it manages.  The user can achieve this by specifying</span><br><span style="color: hsl(120, 100%, 40%);">+multiple `local-ip` VTY commands within one `asp` (SCTP client role) or</span><br><span style="color: hsl(120, 100%, 40%);">+within one `listen m3ua 2905` (SCTP server role).</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+==== SCTP role</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+The _SCTP role_ defines which of the two L4 protocol roles SCTP assumes:</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+* The _SCTP server_ role binds to a local port and handles incoming</span><br><span style="color: hsl(120, 100%, 40%);">+  connections from clients</span><br><span style="color: hsl(120, 100%, 40%);">+* The _SCTP client_ role connects to a remote SCTP sever.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+==== M3UA/SUA role</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+The _M3UA role_ (or _SUA role_) determines which role a given peer of a</span><br><span style="color: hsl(120, 100%, 40%);">+M3UA connection implements.  3GPP specifies the following role:</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+* _SGP_ (Signaling Gateway): The entity connected to the larger SS7</span><br><span style="color: hsl(120, 100%, 40%);">+  network</span><br><span style="color: hsl(120, 100%, 40%);">+* _ASP_ (Application Server Process): A client application that connects</span><br><span style="color: hsl(120, 100%, 40%);">+  to the SGW to talk to the SS7 network</span><br><span style="color: hsl(120, 100%, 40%);">+* _IPSP_ (IP Server Process): M3UA in point-to-point mode</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+Osmocom (libosmo-sigtran) implements both the SGP and ASP roles, but not</span><br><span style="color: hsl(120, 100%, 40%);">+the IPSP role.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+==== traffic modes in SIGTRAN</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+Whenever an AS consists of multiple ASPs, the traffic mode expresses how</span><br><span style="color: hsl(120, 100%, 40%);">+messages are distributed between those ASPs.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+* _Override_: There is always one active ASP and multiple hot standby</span><br><span style="color: hsl(120, 100%, 40%);">+  ASPs.  If the active ASP fails, one of the remaining ASPs will become</span><br><span style="color: hsl(120, 100%, 40%);">+  the new active ASP.</span><br><span style="color: hsl(120, 100%, 40%);">+* _Loadshare_: The messages will be distributed between the different</span><br><span style="color: hsl(120, 100%, 40%);">+  ASPs in a way to distribute the load among them.  Details are</span><br><span style="color: hsl(120, 100%, 40%);">+  implementation specific.</span><br><span style="color: hsl(120, 100%, 40%);">+* _Broadcast_: A copy of every incoming signaling message is sent to</span><br><span style="color: hsl(120, 100%, 40%);">+  _all_ the ASPs in broadcast traffic mode.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+Osmocom (libosmo-sigtran) implements all above-mentioned traffic modes.</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/21267">change 21267</a>. To unsubscribe, or for help writing mail filters, visit <a href="https://gerrit.osmocom.org/settings">settings</a>.</p><div itemscope itemtype="http://schema.org/EmailMessage"><div itemscope itemprop="action" itemtype="http://schema.org/ViewAction"><link itemprop="url" href="https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/21267"/><meta itemprop="name" content="View Change"/></div></div>

<div style="display:none"> Gerrit-Project: osmo-gsm-manuals </div>
<div style="display:none"> Gerrit-Branch: master </div>
<div style="display:none"> Gerrit-Change-Id: I4c54dbde5a0b0f6ae38efdd047b17b4dbaae12c3 </div>
<div style="display:none"> Gerrit-Change-Number: 21267 </div>
<div style="display:none"> Gerrit-PatchSet: 1 </div>
<div style="display:none"> Gerrit-Owner: laforge <laforge@osmocom.org> </div>
<div style="display:none"> Gerrit-Reviewer: Jenkins Builder </div>
<div style="display:none"> Gerrit-MessageType: merged </div>