mirror of https://gerrit.osmocom.org/libosmocore
GSUP: Add OSMO_GSUP_CN_DOMAIN_IE to differentiate CS and PS plane
We're starting to use GSUP for circuit-switched (CS) plane, so we need to differentiate the two planes somehow from each other.
This commit is contained in:
parent
3b6fb0880c
commit
48dc1a5a64
|
@ -59,6 +59,7 @@ enum osmo_gsup_iei {
|
|||
OSMO_GSUP_AUTN_IE = 0x25,
|
||||
OSMO_GSUP_AUTS_IE = 0x26,
|
||||
OSMO_GSUP_RES_IE = 0x27,
|
||||
OSMO_GSUP_CN_DOMAIN_IE = 0x28,
|
||||
};
|
||||
|
||||
/*! GSUP message type */
|
||||
|
@ -97,6 +98,11 @@ enum osmo_gsup_cancel_type {
|
|||
OSMO_GSUP_CANCEL_TYPE_WITHDRAW = 2, /* on wire: 1 */
|
||||
};
|
||||
|
||||
enum osmo_gsup_cn_domain {
|
||||
OSMO_GSUP_CN_DOMAIN_PS = 1,
|
||||
OSMO_GSUP_CN_DOMAIN_CS = 2,
|
||||
};
|
||||
|
||||
/*! parsed/decoded PDP context information */
|
||||
struct osmo_gsup_pdp_info {
|
||||
unsigned int context_id;
|
||||
|
@ -132,6 +138,7 @@ struct osmo_gsup_message {
|
|||
const uint8_t *hlr_enc;
|
||||
size_t hlr_enc_len;
|
||||
const uint8_t *auts;
|
||||
enum osmo_gsup_cn_domain cn_domain;
|
||||
};
|
||||
|
||||
int osmo_gsup_decode(const uint8_t *data, size_t data_len,
|
||||
|
|
|
@ -329,6 +329,10 @@ int osmo_gsup_decode(const uint8_t *const_data, size_t data_len,
|
|||
gsup_msg->hlr_enc_len = value_len;
|
||||
break;
|
||||
|
||||
case OSMO_GSUP_CN_DOMAIN_IE:
|
||||
gsup_msg->cn_domain = *value;
|
||||
break;
|
||||
|
||||
default:
|
||||
LOGP(DLGSUP, LOGL_NOTICE,
|
||||
"GSUP IE type %d unknown\n", iei);
|
||||
|
@ -469,4 +473,9 @@ void osmo_gsup_encode(struct msgb *msg, const struct osmo_gsup_message *gsup_msg
|
|||
|
||||
if (gsup_msg->auts)
|
||||
msgb_tlv_put(msg, OSMO_GSUP_AUTS_IE, 16, gsup_msg->auts);
|
||||
|
||||
if (gsup_msg->cn_domain) {
|
||||
uint8_t dn = gsup_msg->cn_domain;
|
||||
msgb_tlv_put(msg, OSMO_GSUP_CN_DOMAIN_IE, 1, &dn);
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue