Project

General

Profile

Feature #1842

Full M3UA SIGTRAN variant in libosmo-sccp

Added by laforge 7 months ago. Updated 2 months ago.

Status:
Closed
Priority:
High
Assignee:
Category:
-
Start date:
11/18/2016
Due date:
% Done:

100%

Resolution:
Spec Reference:

Description

The M3UA+SCCP variant of SIGTRAN is used for spec-compliant AoIP and IuCS/IuPS interfaces. Osmocom libosmo-sccp currently only implements the SUA variant, and thus is not fully compatible with the lower protocol stacking of those standard interfaces.


Related issues

Related to libosmo-sccp - Feature #1930: Clean up and merge the Iu branch (SUA and SCCP User primitives) Closed 01/28/2017

History

#1 Updated by laforge 7 months ago

  • Target version deleted (120)

#2 Updated by laforge 7 months ago

  • Project changed from Cellular Infrastructure to OpenBSC
  • Target version set to A-over-IP interface as per 3GPP

#3 Updated by laforge 6 months ago

  • Assignee set to laforge

#4 Updated by laforge 6 months ago

  • Priority changed from Normal to High

#5 Updated by laforge 5 months ago

  • Related to Feature #1930: Clean up and merge the Iu branch (SUA and SCCP User primitives) added

#6 Updated by laforge 5 months ago

  • % Done changed from 0 to 50

see gerrit patches https://gerrit.osmocom.org/#/c/1803/ till https://gerrit.osmocom.org/#/c/1811/ for some preparatory work. The actual M3UA and SCCP code is following up to that, currently in a laforge/sigtran branch of libosmo-sccp.git (see http://git.osmocom.org/libosmo-sccp/log/?h=laforge/sigtran)

The general idea is:
  • use osmo_prim to formally implement the SAP specified between protocol layers, e.g. MTP-SAP between M3UA and SCCP, or SCU-SAP between SCCP User and application
  • use osmo_fsm to implement the state machines, e.g. ASP and AS FSM of M3UA
  • use osmo_fsm to implement SCCP SCOC (connection oriented) per-connection state machine
  • migrate existing SUA code to new SCOC FSM
  • use parsed SUA (struct xua_msg) representation by default in all code, transcode from SCCP wire format to this for incoming messages, and from xua_msg to SCCP on outgoign messages. This helps keep the code more simple.
Various bits and pieces already exist in my branch
  • untested but fairly complete osmo_fsm for SCOC
  • definition for MTP SAP
  • xUA ASP and AS osmo_fsm implementation
  • SCCP <-> SUA transcoding with preliminary unit tests

More work is needed to pull the strings together and fix missing gaps.

#7 Updated by laforge 3 months ago

  • % Done changed from 50 to 80

I've been making significant progress over the last weeks here. The current status is very promising.

  • M3UA is supported for both ASP and SG role
  • point-code routing is implemented
  • SCCP connectionless and connection-oriented is implemented
    • Connection Oriented FSM uses strict state machine based on osmo_fsm
  • MTP-USER and SCCP-USER SAP has been formalized/specified
  • ASP and AS FSMs implemented
  • Example server and client can exchange SCCP user data as expected

I've lately been looking into correct handling of the various error paths, T(ias) expiration, ...

What's missing so far:
  • routing key management
  • SCCP Global Title routing
  • SCCP Global Title Translation
  • more unit tests
  • T(r) in ASP and associated queueing of signaling messages
  • SCCPlite support

#8 Updated by laforge 3 months ago

  • Status changed from New to In Progress
  • % Done changed from 80 to 90

See gerrit review Id 2196 through 2220, the patchset has been published and is undergoing review.

The implementation is much more complete than required at first sight for this ticket/topic, but I wanted to visit this topic once and not have three more generations of SCCP or SIGTRAN related code.

#9 Updated by laforge 3 months ago

M3UA code is ready for merge.

Several dozen of patches in Gerrit for review currently about this.

I found https://github.com/nplab/m3ua-testtool implementing the ETSI M3UA test suite from http://www.etsi.org/deliver/etsi_ts/102300_102399/102381/01.01.01_60/ts_102381v010101p.pdf and ran all relevant tests against my M3UA code in libosmo-sigtran: Almost all "PASS" now.

#11 Updated by laforge 2 months ago

  • Status changed from In Progress to Resolved
  • % Done changed from 90 to 100

patches merged, marking as resolved.

#12 Updated by laforge 2 months ago

  • Status changed from Resolved to Closed

Also available in: Atom PDF