mirror of https://gerrit.osmocom.org/libosmocore
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. The GSUP test output change is becaue we now accept some of the len>2 cases for PDP-Type/Address IE which were being rejected since a couple commits ago. libosmogsm gsup code is now disabled in EMBEDDED mode, since it nows depends on core/socket.h (struct osmo_sockaddr) which is not available in EMBEDDED, and hence fails during build: """ In file included from /build/include/osmocom/gsm/gsup.h:45, from /build/src/gsm/gsup_sms.c:28: /build/include/osmocom/core/socket.h:15:10: fatal error: arpa/inet.h: No such file or directory 15 | #include <arpa/inet.h> | ^~~~~~~~~~~~~ """ Related: OS#6091 Change-Id: I775ff9c3be165d9f30d6ab55d03f99b6104eadd6 |
||
---|---|---|
.. | ||
kdf | ||
milenage | ||
tuak | ||
Makefile.am | ||
a5.c | ||
abis_nm.c | ||
apn.c | ||
auth_comp128v1.c | ||
auth_comp128v23.c | ||
auth_core.c | ||
auth_milenage.c | ||
auth_tuak.c | ||
auth_xor.c | ||
auth_xor_2g.c | ||
bsslap.c | ||
bssmap_le.c | ||
bts_features.c | ||
cbsp.c | ||
comp128.c | ||
comp128v23.c | ||
gad.c | ||
gan.c | ||
gea.c | ||
gprs_cipher_core.c | ||
gprs_gea.c | ||
gprs_rlc.c | ||
gsm48.c | ||
gsm48_arfcn_range_encode.c | ||
gsm48_ie.c | ||
gsm48_rest_octets.c | ||
gsm0341.c | ||
gsm0411_smc.c | ||
gsm0411_smr.c | ||
gsm0411_utils.c | ||
gsm0414.c | ||
gsm0480.c | ||
gsm0502.c | ||
gsm0808.c | ||
gsm0808_utils.c | ||
gsm23003.c | ||
gsm23236.c | ||
gsm29118.c | ||
gsm29205.c | ||
gsm44021.c | ||
gsm44068.c | ||
gsm48049.c | ||
gsm_04_08_gprs.c | ||
gsm_utils.c | ||
gsup.c | ||
gsup_sms.c | ||
ipa.c | ||
iuup.c | ||
kasumi.c | ||
kdf.c | ||
lapdm.c | ||
libosmogsm.map | ||
mncc.c | ||
oap.c | ||
oap_client.c | ||
rlp.c | ||
rsl.c | ||
rxlev_stat.c | ||
sysinfo.c | ||
tlv_parser.c |