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:
d00f committed 2026-10-12 16:27:22 +02:00
1 parent 4ccbf51976
commit 4e4a2ea4db
3 files changed
+4 -3

No files matched your search

+2
View File
@@ -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
View File
@@ -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;
-2
View File
@@ -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()) {