summaryrefslogtreecommitdiffstats
path: root/openbsc/src/gprs/gprs_gsup_messages.c
diff options
context:
space:
mode:
Diffstat (limited to 'openbsc/src/gprs/gprs_gsup_messages.c')
-rw-r--r--openbsc/src/gprs/gprs_gsup_messages.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/openbsc/src/gprs/gprs_gsup_messages.c b/openbsc/src/gprs/gprs_gsup_messages.c
index 56f78fd..cb14fa1 100644
--- a/openbsc/src/gprs/gprs_gsup_messages.c
+++ b/openbsc/src/gprs/gprs_gsup_messages.c
@@ -94,6 +94,11 @@ static int decode_pdp_info(uint8_t *data, size_t data_len,
pdp_info->apn_enc_len = value_len;
break;
+ case GPRS_GSUP_PDP_QOS_IE:
+ pdp_info->qos_enc = value;
+ pdp_info->qos_enc_len = value_len;
+ break;
+
default:
LOGP(DGPRS, LOGL_ERROR,
"GSUP IE type %d not expected in PDP info\n", iei);
@@ -333,6 +338,11 @@ static void encode_pdp_info(struct msgb *msg, enum gprs_gsup_iei iei,
pdp_info->apn_enc_len, pdp_info->apn_enc);
}
+ if (pdp_info->qos_enc) {
+ msgb_tlv_put(msg, GPRS_GSUP_PDP_QOS_IE,
+ pdp_info->qos_enc_len, pdp_info->qos_enc);
+ }
+
/* Update length field */
*len_field = msgb_length(msg) - old_len;
}