The previous PDP-Type IE should have been a PDP-Address from the
start, since having only PDP-Type with no address is only a specific
case (dynamic addressing).
This becomes clear by looking at other similar protocols like:
* MAP: APN-Configuration IE has servedPartyIP-IP{v4,v6}-Address IEs
* Diameter S6b, 3GPP TS 29.272 7.3.35 APN-Configuration contains
Served-Party-IP-Address AVPs
* Diameter SWx, 3GPP TS 29.273 APN-Configuration.
* GTPv1C Ts 29.060 7.7.29 PDP Context containing PDP Address.
Since PDP-Type on its own really makes no sense, being it a special case
of PDP-Address, let's keep the IE by renaming it (keeping old name too
for API backward compat) and extend it to support lengths > 2 bytes.
Old implementation of libosmogsm gsup actually ignored lengths > 2
bytes, so we are safe acting against older implementations here, both
on the sending and receiving side on the wire.
The big drawback of this commit is that it breaks ABI compatibility due
to adding "struct osmo_sockaddr pdp_address[2];" to struct
osmo_gsup_pdp_info, which in turn affects shift of fields in struct
osmo_gsup_message. Unfortunately, there's not much that can be done to
improve the situation when adding the missing field, due to existing API
having the same struct for all messages. Ideally we'd have 1 union with
structs per message type inside, this way the ABI break would be far
less pronounced.
Related: OS#6091
Depends: libosmocore.git Change-Id 70be3560659c58f24b8db529c4fc85da4bb0ec04
Depends: osmo-gsm-manuals.git Change-Id Ifb4e44b23d19ea049f03a3602c39f2471ff1bff4
Change-Id: I05562d7b0c0941ee619cbf07d90af47652c3897c
If a message that has triggered the E-Routing-Error contains no
session related IEs, they will also be absent in the error message.
Change-Id: I0c0c84c9dbd2e53e7d1720868cc157f9e21749c2
In libosmcore.git Change-Id I93850710ab55a605bf61b95063a69682a2899bb1,
a new OSMO_GSUP_CURRENT_RAT_TYPE_IE was introduced. Let's add support
for it here, too.
In git commit b76c7fad94 we introduced
support for the GSUP RAT_TYPE IE (0x29). At that time, the
corresponding libosmocore change (Change-Id
I93850710ab55a605bf61b95063a69682a2899bb1) was still in review.
Meanwhile, that change has been merged, and the final IE name now
is OSMO_GSUP_SUPPORTED_RAT_TYPES_IE.
Encoding and decoding of the following GSUP messages were added to support inter-MSC handover functionality:
* E Prepare Handover Request/Result/Error
* E Prepare Subsequent Handover Request/Result/Error
* E Send End Signal Request/Result/Error
* E Forward Access Signalling Request
* E Process Access Signalling Request
* E Close, E Abort, E Routing Error.
Tests for GSUP E Interface messages were added from libosmocore library.
A number of bugs were found in the initial implementation and fixed during the first real tests and after the tests from libosmocom library were added to the code.
This IE was introduced together with inter-MSC handover implementation.
Message Class IE is mandatory for Inter-MSC GSUP messages and optional for Subscriber Management, SS and SMS messages.