Read configuration parameter Broadcast PLMN index for MME
This commit is contained in:
@@ -2349,6 +2349,30 @@ int RCconfig_S1(MessageDef *msg_p, uint32_t i) {
|
|||||||
S1AP_REGISTER_ENB_REQ (msg_p).mme_ip_address[l].ipv4 = 1;
|
S1AP_REGISTER_ENB_REQ (msg_p).mme_ip_address[l].ipv4 = 1;
|
||||||
S1AP_REGISTER_ENB_REQ (msg_p).mme_ip_address[l].ipv6 = 1;
|
S1AP_REGISTER_ENB_REQ (msg_p).mme_ip_address[l].ipv6 = 1;
|
||||||
}
|
}
|
||||||
|
if (S1ParamList.paramarray[l][ENB_MME_BROADCAST_PLMN_INDEX].iptr)
|
||||||
|
S1AP_REGISTER_ENB_REQ(msg_p).broadcast_plmn_num[l] = S1ParamList.paramarray[l][ENB_MME_BROADCAST_PLMN_INDEX].numelt;
|
||||||
|
else
|
||||||
|
S1AP_REGISTER_ENB_REQ(msg_p).broadcast_plmn_num[l] = 0;
|
||||||
|
AssertFatal(S1AP_REGISTER_ENB_REQ(msg_p).broadcast_plmn_num[l] <= S1AP_REGISTER_ENB_REQ(msg_p).num_plmn,
|
||||||
|
"List of broadcast PLMN to be sent to MME can not be longer than actual "
|
||||||
|
"PLMN list (max %d, but is %d)\n",
|
||||||
|
S1AP_REGISTER_ENB_REQ(msg_p).num_plmn,
|
||||||
|
S1AP_REGISTER_ENB_REQ(msg_p).broadcast_plmn_num[l]);
|
||||||
|
for (int el = 0; el < S1AP_REGISTER_ENB_REQ(msg_p).broadcast_plmn_num[l]; ++el) {
|
||||||
|
/* UINTARRAY gets mapped to int, see config_libconfig.c:223 */
|
||||||
|
S1AP_REGISTER_ENB_REQ(msg_p).broadcast_plmn_index[l][el] = S1ParamList.paramarray[l][ENB_MME_BROADCAST_PLMN_INDEX].iptr[el];
|
||||||
|
AssertFatal(S1AP_REGISTER_ENB_REQ(msg_p).broadcast_plmn_index[l][el] >= 0
|
||||||
|
&& S1AP_REGISTER_ENB_REQ(msg_p).broadcast_plmn_index[l][el] < S1AP_REGISTER_ENB_REQ(msg_p).num_plmn,
|
||||||
|
"index for MME's MCC/MNC (%d) is an invalid index for the registered PLMN IDs (%d)\n",
|
||||||
|
S1AP_REGISTER_ENB_REQ(msg_p).broadcast_plmn_index[l][el],
|
||||||
|
S1AP_REGISTER_ENB_REQ(msg_p).num_plmn);
|
||||||
|
}
|
||||||
|
/* if no broadcasst_plmn array is defined, fill default values */
|
||||||
|
if (S1AP_REGISTER_ENB_REQ(msg_p).broadcast_plmn_num[l] == 0) {
|
||||||
|
S1AP_REGISTER_ENB_REQ(msg_p).broadcast_plmn_num[l] = S1AP_REGISTER_ENB_REQ(msg_p).num_plmn;
|
||||||
|
for (int el = 0; el < S1AP_REGISTER_ENB_REQ(msg_p).num_plmn; ++el)
|
||||||
|
S1AP_REGISTER_ENB_REQ(msg_p).broadcast_plmn_index[l][el] = el;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -728,6 +728,7 @@ typedef enum {
|
|||||||
#define ENB_CONFIG_STRING_MME_IPV6_ADDRESS "ipv6"
|
#define ENB_CONFIG_STRING_MME_IPV6_ADDRESS "ipv6"
|
||||||
#define ENB_CONFIG_STRING_MME_IP_ADDRESS_ACTIVE "active"
|
#define ENB_CONFIG_STRING_MME_IP_ADDRESS_ACTIVE "active"
|
||||||
#define ENB_CONFIG_STRING_MME_IP_ADDRESS_PREFERENCE "preference"
|
#define ENB_CONFIG_STRING_MME_IP_ADDRESS_PREFERENCE "preference"
|
||||||
|
#define ENB_CONFIG_STRING_MME_BROADCAST_PLMN_INDEX "broadcast_plmn_index"
|
||||||
|
|
||||||
|
|
||||||
/*-------------------------------------------------------------------------------------------------------------------------------------*/
|
/*-------------------------------------------------------------------------------------------------------------------------------------*/
|
||||||
@@ -739,12 +740,14 @@ typedef enum {
|
|||||||
{ENB_CONFIG_STRING_MME_IPV6_ADDRESS, NULL, 0, uptr:NULL, defstrval:NULL, TYPE_STRING, 0}, \
|
{ENB_CONFIG_STRING_MME_IPV6_ADDRESS, NULL, 0, uptr:NULL, defstrval:NULL, TYPE_STRING, 0}, \
|
||||||
{ENB_CONFIG_STRING_MME_IP_ADDRESS_ACTIVE, NULL, 0, uptr:NULL, defstrval:NULL, TYPE_STRING, 0}, \
|
{ENB_CONFIG_STRING_MME_IP_ADDRESS_ACTIVE, NULL, 0, uptr:NULL, defstrval:NULL, TYPE_STRING, 0}, \
|
||||||
{ENB_CONFIG_STRING_MME_IP_ADDRESS_PREFERENCE, NULL, 0, uptr:NULL, defstrval:NULL, TYPE_STRING, 0}, \
|
{ENB_CONFIG_STRING_MME_IP_ADDRESS_PREFERENCE, NULL, 0, uptr:NULL, defstrval:NULL, TYPE_STRING, 0}, \
|
||||||
|
{ENB_CONFIG_STRING_MME_BROADCAST_PLMN_INDEX, NULL, 0, uptr:NULL, defintarrayval:NULL,TYPE_UINTARRAY, 6} \
|
||||||
}
|
}
|
||||||
|
|
||||||
#define ENB_MME_IPV4_ADDRESS_IDX 0
|
#define ENB_MME_IPV4_ADDRESS_IDX 0
|
||||||
#define ENB_MME_IPV6_ADDRESS_IDX 1
|
#define ENB_MME_IPV6_ADDRESS_IDX 1
|
||||||
#define ENB_MME_IP_ADDRESS_ACTIVE_IDX 2
|
#define ENB_MME_IP_ADDRESS_ACTIVE_IDX 2
|
||||||
#define ENB_MME_IP_ADDRESS_PREFERENCE_IDX 3
|
#define ENB_MME_IP_ADDRESS_PREFERENCE_IDX 3
|
||||||
|
#define ENB_MME_BROADCAST_PLMN_INDEX 4
|
||||||
/*---------------------------------------------------------------------------------------------------------------------------------------*/
|
/*---------------------------------------------------------------------------------------------------------------------------------------*/
|
||||||
|
|
||||||
/* X2 configuration parameters section name */
|
/* X2 configuration parameters section name */
|
||||||
|
|||||||
Reference in New Issue
Block a user