Support for SNS auto-configuration (SIZE / SNS-CONFIG procedure)
3GPP TS 48.016 Section 6.2 specifies the "IP Sub-Network Service Protocol" (SNS), which can be used to auto-configure the NS-VCs and their IP addresses/ports between one NSE and the SGSN.
We don't implement this so far, as the spec states that this is an optional protocol and that NS-VCs may also be configured statically.
there's an early/experimental implementation available in the
laforge/gb-sns branches of libosmocore.git and osmo-pcu.git.
When running against PCU_Tests.ttcn from the
laforge/gb-sns branch of osmo-ttcn3-hacks.git, it produces a full SNS handshake as can be seen in the attached pcap file.
The code needs some clean-up. The pre-existing libosmogb API doesn't really distinguish between NS-Entities (NSE) and NS-VirtualConnections (NSVC). In order to properly suppor this, the following sequence of events should be considered:
- NS Instance with NS-Entity is created
- SNS handshake is performed
- NS-VCs are created from SNS handshake result
- NS-RESET procedure is initiated for each NS-VC
- NS Instance is created
- NS-VC is created
- SNS handshake is performed, result ignored
- NS-RESET procedure is initiated