Add LAG implementation in httpd

This commit is contained in:
logicog
2025-12-05 07:38:16 +01:00
parent 52fe23570c
commit 3679b46ff2
2 changed files with 31 additions and 4 deletions
+2
View File
@@ -570,6 +570,8 @@ void httpd_appcall(void)
send_eee();
} else if (is_word(q, "/mirror.json")) {
send_mirror();
} else if (is_word(q, "/lag.json")) {
send_lag();
} else if (is_word(q, "/config")) {
send_config();
} else if (is_word(q, "/cmd_log")) {
+29 -4
View File
@@ -216,9 +216,8 @@ void send_counters(char port)
void send_mirror(void)
{
print_string("send_eee called\n");
print_string("send_mirror called\n");
slen = strtox(outbuf, HTTP_RESPONCE_JSON);
print_string("sending EEE status\n");
reg_read_m(RTL837x_MIRROR_CTRL);
uint8_t mPort = sfr_data[3];
@@ -237,14 +236,14 @@ void send_mirror(void)
m = (m << 8) | sfr_data[1];
slen += strtox(outbuf + slen, ",\"mirror_rx\":\"");
for (uint8_t i = 0; i < 16; i++) {
bool_to_html(m & 0x8000);
bool_to_html(!!(m & 0x8000));
m <<= 1;
}
m = sfr_data[2];
m = (m << 8) | sfr_data[3];
slen += strtox(outbuf + slen, "\",\"mirror_tx\":\"");
for (uint8_t i = 0; i < 16; i++) {
bool_to_html(m & 0x8000);
bool_to_html(!!(m & 0x8000));
m <<= 1;
}
char_to_html('\"');
@@ -252,6 +251,32 @@ void send_mirror(void)
}
void send_lag(void)
{
print_string("send_lag called\n");
slen = strtox(outbuf, HTTP_RESPONCE_JSON);
char_to_html('[');
for (uint8_t l=0; l < 4; l++) {
slen += strtox(outbuf + slen, "{\"lagNum\":");
itoa_html(l);
slen += strtox(outbuf + slen, ",\"members\":\"");
reg_read_m(RTL837X_TRK_MBR_CTRL_BASE + (l << 2));
uint16_t ports = ((uint16_t)sfr_data[2] << 8) | sfr_data[3];
for (uint8_t i = 0; i < 16; i++) {
bool_to_html(!!(ports & 0x8000));
ports <<= 1;
}
slen += strtox(outbuf + slen, "\",\"hash\":\"");
reg_read_m(RTL837X_TRK_HASH_CTRL_BASE + (l << 2));
sfr_data_to_html();
slen += strtox(outbuf + slen, "\"},");
}
slen -=1; // remove comma
char_to_html(']');
}
void send_eee(void)
{
print_string("send_eee called\nsending EEE status\n");