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+open...@tdiedrich.de> Index: openwrt-ralink-swconfig/target/linux/ramips/files/drivers/net/ethernet/ramips/ramips_esw.c =================================================================== --- openwrt-ralink-swconfig.orig/target/linux/ramips/files/drivers/net/ethernet/ramips/ramips_esw.c 2012-09-02 22:15:49.770899684 +0200 +++ openwrt-ralink-swconfig/target/linux/ramips/files/drivers/net/ethernet/ramips/ramips_esw.c 2012-09-02 22:16:57.970994947 +0200 @@ -559,7 +559,7 @@ untag |= esw->ports[i].untag << i; pvid = esw->ports[i].pvid; } else { - int x = esw->alt_vlan_disable ? 1 : 0; + int x = esw->alt_vlan_disable ? 0 : 1; doubletag |= x << i; en_vlan |= x << i; untag |= x << i; _______________________________________________ openwrt-devel mailing list openwrt-devel@lists.openwrt.org https://lists.openwrt.org/mailman/listinfo/openwrt-devel