Commit 7d837239 authored by winckel's avatar winckel

Corrected interpretation of "numberofelements" field in tracking area list (must be used as N+1).

git-svn-id: http://svn.eurecom.fr/openair4G/trunk@4909 818b1a75-f10b-46b9-bf7c-635c3b92a50f
parent edc18f00
...@@ -124,10 +124,6 @@ int emm_recv_attach_accept(attach_accept_msg *msg, int *emm_cause) ...@@ -124,10 +124,6 @@ int emm_recv_attach_accept(attach_accept_msg *msg, int *emm_cause)
/* Only list of TACs belonging to one PLMN with consecutive /* Only list of TACs belonging to one PLMN with consecutive
* TAC values is supported */ * TAC values is supported */
*emm_cause = EMM_CAUSE_IE_NOT_IMPLEMENTED; *emm_cause = EMM_CAUSE_IE_NOT_IMPLEMENTED;
} else if (msg->tailist.numberofelements < 1) {
/* The tracking area identity list shall contain
* at leat one TAI value */
*emm_cause = EMM_CAUSE_INVALID_MANDATORY_INFO;
} else if ( (msg->presencemask & ATTACH_ACCEPT_GUTI_PRESENT) && } else if ( (msg->presencemask & ATTACH_ACCEPT_GUTI_PRESENT) &&
(msg->guti.guti.typeofidentity != EPS_MOBILE_IDENTITY_GUTI) ) { (msg->guti.guti.typeofidentity != EPS_MOBILE_IDENTITY_GUTI) ) {
/* The only supported type of EPS mobile identity is GUTI */ /* The only supported type of EPS mobile identity is GUTI */
...@@ -151,7 +147,10 @@ int emm_recv_attach_accept(attach_accept_msg *msg, int *emm_cause) ...@@ -151,7 +147,10 @@ int emm_recv_attach_accept(attach_accept_msg *msg, int *emm_cause)
T3423 = gprs_timer_value(&msg->t3423value); T3423 = gprs_timer_value(&msg->t3423value);
} }
/* Get the tracking area list the UE is registered to */ /* Get the tracking area list the UE is registered to */
int n_tais = msg->tailist.numberofelements;
/* LW: number of elements is coded as N-1 (0 -> 1 element, 1 -> 2 elements...),
* see 3GPP TS 24.301, section 9.9.3.33.1 */
int n_tais = msg->tailist.numberofelements + 1;
tai_t tai[n_tais]; tai_t tai[n_tais];
for (i = 0; i < n_tais; i++) { for (i = 0; i < n_tais; i++) {
tai[i].plmn.MCCdigit1 = msg->tailist.mccdigit1; tai[i].plmn.MCCdigit1 = msg->tailist.mccdigit1;
......
...@@ -79,7 +79,9 @@ void dump_tracking_area_identity_list_xml(TrackingAreaIdentityList *trackingarea ...@@ -79,7 +79,9 @@ void dump_tracking_area_identity_list_xml(TrackingAreaIdentityList *trackingarea
/* Don't display IEI if = 0 */ /* Don't display IEI if = 0 */
printf(" <IEI>0x%X</IEI>\n", iei); printf(" <IEI>0x%X</IEI>\n", iei);
printf(" <Type of list>%u</Type of list>\n", trackingareaidentitylist->typeoflist); printf(" <Type of list>%u</Type of list>\n", trackingareaidentitylist->typeoflist);
printf(" <Number of elements>%u</Number of elements>\n", trackingareaidentitylist->numberofelements); /* LW: number of elements is coded as N-1 (0 -> 1 element, 1 -> 2 elements...),
* see 3GPP TS 24.301, section 9.9.3.33.1 */
printf(" <Number of elements>%u</Number of elements>\n", trackingareaidentitylist->numberofelements + 1);
printf(" <MCC digit 2>%u</MCC digit 2>\n", trackingareaidentitylist->mccdigit2); printf(" <MCC digit 2>%u</MCC digit 2>\n", trackingareaidentitylist->mccdigit2);
printf(" <MCC digit 1>%u</MCC digit 1>\n", trackingareaidentitylist->mccdigit1); printf(" <MCC digit 1>%u</MCC digit 1>\n", trackingareaidentitylist->mccdigit1);
printf(" <MNC digit 3>%u</MNC digit 3>\n", trackingareaidentitylist->mncdigit3); printf(" <MNC digit 3>%u</MNC digit 3>\n", trackingareaidentitylist->mncdigit3);
......
...@@ -731,11 +731,12 @@ ssize_t taiList(char* buffer, size_t len, const TrackingAreaIdentityList* tai) ...@@ -731,11 +731,12 @@ ssize_t taiList(char* buffer, size_t len, const TrackingAreaIdentityList* tai)
tai->mncdigit3); tai->mncdigit3);
} }
if (tai->numberofelements > 0) { index += snprintf(buffer + index, len - index,
index += snprintf(buffer + index, len - index, ", n_tacs = %u, tac = 0x%.4x",
", n_tacs = %u, tac = 0x%.4x", /* LW: number of elements is coded as N-1 (0 -> 1 element, 1 -> 2 elements...),
tai->numberofelements, tai->tac); * see 3GPP TS 24.301, section 9.9.3.33.1 */
} tai->numberofelements + 1,
tai->tac);
index += snprintf(buffer + index, len - index, "}"); index += snprintf(buffer + index, len - index, "}");
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment