mirror of
https://github.com/openwrt/openwrt.git
synced 2025-01-31 16:35:44 +00:00
ramips: Use doubletagging to disable ramips_esw vlan by default, it seems more reliable.
Use doubletagging to disable ramips_esw vlan by default, it seems more reliable. Daniel Golle found an issue where sometimes (possibly only for RT3352) the default vlan disable method (clearing en_vlan, untag, doubletag and putting all ports into vlan 0) doesn't work and the packets get sent out vlan-tagged with vlan 0. Instead switch to using the doubletagging method (allow doubletagged packets, put all ports into vlan 0 with untag enabled) by default. Unless someone figures out a way to really globally disable vlan for this switch, this seems like the best (most reliable) option. I did some tests regarding maximum packet size and did not see any difference between the two methods, both allow for slightly bigger packets than the ramips_main.c ethernet driver (ping stops going through above "ping -s 1472" (1514 bytes), on the switch packets are recv_good until "ping -s 1490", or about 1532 bytes). Signed-off-by: Tobias Diedrich <ranma+openwrt@tdiedrich.de> SVN-Revision: 33321
This commit is contained in:
parent
f186bff0ef
commit
04c6143ca9
@ -534,7 +534,7 @@ rt305x_esw_apply_config(struct switch_dev *dev)
|
|||||||
untag |= esw->ports[i].untag << i;
|
untag |= esw->ports[i].untag << i;
|
||||||
pvid = esw->ports[i].pvid;
|
pvid = esw->ports[i].pvid;
|
||||||
} else {
|
} else {
|
||||||
int x = esw->alt_vlan_disable ? 1 : 0;
|
int x = esw->alt_vlan_disable ? 0 : 1;
|
||||||
doubletag |= x << i;
|
doubletag |= x << i;
|
||||||
en_vlan |= x << i;
|
en_vlan |= x << i;
|
||||||
untag |= x << i;
|
untag |= x << i;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user