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:
Harald Welte 2016-05-05 18:46:42 +02:00
parent 3b6fb0880c
commit 48dc1a5a64
2 changed files with 16 additions and 0 deletions

View File

@ -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,

View File

@ -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);
}
}