From 2008d490a94e0df6d7032484076c3681336e4087 Mon Sep 17 00:00:00 2001 From: logicog Date: Wed, 29 Oct 2025 15:31:54 +0100 Subject: [PATCH] Add support for mirror status and mirror deletion via CLI --- cmd_parser.c | 31 ++++++++++++++++++++++++++++++- 1 file changed, 30 insertions(+), 1 deletion(-) diff --git a/cmd_parser.c b/cmd_parser.c index 21137a5..fc98f1a 100644 --- a/cmd_parser.c +++ b/cmd_parser.c @@ -273,8 +273,37 @@ void parse_mirror(void) __xdata uint16_t rx_pmask = 0; __xdata uint16_t tx_pmask = 0; + if (cmd_words_b[1] > 0 && cmd_compare(1, "status")) { + reg_read_m(RTL837x_MIRROR_CTRL); + uint8_t mPort = sfr_data[3]; + if (mPort & 1) { + print_string("Enabled: "); + } else { + print_string("NOT Enabled: "); + } + print_string("Mirroring port: "); + if (!isRTL8373) + write_char('0' + log_to_phys_port[mPort >> 1]); + else + write_char('0' + (mPort >> 1) + 1); + reg_read_m(RTL837x_MIRROR_CONF); + uint16_t m = sfr_data[0]; + m = (m << 8) | sfr_data[1]; + print_string(", Port mask RX: "); + print_short(m); + m = sfr_data[2]; + m = (m << 8) | sfr_data[3]; + print_string(", Port mask TX: "); + print_short(m); + write_char('\n'); + return; + } else if (cmd_words_b[1] > 0 && cmd_compare(1, "off")) { + port_mirror_del(); + return; + } + if (!isnumber(cmd_buffer[cmd_words_b[1]])) { - print_string("Port missing: port [port][t/r]..."); + print_string("Port missing: mirror [port][t/r]..."); return; }