first functional version that actually records + mirrors data
diff --git a/src/vty.c b/src/vty.c
index 694dab1..ae032fb 100644
--- a/src/vty.c
+++ b/src/vty.c
@@ -15,8 +15,14 @@
return CMD_SUCCESS;
}
+static const struct e1inp_line_ops dummy_e1i_line_ops = {
+ .sign_link_up = NULL,
+ .sign_link_down = NULL,
+ .sign_link = NULL,
+};
+
DEFUN(cfg_rec_line_ts_mode, cfg_rec_line_ts_mode_cmd,
- "line <0-255> ts <0-31> mode (none|signalling|trau|raw)",
+ "line <0-255> ts <1-31> mode (none|signalling|trau|raw)",
LINE_STR
"E1/T1 Timeslot Number\n"
"E1/T1 Timeslot Number\n"
@@ -46,8 +52,10 @@
vty_out(vty, "Timeslot %d is too large%s", ts_nr, VTY_NEWLINE);
return CMD_WARNING;
}
- ts = &line->ts[ts_nr];
+ ts = &line->ts[ts_nr-1];
+ e1inp_line_bind_ops(line, &dummy_e1i_line_ops);
+ vty_out(vty, "Line %u TS %u mode %u%s", line_nr, ts_nr, mode, VTY_NEWLINE);
switch (mode) {
case E1INP_TS_TYPE_NONE:
/* TOOD: have eqinp_ts_config_none ? */
@@ -59,6 +67,9 @@
case E1INP_TS_TYPE_RAW:
e1inp_ts_config_raw(ts, line, &e1ts_raw_recv);
break;
+ default:
+ vty_out(vty, "Unknown mode %u ?!?%s", mode, VTY_NEWLINE);
+ break;
}
/* notify driver of change */
@@ -157,6 +168,12 @@
for (i = 0; i < line->num_ts; i++) {
struct e1inp_ts *ts = &line->ts[i];
+ const char *mode_str;
+
+ mode_str = get_value_string(e1inp_ts_type_names, ts->type);
+
+ vty_out(vty, " line %u ts %u mode %s%s",
+ lnr, ts->num, mode_str, VTY_NEWLINE);
}
}