mirror of
https://github.com/logicog/RTLPlayground.git
synced 2026-10-29 17:54:14 +08:00
Merge pull request #400 from DrDoof/feat/l2-show-lag
l2: name the group a learned address sits behind
This commit is contained in:
3 files changed
+21
-2
No files matched your search
+10
-2
@@ -68,7 +68,11 @@ var l2SortCol = 'port';
|
|||||||
var l2SortDir = 1;
|
var l2SortDir = 1;
|
||||||
|
|
||||||
function l2Key(e, col) {
|
function l2Key(e, col) {
|
||||||
if (col === 'port') return e.port === 'CPU' ? Number.MAX_SAFE_INTEGER : Number(e.port);
|
if (col === 'port') {
|
||||||
|
if (e.port === 'CPU') return Number.MAX_SAFE_INTEGER;
|
||||||
|
if (e.lag) return 100 + e.lag;
|
||||||
|
return Number(e.port);
|
||||||
|
}
|
||||||
if (col === 'vlan') return Number(e.vlan);
|
if (col === 'vlan') return Number(e.vlan);
|
||||||
return String(e[col]).toLowerCase();
|
return String(e[col]).toLowerCase();
|
||||||
}
|
}
|
||||||
@@ -114,7 +118,11 @@ function fillL2(s)
|
|||||||
return;
|
return;
|
||||||
s.sort(l2CMP);
|
s.sort(l2CMP);
|
||||||
s = uniq(s);
|
s = uniq(s);
|
||||||
l2All = s;
|
l2All = s.map(function(e) {
|
||||||
|
if (e.lag)
|
||||||
|
e.port = 'LAG' + e.lag;
|
||||||
|
return e;
|
||||||
|
});
|
||||||
renderL2();
|
renderL2();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -359,6 +359,7 @@ void send_l2(uint16_t idx)
|
|||||||
while (1) {
|
while (1) {
|
||||||
entries_left--;
|
entries_left--;
|
||||||
uint8_t port = 0;
|
uint8_t port = 0;
|
||||||
|
uint8_t lag;
|
||||||
reg_read_m(RTL837x_TBL_DATA_0);
|
reg_read_m(RTL837x_TBL_DATA_0);
|
||||||
REG_WRITE(RTL837x_TBL_DATA_0, sfr_data[0], sfr_data[1] & 0xfc, sfr_data[2] | (TBL_LUTREAD_NEXT_L2UC << 6), sfr_data[3]);
|
REG_WRITE(RTL837x_TBL_DATA_0, sfr_data[0], sfr_data[1] & 0xfc, sfr_data[2] | (TBL_LUTREAD_NEXT_L2UC << 6), sfr_data[3]);
|
||||||
|
|
||||||
@@ -402,6 +403,9 @@ void send_l2(uint16_t idx)
|
|||||||
|
|
||||||
port |= (sfr_data[3] & 0x3) << 2;
|
port |= (sfr_data[3] & 0x3) << 2;
|
||||||
itoa_html(port);
|
itoa_html(port);
|
||||||
|
slen += strtox(outbuf + slen, ",\"lag\":");
|
||||||
|
lag = port_lag_of(port);
|
||||||
|
itoa_html(lag == PORT_LAG_NONE ? 0 : lag + 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Index
|
// Index
|
||||||
|
|||||||
@@ -381,6 +381,7 @@ void port_l2_learned(void) __banked
|
|||||||
|
|
||||||
while (1) {
|
while (1) {
|
||||||
uint8_t port = 0;
|
uint8_t port = 0;
|
||||||
|
uint8_t lag;
|
||||||
reg_read_m(RTL837x_TBL_DATA_0);
|
reg_read_m(RTL837x_TBL_DATA_0);
|
||||||
REG_WRITE(RTL837x_TBL_DATA_0, sfr_data[0], sfr_data[1],sfr_data[2] | 0xc0, sfr_data[3]);
|
REG_WRITE(RTL837x_TBL_DATA_0, sfr_data[0], sfr_data[1],sfr_data[2] | 0xc0, sfr_data[3]);
|
||||||
|
|
||||||
@@ -422,7 +423,13 @@ void port_l2_learned(void) __banked
|
|||||||
print_string("\tlearned\t");
|
print_string("\tlearned\t");
|
||||||
|
|
||||||
port |= (sfr_data[3] & 0x3) << 2;
|
port |= (sfr_data[3] & 0x3) << 2;
|
||||||
|
lag = port_lag_of(port);
|
||||||
|
if (lag == PORT_LAG_NONE) {
|
||||||
print_phys_port(port);
|
print_phys_port(port);
|
||||||
|
} else {
|
||||||
|
print_string("LAG");
|
||||||
|
itoa(lag + 1);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
entry++;
|
entry++;
|
||||||
|
|||||||
Reference in new issue
Block a user