Add support for 2nd SFP port in stats

This commit is contained in:
logicog
2025-12-08 08:39:54 +01:00
parent 636981c3b8
commit ab6a66a223
+14 -14
View File
@@ -344,29 +344,29 @@ void send_status(void)
if (IS_SFP(i)) { if (IS_SFP(i)) {
slen += strtox(outbuf + slen, ",\"isSFP\":1,\"enabled\":"); slen += strtox(outbuf + slen, ",\"isSFP\":1,\"enabled\":");
bool_to_html(!((sfp_pins_last >> (i == maxPort ? 0 : 4)) & 1)); if (i != 3) {
reg_read_m(RTL837X_REG_GPIO_00_31_INPUT);
slen += strtox(outbuf + slen, ",\"link\":"); bool_to_html(!(sfr_data[0] & 0x40));
uint8_t rate = sfp_read_reg(i == maxPort ? 0 : 1, 12); } else {
if (rate == 0xd) reg_read_m(RTL837X_REG_GPIO_32_63_INPUT);
char_to_html('2'); // 1000BX bool_to_html(!(sfr_data[1] & 0x04));
else if (rate == 0x1f) }
char_to_html('5'); // 2G5
else if (rate > 0x65 && rate < 0x70)
char_to_html('4'); // 10G "4" is not a valid value for port LINK speed
else
char_to_html('1'); // 100M ???
} else { } else {
slen += strtox(outbuf + slen, ",\"isSFP\":0,\"enabled\":"); slen += strtox(outbuf + slen, ",\"isSFP\":0,\"enabled\":");
phy_read(i, 0x1f, 0xa610); phy_read(i, 0x1f, 0xa610);
bool_to_html(SFR_DATA_8 == 0x20); bool_to_html(SFR_DATA_8 == 0x20);
}
slen += strtox(outbuf + slen, ",\"link\":"); slen += strtox(outbuf + slen, ",\"link\":");
if (i < 8)
reg_read_m(RTL837X_REG_LINKS); reg_read_m(RTL837X_REG_LINKS);
uint8_t b = sfr_data[3 - (i >> 1)]; else
reg_read_m(RTL837X_REG_LINKS_89);
uint8_t b = sfr_data[3 - ((i & 7) >> 1)];
b = (i & 1) ? b >> 4 : b & 0xf; b = (i & 1) ? b >> 4 : b & 0xf;
char_to_html('0' + b); char_to_html('0' + b);
}
STAT_GET(STAT_COUNTER_TX_PKTS, i); STAT_GET(STAT_COUNTER_TX_PKTS, i);
slen += strtox(outbuf + slen, ",\"txG\":\"0x"); slen += strtox(outbuf + slen, ",\"txG\":\"0x");
reg_to_html(RTL837X_STAT_V_HIGH); reg_to_html(RTL837X_STAT_V_HIGH);