diff --git a/openair-cn/NAS/EURECOM-NAS/src/emm/Attach.c b/openair-cn/NAS/EURECOM-NAS/src/emm/Attach.c
index 2ae268d28e..11fc4b0822 100644
--- a/openair-cn/NAS/EURECOM-NAS/src/emm/Attach.c
+++ b/openair-cn/NAS/EURECOM-NAS/src/emm/Attach.c
@@ -2320,7 +2320,9 @@ static int _emm_attach_accept(emm_data_context_t *emm_ctx, attach_data_t *data)
emm_sap.u.emm_as.u.establish.new_guti = emm_ctx->guti;
} else {
emm_sap.u.emm_as.u.establish.UEid.guti = emm_ctx->guti;
- emm_sap.u.emm_as.u.establish.new_guti = NULL;
+#warning "TEST LG FORCE GUTI IE IN ATTACH ACCEPT"
+ emm_sap.u.emm_as.u.establish.new_guti = emm_ctx->guti;
+ //emm_sap.u.emm_as.u.establish.new_guti = NULL;
}
emm_sap.u.emm_as.u.establish.n_tacs = emm_ctx->n_tacs;
emm_sap.u.emm_as.u.establish.tac = emm_ctx->tac;
diff --git a/openair-cn/NAS/EURECOM-NAS/src/emm/msg/AttachAccept.c b/openair-cn/NAS/EURECOM-NAS/src/emm/msg/AttachAccept.c
index 20669028dd..d9b2567501 100644
--- a/openair-cn/NAS/EURECOM-NAS/src/emm/msg/AttachAccept.c
+++ b/openair-cn/NAS/EURECOM-NAS/src/emm/msg/AttachAccept.c
@@ -269,6 +269,10 @@ int encode_attach_accept(attach_accept_msg *attach_accept, uint8_t *buffer, uint
encoded += encode_result;
}
+#warning "LG TEST override t3402value"
+ attach_accept->presencemask |= ATTACH_ACCEPT_T3402_VALUE_PRESENT;
+ attach_accept->t3402value.unit = GPRS_TIMER_UNIT_60S;
+ attach_accept->t3402value.timervalue = 12;
if ((attach_accept->presencemask & ATTACH_ACCEPT_T3402_VALUE_PRESENT)
== ATTACH_ACCEPT_T3402_VALUE_PRESENT)
{
diff --git a/openair-cn/NAS/EURECOM-NAS/src/esm/msg/ActivateDedicatedEpsBearerContextRequest.h b/openair-cn/NAS/EURECOM-NAS/src/esm/msg/ActivateDedicatedEpsBearerContextRequest.h
index fe3a0f5171..3a18057c8a 100644
--- a/openair-cn/NAS/EURECOM-NAS/src/esm/msg/ActivateDedicatedEpsBearerContextRequest.h
+++ b/openair-cn/NAS/EURECOM-NAS/src/esm/msg/ActivateDedicatedEpsBearerContextRequest.h
@@ -61,7 +61,7 @@
LLC_SERVICE_ACCESS_POINT_IDENTIFIER_MAXIMUM_LENGTH + \
RADIO_PRIORITY_MAXIMUM_LENGTH + \
PACKET_FLOW_IDENTIFIER_MAXIMUM_LENGTH + \
- PROTOCOL_CONFIGURATION_OPTIONS_MAXIMUM_LENGTH )
+ PROTOCOL_CONFIGURATION_OPTIONS_MAXIMUM_LENGTH)
/* If an optional value is present and should be encoded, the corresponding
* Bit mask should be set to 1.
diff --git a/openair-cn/NAS/EURECOM-NAS/src/esm/sap/esm_send.c b/openair-cn/NAS/EURECOM-NAS/src/esm/sap/esm_send.c
index f17ccd4ccb..84a7374551 100644
--- a/openair-cn/NAS/EURECOM-NAS/src/esm/sap/esm_send.c
+++ b/openair-cn/NAS/EURECOM-NAS/src/esm/sap/esm_send.c
@@ -610,6 +610,18 @@ int esm_send_activate_default_eps_bearer_context_request(int pti,
msg->esmcause = esm_cause;
}
+#warning "TEST LG FORCE APN-AMBR"
+ LOG_TRACE(INFO, "ESM-SAP - FORCE APN-AMBR");
+ msg->presencemask |=
+ ACTIVATE_DEFAULT_EPS_BEARER_CONTEXT_REQUEST_APNAMBR_PRESENT;
+ msg->apnambr.apnambrfordownlink = 0xfe; // (8640kbps)
+ msg->apnambr.apnambrforuplink = 0xfe; // (8640kbps)
+ msg->apnambr.apnambrfordownlink_extended = 0xde; // (200Mbps)
+ msg->apnambr.apnambrforuplink_extended = 0x9e; // (100Mbps)
+ msg->apnambr.apnambrfordownlink_extended2 = 0;
+ msg->apnambr.apnambrforuplink_extended2 = 0;
+ msg->apnambr.extensions = 0 | APN_AGGREGATE_MAXIMUM_BIT_RATE_MAXIMUM_EXTENSION_PRESENT;
+
LOG_TRACE(INFO, "ESM-SAP - Send Activate Default EPS Bearer Context "
"Request message (pti=%d, ebi=%d)",
msg->proceduretransactionidentity, msg->epsbeareridentity);
diff --git a/openair-cn/NAS/EURECOM-NAS/src/ies/ApnAggregateMaximumBitRate.c b/openair-cn/NAS/EURECOM-NAS/src/ies/ApnAggregateMaximumBitRate.c
index dbe85a885f..3cc25b48d2 100644
--- a/openair-cn/NAS/EURECOM-NAS/src/ies/ApnAggregateMaximumBitRate.c
+++ b/openair-cn/NAS/EURECOM-NAS/src/ies/ApnAggregateMaximumBitRate.c
@@ -51,6 +51,18 @@ int decode_apn_aggregate_maximum_bit_rate(ApnAggregateMaximumBitRate *apnaggrega
decoded++;
apnaggregatemaximumbitrate->apnambrforuplink = *(buffer + decoded);
decoded++;
+ if (ielen >= 4) {
+ apnaggregatemaximumbitrate->apnambrfordownlink_extended = *(buffer + decoded);
+ decoded++;
+ apnaggregatemaximumbitrate->apnambrforuplink_extended = *(buffer + decoded);
+ decoded++;
+ if (ielen >= 6) {
+ apnaggregatemaximumbitrate->apnambrfordownlink_extended2 = *(buffer + decoded);
+ decoded++;
+ apnaggregatemaximumbitrate->apnambrforuplink_extended2 = *(buffer + decoded);
+ decoded++;
+ }
+ }
#if defined (NAS_DEBUG)
dump_apn_aggregate_maximum_bit_rate_xml(apnaggregatemaximumbitrate, iei);
#endif
@@ -76,6 +88,18 @@ int encode_apn_aggregate_maximum_bit_rate(ApnAggregateMaximumBitRate *apnaggrega
encoded++;
*(buffer + encoded) = apnaggregatemaximumbitrate->apnambrforuplink;
encoded++;
+ if (apnaggregatemaximumbitrate->extensions & APN_AGGREGATE_MAXIMUM_BIT_RATE_MAXIMUM_EXTENSION_PRESENT) {
+ *(buffer + encoded) = apnaggregatemaximumbitrate->apnambrfordownlink_extended;
+ encoded++;
+ *(buffer + encoded) = apnaggregatemaximumbitrate->apnambrforuplink_extended;
+ encoded++;
+ if (apnaggregatemaximumbitrate->extensions & APN_AGGREGATE_MAXIMUM_BIT_RATE_MAXIMUM_EXTENSION2_PRESENT) {
+ *(buffer + encoded) = apnaggregatemaximumbitrate->apnambrfordownlink_extended2;
+ encoded++;
+ *(buffer + encoded) = apnaggregatemaximumbitrate->apnambrforuplink_extended2;
+ encoded++;
+ }
+ }
*lenPtr = encoded - 1 - ((iei > 0) ? 1 : 0);
return encoded;
}
@@ -88,6 +112,14 @@ void dump_apn_aggregate_maximum_bit_rate_xml(ApnAggregateMaximumBitRate *apnaggr
printf(" 0x%X\n", iei);
printf(" %u\n", apnaggregatemaximumbitrate->apnambrfordownlink);
printf(" %u\n", apnaggregatemaximumbitrate->apnambrforuplink);
+ if (apnaggregatemaximumbitrate->extensions & APN_AGGREGATE_MAXIMUM_BIT_RATE_MAXIMUM_EXTENSION_PRESENT) {
+ printf(" %u\n", apnaggregatemaximumbitrate->apnambrfordownlink_extended);
+ printf(" %u\n", apnaggregatemaximumbitrate->apnambrforuplink_extended);
+ if (apnaggregatemaximumbitrate->extensions & APN_AGGREGATE_MAXIMUM_BIT_RATE_MAXIMUM_EXTENSION2_PRESENT) {
+ printf(" %u\n", apnaggregatemaximumbitrate->apnambrfordownlink_extended);
+ printf(" %u\n", apnaggregatemaximumbitrate->apnambrforuplink_extended);
+ }
+ }
printf("\n");
}
diff --git a/openair-cn/NAS/EURECOM-NAS/src/ies/ApnAggregateMaximumBitRate.h b/openair-cn/NAS/EURECOM-NAS/src/ies/ApnAggregateMaximumBitRate.h
index 620ec81719..6823c53476 100644
--- a/openair-cn/NAS/EURECOM-NAS/src/ies/ApnAggregateMaximumBitRate.h
+++ b/openair-cn/NAS/EURECOM-NAS/src/ies/ApnAggregateMaximumBitRate.h
@@ -38,9 +38,17 @@
#define APN_AGGREGATE_MAXIMUM_BIT_RATE_MINIMUM_LENGTH 4
#define APN_AGGREGATE_MAXIMUM_BIT_RATE_MAXIMUM_LENGTH 8
+#define APN_AGGREGATE_MAXIMUM_BIT_RATE_MAXIMUM_EXTENSION_PRESENT (1<<0)
+#define APN_AGGREGATE_MAXIMUM_BIT_RATE_MAXIMUM_EXTENSION2_PRESENT (1<<1)
+
typedef struct ApnAggregateMaximumBitRate_tag {
uint8_t apnambrfordownlink;
uint8_t apnambrforuplink;
+ uint8_t apnambrfordownlink_extended;
+ uint8_t apnambrforuplink_extended;
+ uint8_t apnambrfordownlink_extended2;
+ uint8_t apnambrforuplink_extended2;
+ uint8_t extensions;
} ApnAggregateMaximumBitRate;
int encode_apn_aggregate_maximum_bit_rate(ApnAggregateMaximumBitRate *apnaggregatemaximumbitrate, uint8_t iei, uint8_t *buffer, uint32_t len);