int gsm322_dump_cs_list(struct gsm322_cellsel *cs, uint8_t flags,
void (*print)(void *, const char *, ...), void *priv);
int gsm322_dump_forbidden_la(struct osmocom_ms *ms);
+int gsm322_dump_ba_list(struct gsm322_cellsel *cs, uint16_t mcc, uint16_t mnc,
+ void (*print)(void *, const char *, ...), void *priv);
void start_cs_timer(struct gsm322_cellsel *cs, int sec, int micro);
void start_loss_timer(struct gsm322_cellsel *cs, int sec, int micro);
s = cs->list[i].sysinfo;
if (!s || !(cs->list[i].flags & flags))
continue;
- print(priv, "%04d |%4d |", i, cs->list[i].rxlev_db);
+ print(priv, "%4d |%4d |", i, cs->list[i].rxlev_db);
if ((cs->list[i].flags & GSM322_CS_FLAG_SYSINFO)) {
print(priv, "%03d |%02d |", s->mcc, s->mnc);
if ((cs->list[i].flags & GSM322_CS_FLAG_FORBIDD))
return 0;
}
+int gsm322_dump_ba_list(struct gsm322_cellsel *cs, uint16_t mcc, uint16_t mnc,
+ void (*print)(void *, const char *, ...), void *priv)
+{
+ struct gsm322_ba_list *ba;
+ int i;
+
+ llist_for_each_entry(ba, &cs->ba_list, entry) {
+ if (mcc && mnc && (mcc != ba->mcc || mnc != ba->mnc))
+ continue;
+ print(priv, "Band Allocation of network: MCC %03d MNC %02d "
+ "(%s, %s)\n", ba->mcc, ba->mnc, gsm_get_mcc(ba->mcc),
+ gsm_get_mnc(ba->mcc, ba->mnc));
+ for (i = 0; i <= 1023; i++) {
+ if ((ba->freq[i >> 3] & (1 << (i & 7))))
+ print(priv, " %d", i);
+ }
+ print(priv, "\n");
+ }
+
+ return 0;
+}
+
/*
* initialization
*/
return CMD_SUCCESS;
}
+DEFUN(show_ba, show_ba_cmd, "show ba MS_NAME [mcc] [mnc]",
+ SHOW_STR "Display information about band allocations\n")
+{
+ struct osmocom_ms *ms;
+ uint16_t mcc = 0, mnc = 0;
+
+ ms = get_ms(argv[0], vty);
+ if (!ms)
+ return CMD_WARNING;
+
+ if (argc >= 3) {
+ mcc = atoi(argv[1]);
+ mnc = atoi(argv[2]);
+ }
+
+ gsm322_dump_ba_list(&ms->cellsel, mcc, mnc, print_vty, vty);
+
+ return CMD_SUCCESS;
+}
+
DEFUN(insert_test, insert_test_cmd, "insert testcard MS_NAME [mcc] [mnc]",
SHOW_STR "Insert test card\n")
{
if (argc >= 3) {
mcc = atoi(argv[1]);
- mnc = atoi(argv[1]);
+ mnc = atoi(argv[2]);
}
gsm_subscr_testcard(ms, mcc, mnc, "0000000000");
install_element(VIEW_NODE, &show_subscr_cmd);
install_element(VIEW_NODE, &show_cell_cmd);
install_element(VIEW_NODE, &show_cell_si_cmd);
+ install_element(VIEW_NODE, &show_ba_cmd);
install_element(VIEW_NODE, &insert_test_cmd);
install_element(VIEW_NODE, &remove_sim_cmd);