VTY: Allow for per-BTS-model specific config file write functions
This way a BTS module can append config data to the TS, TRX and BTS
sections.
diff --git a/openbsc/include/openbsc/gsm_data.h b/openbsc/include/openbsc/gsm_data.h
index a9f9e5e..f40bcbd 100644
--- a/openbsc/include/openbsc/gsm_data.h
+++ b/openbsc/include/openbsc/gsm_data.h
@@ -426,6 +426,8 @@
GSM_BTS_TYPE_RBS2000,
};
+struct vty;
+
struct gsm_bts_model {
struct llist_head list;
@@ -434,6 +436,10 @@
int (*oml_rcvmsg)(struct msgb *msg);
+ void (*config_write_bts)(struct vty *vty, struct gsm_bts *bts);
+ void (*config_write_trx)(struct vty *vty, struct gsm_bts_trx *trx);
+ void (*config_write_ts)(struct vty *vty, struct gsm_bts_trx_ts *ts);
+
struct tlv_definition nm_att_tlvdef;
struct bitvec features;
diff --git a/openbsc/src/bsc_vty.c b/openbsc/src/bsc_vty.c
index 3d7d69b..55eeb14 100644
--- a/openbsc/src/bsc_vty.c
+++ b/openbsc/src/bsc_vty.c
@@ -333,6 +333,9 @@
}
}
config_write_e1_link(vty, &ts->e1_link, " ");
+
+ if (ts->trx->bts->model->config_write_ts)
+ ts->trx->bts->model->config_write_ts(vty, ts);
}
static void config_write_trx_single(struct vty *vty, struct gsm_bts_trx *trx)
@@ -352,6 +355,9 @@
config_write_e1_link(vty, &trx->rsl_e1_link, " rsl ");
vty_out(vty, " rsl e1 tei %u%s", trx->rsl_tei, VTY_NEWLINE);
+ if (trx->bts->model->config_write_trx)
+ trx->bts->model->config_write_trx(vty, trx);
+
for (i = 0; i < TRX_NR_TS; i++)
config_write_ts_single(vty, &trx->ts[i]);
}
@@ -500,6 +506,9 @@
config_write_bts_gprs(vty, bts);
+ if (bts->model->config_write_bts)
+ bts->model->config_write_bts(vty, bts);
+
llist_for_each_entry(trx, &bts->trx_list, list)
config_write_trx_single(vty, trx);
}