[Bugfix][T108-GSW][bug-view-1583] gsw_get_cellinfo: miss info
Only Configure: No
Affected branch: unknown
Affected module: network
Is it affected on both ZXIC and ASR: only ASR
Self-test: yes
Doc Update: no
Change-Id: Ie1f0f9e6a9a7cf13627269a7063f8af5e92c06de
diff --git a/marvell/lte-telephony/apps/atcmd_server_ss/src/dev_api.c b/marvell/lte-telephony/apps/atcmd_server_ss/src/dev_api.c
index 16e728e..61e7357 100644
--- a/marvell/lte-telephony/apps/atcmd_server_ss/src/dev_api.c
+++ b/marvell/lte-telephony/apps/atcmd_server_ss/src/dev_api.c
@@ -12809,26 +12809,26 @@
//phyCellId, euArfcn, rsrp, rsrq
#ifdef MBTK_AT_SUPPORT
- p += sprintf(p, "%d, %u, %d, %d, %d ", pLteEngmodeInterFreqInfoInd->interFreq[index].phyCellId,
+ p += sprintf(p, "%d, %u, %d, %d, %d", pLteEngmodeInterFreqInfoInd->interFreq[index].phyCellId, //hq modify at 25/06/20
pLteEngmodeInterFreqInfoInd->interFreq[index].euArfcn,
pLteEngmodeInterFreqInfoInd->interFreq[index].rsrp,
pLteEngmodeInterFreqInfoInd->interFreq[index].rsrq,
pLteEngmodeInterFreqInfoInd->interFreq[index].cellId);
#else
- p += sprintf(p, "%u, %u, %u, %u", pLteEngmodeInterFreqInfoInd->interFreq[index].phyCellId,
+ p += sprintf(p, "%u, %u, %u, %u", pLteEngmodeInterFreqInfoInd->interFreq[index].phyCellId, //hq modify at 25/06/20
pLteEngmodeInterFreqInfoInd->interFreq[index].euArfcn,
pLteEngmodeInterFreqInfoInd->interFreq[index].rsrp,
pLteEngmodeInterFreqInfoInd->interFreq[index].rsrq);
#endif
//mcc, lenOfMnc, mnc, tac, cellId
- p += sprintf(p, "%u, %u, %u, %u, %u", pLteEngmodeInterFreqInfoInd->interFreq[index].mcc,
+ p += sprintf(p, ", %u, %u, %u, %u, %u, ", pLteEngmodeInterFreqInfoInd->interFreq[index].mcc, //hq modify at 25/06/20
pLteEngmodeInterFreqInfoInd->interFreq[index].lenOfMnc,
pLteEngmodeInterFreqInfoInd->interFreq[index].mnc,
pLteEngmodeInterFreqInfoInd->interFreq[index].tac,
pLteEngmodeInterFreqInfoInd->interFreq[index].cellId);
//srxlev, threshXLow, threshXHigh, cellReselectionPriority
- p += sprintf(p, "%u, %u, %u, %u", pLteEngmodeInterFreqInfoInd->interFreq[index].srxlev,
+ p += sprintf(p, ", %u, %u, %u, %u", pLteEngmodeInterFreqInfoInd->interFreq[index].srxlev, //hq modify at 25/06/20
pLteEngmodeInterFreqInfoInd->interFreq[index].threshXLow,
pLteEngmodeInterFreqInfoInd->interFreq[index].threshXHigh,
pLteEngmodeInterFreqInfoInd->interFreq[index].cellReselectionPriority);
@@ -12839,7 +12839,7 @@
conv_bandwidth = guldlbandwidth[pLteEngmodeInterFreqInfoInd->interFreq[index].dlBandwidth];
//refSignalPower, dlBandwidth, band, rssi
- p += sprintf(p, "%d, %u, %u, %u", pLteEngmodeInterFreqInfoInd->interFreq[index].refSignalPower,
+ p += sprintf(p, ", %d, %u, %u, %u", pLteEngmodeInterFreqInfoInd->interFreq[index].refSignalPower,
conv_bandwidth,
pLteEngmodeInterFreqInfoInd->interFreq[index].band,
pLteEngmodeInterFreqInfoInd->interFreq[index].rssi);
diff --git a/mbtk/include/mbtk/mbtk_info_api.h b/mbtk/include/mbtk/mbtk_info_api.h
index 362b592..246ef3f 100755
--- a/mbtk/include/mbtk/mbtk_info_api.h
+++ b/mbtk/include/mbtk/mbtk_info_api.h
@@ -413,26 +413,34 @@
MBTK_DISCONNECTED,
} mbtk_call_enum;
-typedef struct
-{
- // LTE server cell: tac, PCI, dlEuarfcn, ulEuarfcn, band
- // LTE cell: phyCellId,euArfcn,rsrp,rsrq
- // WCDMA server cell: lac, ci, arfcn
- // WCDMA cell: lac, ci, arfcn
- // GSM server cell: lac, ci, arfcn, bsic
+ typedef struct
+{
+ // NR server cell:
+ // NR cell:
+ // LTE server cell: tac, PCI, dlEuarfcn, ulEuarfcn, band
+ // LTE cell: phyCellId,euArfcn,rsrp,rsrq
+ // WCDMA server cell: lac, ci, arfcn
+ // WCDMA cell: lac, ci, arfcn
+ // GSM server cell: lac, ci, arfcn, bsic
// GSM cell:
- uint32 value1;
- uint32 value2;
- uint32 value3;
- uint32 value4;
- uint32 value5;
- uint32 value6;
- uint32 value7;
- uint32 value8;
- uint32 value9;
- uint32 value10;
+ uint32 value1; //tac
+ uint32 value2; //pci
+ uint32 value3; //dlEuarfcn
+ uint32 value4; //bler
+ uint32 value5; //band
+ uint32 value6; //mcc
+ uint32 value7; //mnc
+ uint32 value8; //rsrp
+ uint32 value9; //rsrq
+ uint32 value10; //cell identiy
+ uint32 value11; //sinr
+ uint32 value12; //is tdd
+ uint32 value13;
+ uint32 value14;
+ uint32 value15;
} __attribute__((packed)) mbtk_cell_info_t;
+
typedef enum {
MBTK_CALL_RADY, //MT allows commands from TA/TE
MBTK_CALL_UNAVAILABLE, //MT does not allow commands from TA/TE
@@ -818,14 +826,6 @@
MBTK_ECALL_URC_ID_MSD_SEND_FAIL_FOR_NG // NG-eCall fail to transfer MSD
} mbtk_ecall_urc_id_enum;
-typedef struct{
- uint8 cid; //cid number
- bool connect_state; //true: connect, false: disconnect;
- bool auto_urc; //urc generated by manual/auto dialing
- uint8 pdp_result; //The cause of the dialing result
- mbtk_ipv4_info_t ipv4; //ipv4 info
- mbtk_ipv6_info_t ipv6; //ipv6 info
-}mbtk_pdp_cb_info_s;
int ipv6_2_str(const void *ipv6, void *ipv6_str);
diff --git a/mbtk/libgsw_lib/gsw_nw_interface.c b/mbtk/libgsw_lib/gsw_nw_interface.c
index c8853c0..147293c 100755
--- a/mbtk/libgsw_lib/gsw_nw_interface.c
+++ b/mbtk/libgsw_lib/gsw_nw_interface.c
@@ -91,28 +91,32 @@
typedef struct
{
+ // NR server cell:
+ // NR cell:
// LTE server cell: tac, PCI, dlEuarfcn, ulEuarfcn, band
// LTE cell: phyCellId,euArfcn,rsrp,rsrq
// WCDMA server cell: lac, ci, arfcn
// WCDMA cell: lac, ci, arfcn
// GSM server cell: lac, ci, arfcn, bsic
// GSM cell:
- uint32 value1;
- uint32 value2;
- uint32 value3;
- uint32 value4;
- uint32 value5;
- uint32 value6;
- uint32 value7;
- uint32 value8;
- uint32 value9;
- uint32 value10;
+ uint32 value1; //tac
+ uint32 value2; //pci
+ uint32 value3; //dlEuarfcn
+ uint32 value4; //bler
+ uint32 value5; //band
+ uint32 value6; //mcc
+ uint32 value7; //mnc
+ uint32 value8; //rsrp
+ uint32 value9; //rsrq
+ uint32 value10; //cell identiy
+ uint32 value11; //sinr
+ uint32 value12; //is tdd
+ uint32 value13;
+ uint32 value14;
+ uint32 value15;
} __attribute__((packed)) mbtk_cell_info_t;
-
-
-
typedef struct
{
uint8 net_pref; // mbtk_net_pref_enum
@@ -302,11 +306,11 @@
#define lib_mbtk_path "/lib/libmbtk_lib.so"
mbtk_info_handle_t* nw_info_handle = NULL;
-static GSW_NW_ServingInfoHandlePtr serving_cb;
-static GSW_NW_SigInfoHandlePtr sig_cb;
-static GSW_NW_RejectCauseHandlePtr reject_cb;
-static GSW_NW_ModemStateHandlePtr modem_cb;
-static GSW_NW_AirplaneModeHandlePtr airplane_cb;
+static GSW_NW_ServingInfoHandlePtr serving_cb=NULL;
+static GSW_NW_SigInfoHandlePtr sig_cb=NULL;
+static GSW_NW_RejectCauseHandlePtr reject_cb=NULL;
+static GSW_NW_ModemStateHandlePtr modem_cb=NULL;
+static GSW_NW_AirplaneModeHandlePtr airplane_cb=NULL;
static void *dlHandle_mbtk;
int nw_init_flag = 0;
@@ -670,6 +674,20 @@
}
}
+static int32_t gsm_rssi_convert_to_dBm(uint8 rssi)
+{
+ if(rssi <= 31)
+ {
+ return rssi * 2 - 113; //0 map -113
+ //31 map -51
+ }
+ else
+ {
+ return INT_32_MAX;
+ }
+}
+
+
static int32_t rscp_convert_to_minus_dBm(uint8 rscp)
{
if(rscp <= 96)
@@ -710,6 +728,46 @@
}
}
+static int32_t sinr_convert_to_10_times_dB(uint8 sinr)
+{
+ if(sinr <=35 && sinr>=-20)
+ {
+ return sinr*10; //35 map 350 db
+ // -20 map -2000 db
+ }
+ else
+ {
+ return INT_32_MAX;
+ }
+}
+
+
+static int32_t rscp_minus_dbm_convert_to_rssi_dBm(int32_t rscp)
+{
+ if(rscp!=INT_32_MAX)
+ {
+ return -rscp;
+ }
+ else
+ {
+ return INT_32_MAX;
+ }
+}
+
+static int32_t rsrp_minus_dbm_convert_to_rssi_dBm(int32_t rsrp)
+{
+ if(rsrp!=INT_32_MAX)
+ {
+ return -rsrp;
+ }
+ else
+ {
+ return INT_32_MAX;
+ }
+}
+
+
+
//int ecno; /**< Valid values are positive integers. This value is the actual Ec/Io multiplied
// * by -10. Example: If the actual Ec/Io is -12.5 dB, then this response value
@@ -1115,7 +1173,7 @@
sig_strength->lte_sig_valid = 1;
sig_strength->rsrp = rsrp_convert_to_minus_dBm(signal->rsrp);
sig_strength->rsrq = rsrq_convert_to_minus_dB(signal->rsrq);
- sig_strength->rssi =rsrpToLevel(signal->rsrp-141);
+ sig_strength->rssi = rsrp_minus_dbm_convert_to_rssi_dBm(sig_strength->rsrp);
sig_strength->rssnr=INT_32_MAX;
break;
}
@@ -1129,7 +1187,7 @@
sig_strength->wcdma_sig_valid = 1;
sig_strength->rscp = rscp_convert_to_minus_dBm(signal->rscp);
sig_strength->ecno = ecno_convert_to_minus_10_times_dB(signal->ecno);
- sig_strength->rssi =rscpToLevel(signal->rscp-121);
+ sig_strength->rssi = rscp_minus_dbm_convert_to_rssi_dBm(sig_strength->rscp);
break;
}
case MBTK_RADIO_TECH_GSM:
@@ -1138,7 +1196,7 @@
{
LOGI("g rssi = %d",signal->rssi);
sig_strength->gw_sig_valid = 1;
- sig_strength->rssi = signal->rssi;
+ sig_strength->rssi = gsm_rssi_convert_to_dBm(signal->rssi);
break;
}
default:
@@ -2144,7 +2202,6 @@
*/
int gsw_get_cell_info(GSW_NW_CELL_INFO *cell_info)
{
- int ret = -1;
if (nw_init_flag == 0 || nw_info_handle == NULL)
{
@@ -2153,12 +2210,14 @@
}
list_node_t* cell_list = NULL;
- int neibor_count = 0;
mbtk_cell_type_enum type;
- ret = mbtk_cell_get(nw_info_handle, &type, &cell_list);
+ int ret = mbtk_cell_get(nw_info_handle, &type, &cell_list);
if(ret || cell_list == NULL) {
LOGE("mbtk_cell_get failed : %d\n", ret);
+ list_free(cell_list);
+ return GSW_HAL_NORMAL_FAIL;
} else {
+ memset(cell_info,0,sizeof(GSW_NW_CELL_INFO));
list_first(cell_list);
mbtk_cell_info_t* cell = (mbtk_cell_info_t*) list_next(cell_list);
if(cell) { // Current server cell.
@@ -2167,7 +2226,7 @@
case 0:
{
LOGD("GSM : lac=%d, ci=%d, arfcn=%d, bsic=%d\n", cell->value1, cell->value2, cell->value3, cell->value4);
- char gsm_temp[12] = {0};
+ char gsm_temp[12];
cell_info->rat = GSW_NETWORK_RADIO_GSM;
@@ -2196,7 +2255,7 @@
case 1:
{
LOGD("UMTS : lac=%d, ci=%d, arfcn=%d\n", cell->value1, cell->value2, cell->value3);
- char wcdma_temp[12] = {0};
+ char wcdma_temp[12];
cell_info->rat = GSW_NETWORK_RADIO_UMTS;
@@ -2227,17 +2286,14 @@
case 2:
{
LOGE("LTE : tac=%d, PCI=%d, dlEuarfcn=%d, ulEuarfcn=%d, band=%d\n", cell->value1, cell->value2, cell->value3, cell->value4, cell->value5);
-
- char lte_temp[12] = {0};
+ char lte_temp[12];
cell_info->rat = GSW_NETWORK_RADIO_LTE;
cell_info->mcc_valid = 1;
snprintf(lte_temp, sizeof(lte_temp) ,"%X", cell->value6);
strncpy(cell_info->mcc, lte_temp, sizeof(cell_info->mcc));
- memset(lte_temp, 0, sizeof(lte_temp));
-
cell_info->mnc_valid = 1;
snprintf(lte_temp, sizeof(lte_temp) ,"%X", cell->value7);
strncpy(cell_info->mnc, lte_temp, sizeof(cell_info->mnc));
@@ -2257,15 +2313,25 @@
cell_info->band_valid = 1;
cell_info->band = cell->value5;
- cell_info->rsrp_valid = 1;
- cell_info->rsrp = cell->value8;
+ cell_info->rssnr = sinr_convert_to_10_times_dB(cell->value11);
+ cell_info->rssnr_valid=(cell_info->rssnr!=INT_32_MAX);
- cell_info->rsrq_valid = 1;
- cell_info->rsrq = cell->value9;
+ cell_info->lteMode_valid = 1;
+ cell_info->lteMode =(!(cell->value12));
+
+
+ cell_info->rsrp = rsrp_convert_to_minus_dBm(cell->value8);
+ cell_info->rsrp_valid = (cell_info->rsrp!=INT_32_MAX);
+
+ cell_info->rsrq = rsrq_convert_to_minus_dB(cell->value9);
+ cell_info->rsrq_valid = (cell_info->rsrq!=INT_32_MAX);
cell_info->cell_id_valid = 1;
cell_info->cell_id = cell->value10;
+ cell_info->rssi=rsrp_minus_dbm_convert_to_rssi_dBm(cell_info->rsrp);
+ cell_info->rssi_valid = (cell_info->rssi!=INT_32_MAX);
+
break;
}
@@ -2273,7 +2339,7 @@
break;
}
}
-
+ int neibor_count = 0;
while ((cell = (mbtk_cell_info_t*) list_next(cell_list)) && neibor_count < 5)
{
switch(type)
@@ -2308,34 +2374,40 @@
char lte_temp[12] = {0};
cell_info->ext_info[neibor_count].rat = GSW_NETWORK_RADIO_LTE;
- snprintf(lte_temp, sizeof(lte_temp) ,"%X", cell->value6);
- strncpy(cell_info->ext_info[neibor_count].mcc, lte_temp, sizeof(cell_info->mcc));
-
- memset(lte_temp, 0, sizeof(lte_temp));
-
- snprintf(lte_temp, sizeof(lte_temp) ,"%X", cell->value7);
- strncpy(cell_info->ext_info[neibor_count].mnc, lte_temp, sizeof(cell_info->mnc));
-
+
cell_info->ext_info[neibor_count].pci = cell->value1;
cell_info->ext_info[neibor_count].pci_valid = 1;
cell_info->ext_info[neibor_count].arfcn = cell->value2;
cell_info->ext_info[neibor_count].arfcn_valid = 1;
- cell_info->ext_info[neibor_count].rsrp = cell->value3;
- cell_info->ext_info[neibor_count].rsrp_valid = 1;
+ cell_info->ext_info[neibor_count].rsrp = rsrp_convert_to_minus_dBm(cell->value3);
+ cell_info->ext_info[neibor_count].rsrp_valid = (cell_info->ext_info[neibor_count].rsrp!=INT_32_MAX);
- cell_info->ext_info[neibor_count].rsrq = cell->value4;
- cell_info->ext_info[neibor_count].rsrq_valid = 1;
+ cell_info->ext_info[neibor_count].rsrq = rsrq_convert_to_minus_dB(cell->value4);
+ cell_info->ext_info[neibor_count].rsrq_valid = (cell_info->ext_info[neibor_count].rsrq!=INT_32_MAX);
+
+ if(cell->value7!=INT_32_MAX)
+ {
+ cell_info->ext_info[neibor_count].cell_id = cell->value5;
+ cell_info->ext_info[neibor_count].cell_id_valid = 1;
+
+ snprintf(lte_temp, sizeof(lte_temp) ,"%X", cell->value6);
+ strncpy(cell_info->ext_info[neibor_count].mcc, lte_temp, sizeof(cell_info->ext_info[neibor_count].mcc));
- cell_info->ext_info[neibor_count].cell_id = cell->value5;
- cell_info->ext_info[neibor_count].cell_id_valid = 1;
- cell_info->ext_info[neibor_count].band = cell->value9;
- cell_info->ext_info[neibor_count].band_valid = 1;
+ snprintf(lte_temp, sizeof(lte_temp) ,"%X", cell->value7);
+ strncpy(cell_info->ext_info[neibor_count].mnc, lte_temp, sizeof(cell_info->ext_info[neibor_count].mnc));
+
+
+ //value 8 is tac
- cell_info->ext_info[neibor_count].rssi = cell->value10;
- cell_info->ext_info[neibor_count].rssi_valid = 1;
+ cell_info->ext_info[neibor_count].band = cell->value9;
+ cell_info->ext_info[neibor_count].band_valid = 1;
+
+ cell_info->ext_info[neibor_count].rssi=rsrp_minus_dbm_convert_to_rssi_dBm(cell_info->ext_info[neibor_count].rsrp);
+ cell_info->ext_info[neibor_count].rssi_valid = (cell_info->ext_info[neibor_count].rssi!=INT_32_MAX);
+ }
neibor_count++;
}
@@ -2344,6 +2416,7 @@
break;
}
}
+ cell_info->ext_info_len=neibor_count;
}
list_free(cell_list);
diff --git a/mbtk/test/libgsw_lib/gsw_nw_test.c b/mbtk/test/libgsw_lib/gsw_nw_test.c
index 5082226..67c43b8 100755
--- a/mbtk/test/libgsw_lib/gsw_nw_test.c
+++ b/mbtk/test/libgsw_lib/gsw_nw_test.c
@@ -86,29 +86,36 @@
typedef struct
{
+ // NR server cell:
+ // NR cell:
// LTE server cell: tac, PCI, dlEuarfcn, ulEuarfcn, band
// LTE cell: phyCellId,euArfcn,rsrp,rsrq
// WCDMA server cell: lac, ci, arfcn
// WCDMA cell: lac, ci, arfcn
// GSM server cell: lac, ci, arfcn, bsic
// GSM cell:
- mbtk_cell_type_enum type : 8;
uint32 value1; //tac
uint32 value2; //pci
uint32 value3; //dlEuarfcn
- uint32 value4; //ul arfcn
+ uint32 value4; //bler
uint32 value5; //band
- uint32 value6; //mcc
+ uint32 value6; //mcc
uint32 value7; //mnc
- uint32 value8; //cid
- uint32 value9; //rsrp
+ uint32 value8; //rsrp
+ uint32 value9; //rsrq
uint32 value10; //cell identiy
+ uint32 value11; //sinr
+ uint32 value12; //is tdd
+ uint32 value13;
+ uint32 value14;
+ uint32 value15;
} __attribute__((packed)) mbtk_cell_info_t;
+
typedef struct
{
uint8 net_pref; // mbtk_net_pref_enum
@@ -581,8 +588,8 @@
unsigned char bler_valid;
int bler; /*bit error rate*/
-
- GSW_NW_CELL_EXT_INFO ext_info[MAX_CELL_EXT_INFO]; /* Used to hold neighborhood information for service cells. */
+ int ext_info_len; /**<ext_info len*/
+ GSW_NW_CELL_EXT_INFO ext_info[MAX_CELL_EXT_INFO];
} GSW_NW_CELL_INFO;
typedef struct {
@@ -807,7 +814,7 @@
return 0;
}
-
+
static void gsw_serving_info_callback(GSW_NW_SERVING_INFO serving_info)
{
printf("gsw_serving_info_callback: \n");
@@ -960,7 +967,7 @@
printf("gsw_get_nwinfo failed, ret is %d\n",ret);
continue;
}
- printf("nwinfo.reg_state = %d\nnwinfo.ps_state = %d\nnwinfo.reg_rat = %d\nnwinfo.srv_domain = %d\nnwinfo.roaming_ind = %d\nnwinfo.reg_plmn = %s\nnwinfo.operator_name = %s\nnwinfo.cell_id = %s\nnwinfo.lac = %s\nnwinfo.sid=%d\nnwinfo.nid = %d\n",nwinfo->reg_state, nwinfo->ps_state, nwinfo->reg_rat, nwinfo->srv_domain, nwinfo->roaming_ind, nwinfo->reg_plmn, nwinfo->operator_name, nwinfo->cell_id, nwinfo->lac, nwinfo->sid, nwinfo->nid);
+ printf("nwinfo.reg_state = %d\nnwinfo.ps_state = %d\nnwinfo.reg_rat = %d\nnwinfo.srv_domain = %d\nnwinfo.roaming_ind = %d\nnwinfo.reg_plmn = %s\nnwinfo.operator_name = %s\nnwinfo.cell_id = %s\nnwinfo.tac = %s\nwinfo.lac = %s\nnwinfo.sid=%d\nnwinfo.nid = %d\n",nwinfo->reg_state, nwinfo->ps_state, nwinfo->reg_rat, nwinfo->srv_domain, nwinfo->roaming_ind, nwinfo->reg_plmn, nwinfo->operator_name, nwinfo->cell_id, nwinfo->tac,nwinfo->lac, nwinfo->sid, nwinfo->nid);
free(nwinfo);
break;
}
@@ -1243,15 +1250,13 @@
printf("-------------------------------------inter cell info ------------------------------\n");
- for(int i = 0; i <MAX_CELL_EXT_INFO ; i++)
+ printf("ext_info_len = %d\n",cell_info.ext_info_len);
+
+ for(int i = 0; i <cell_info.ext_info_len ; i++)
{
printf("-----------------------------------------------------------\n");
printf("inter cell info[%d] rat = %d\n",i,cell_info.ext_info[i].rat);
- printf("inter cell info[%d] mcc = %s\n",i,cell_info.ext_info[i].mcc);
-
- printf("inter cell info[%d] mnc = %s\n",i,cell_info.ext_info[i].mnc);
-
printf("inter cell info[%d] pci_valid = %d\n",i,cell_info.ext_info[i].pci_valid);
printf("inter cell info[%d] pci = %d\n",i,cell_info.ext_info[i].pci);
@@ -1264,12 +1269,19 @@
printf("inter cell info[%d] rsrq_valid = %d\n",i,cell_info.ext_info[i].rsrq_valid);
printf("inter cell info[%d] rsrq = %d\n",i,cell_info.ext_info[i].rsrq);
+ printf("inter cell info[%d] mcc = %s\n",i,cell_info.ext_info[i].mcc);
+
+ printf("inter cell info[%d] mnc = %s\n",i,cell_info.ext_info[i].mnc);
+
printf("inter cell info[%d] cell_id_valid = %d\n",i,cell_info.ext_info[i].cell_id_valid);
printf("inter cell info[%d] cell_id = %u\n",i,cell_info.ext_info[i].cell_id);
printf("inter cell info[%d] band_valid = %d\n",i,cell_info.ext_info[i].band_valid);
printf("inter cell info[%d] band = %u\n",i,cell_info.ext_info[i].band);
+ printf("inter cell info[%d] rssi_valid = %d\n",i,cell_info.ext_info[i].rssi_valid);
+ printf("inter cell info[%d] rssi = %d\n",i,cell_info.ext_info[i].rssi);
+
printf("-----------------------------------------------------------\n");
}