帮同学宣传一下http://shop57644665.taobao.com/

当MS选择了一个不同的小区后,MM就需要开始进行location updating.此时MM的状态应该是IDLE ATTEMPT TO UPDATE.。

如果Location Update被接受,则RR会返回如下原语

MM在处理RR_DATA_IND(Location Update Accept)是会先停掉Timer T3212,T3210,然后将MM的 mm_data->reg.update_stat = MS_UPDATED;

在RR_DATA_IND中会带有Mobile Identity的类型。Mobile Identity的类型可能是TMSI,IMSI,IMEI或者为空

MM对应不同的Mobile Identity处理如下:

MM会先reallocation TMSI,然后将RR_DATA_IND中的TMSI保存在MM信息的reg.tmsi中,然后向RR发送BSIZE_U_TMSI_REALLOC_COMP,保存RR_DATA_IND的lai信息,然后发送RR_SYNC_REQ(rr_sync_req_tmsi),最后发送RR_SYNC_REQ (Location Area allowed)。

对应代码如下:

MCAST (tmsi_realloc_comp, U_TMSI_REALLOC_COMP);

/* Save TMSI in MM registration data */

mm_store_tmsi (&loc_upd_accept->mob_id);

/* Send RR_DATA_REQ (TMSI_REALLOC_COMPLETE) */

tmsi_realloc_comp->msg_type = U_TMSI_REALLOC_COMP;

for_data_req (BSIZE_U_TMSI_REALLOC_COMP);

mm_data->reg.lai = loc_upd_accept->loc_area_ident;

/* Send RR_SYNC_REQ */

mm_build_rr_sync_req_tmsi ();

/* Send RR_SYNC_REQ (Location Area allowed) */

mm_build_rr_sync_req_cause (SYNCCS_LAI_ALLOW);

MM会先删除存储的TMSI,保存RR_DATA_IND的lai信息,然后通过RR_SYNC_REQ向RR说明TMSI已经失效,最后发送RR_SYNC_REQ (Location Area allowed)。

对应代码如下:

mm_data->reg.tmsi = TMSI_INVALID_VALUE;

mm_build_rr_sync_req_cause (SYNCCS_TMSI_INVAL);

mm_data->reg.lai = loc_upd_accept->loc_area_ident;

mm_build_rr_sync_req_cause (SYNCCS_LAI_ALLOW);


MM只会创建一个BSIZE_B_MM_STATUS发送给RR,MM似乎会将这个mobile identity忽略掉。

对应代码如下:

MCAST (mm_status, B_MM_STATUS);

mm_build_mm_status (RC_INCORRECT_MESSAGE, mm_status);

for_data_req (BSIZE_B_MM_STATUS);

MM直接向RR发送RR_SYNC_REQ (Location Area allowed)。

对应代码如下:

mm_data->reg.lai = loc_upd_accept->loc_area_ident;

mm_build_rr_sync_req_cause (SYNCCS_LAI_ALLOW);