mirror of
https://github.com/logicog/RTLPlayground.git
synced 2026-10-29 17:54:14 +08:00
lacp: review follow-ups
lacp_in() always leaves uip_len at 0, so the tcpip_output() after it never ran. The LAG page names the active members by front-panel port instead of a logical mask. The partner key is not part of selection; say so under Known limits.
This commit is contained in:
1 parent
4ccbf51976
commit
4e4a2ea4db
3 files changed
+4
-3
No files matched your search
@@ -228,4 +228,6 @@ the dead member.
|
|||||||
* No Churn Detection machines and no Marker protocol.
|
* No Churn Detection machines and no Marker protocol.
|
||||||
* Coupled Mux: collecting and distributing are enabled together.
|
* Coupled Mux: collecting and distributing are enabled together.
|
||||||
* One aggregator per group.
|
* One aggregator per group.
|
||||||
|
* Selection compares the partner's system only, not its key: two aggregates
|
||||||
|
that one partner system offers on the same group land in one trunk here.
|
||||||
* Member compatibility is not validated; see #377.
|
* Member compatibility is not validated; see #377.
|
||||||
+2
-1
@@ -1843,6 +1843,7 @@ function buildLag(){
|
|||||||
})(g);
|
})(g);
|
||||||
}
|
}
|
||||||
var lacpCfg=[0,0,0,0,0];
|
var lacpCfg=[0,0,0,0,0];
|
||||||
|
function maskPorts(m){var r=[];for(var p=1;p<=S.n;p++)if((m>>S.physToLog[p-1])&1)r.push(p);return r.length?r.join(" "):"-"}
|
||||||
function lagLoad(){
|
function lagLoad(){
|
||||||
return getJSON("/lacp.json").then(function(c){
|
return getJSON("/lacp.json").then(function(c){
|
||||||
var tb=$("lacptbl").tBodies[0];
|
var tb=$("lacptbl").tBodies[0];
|
||||||
@@ -1852,7 +1853,7 @@ function lagLoad(){
|
|||||||
lacpCfg[g]=parseInt(lg.cfg,16);
|
lacpCfg[g]=parseInt(lg.cfg,16);
|
||||||
if($("lgm"+g).closest(".card").dataset.dirty)return;
|
if($("lgm"+g).closest(".card").dataset.dirty)return;
|
||||||
$("lgm"+g).value=lacpCfg[g]?"lacp":"static";
|
$("lgm"+g).value=lacpCfg[g]?"lacp":"static";
|
||||||
$("lgs"+g).textContent=lacpCfg[g]?"LACP: "+t("lacp_agg")+" "+(lg.aggValid?lg.agg:"("+t("lacp_neg")+")")+", "+t("lacp_members")+" 0x"+lg.members:"";
|
$("lgs"+g).textContent=lacpCfg[g]?"LACP: "+t("lacp_agg")+" "+(lg.aggValid?lg.agg:"("+t("lacp_neg")+")")+", "+t("lacp_members")+" "+maskPorts(parseInt(lg.members,16)):"";
|
||||||
});
|
});
|
||||||
if(c.on)c.ports.forEach(function(p){
|
if(c.on)c.ports.forEach(function(p){
|
||||||
if(p.lag===255)return;
|
if(p.lag===255)return;
|
||||||
|
|||||||
@@ -1071,8 +1071,6 @@ void handle_rx(void)
|
|||||||
}
|
}
|
||||||
} else if (lacpEnabled && uip_buf[5] == 0x02) { // LACPDU (slow protocols)
|
} else if (lacpEnabled && uip_buf[5] == 0x02) { // LACPDU (slow protocols)
|
||||||
lacp_in();
|
lacp_in();
|
||||||
if (uip_len)
|
|
||||||
tcpip_output();
|
|
||||||
}
|
}
|
||||||
} else if (igmpEnabled && uip_buf[0] == 0x01 && uip_buf[1] == 0x00 && uip_buf[2] == 0x5e // IPv4-MC packet?
|
} else if (igmpEnabled && uip_buf[0] == 0x01 && uip_buf[1] == 0x00 && uip_buf[2] == 0x5e // IPv4-MC packet?
|
||||||
&& igmp_packet_handler()) {
|
&& igmp_packet_handler()) {
|
||||||
|
|||||||
Reference in new issue
Block a user