On 3 September 2012 00:18, Tobias Diedrich <[email protected]> wrote: > Roman Yeryomin wrote: >> On 2 September 2012 23:28, Tobias Diedrich <[email protected]> >> wrote: >> > 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 <[email protected]> >> > >> > >> > 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; >> > >> >> I think I've stumbled upon this issue more than 6 months ago. I've >> sent patches for belkin board and I was using double tagging. Gabor >> then tried to fix it but his patches didn't work for me. >> Double tagging works perfectly though. >> Belkin soc is 3052F. > > I think that maybe some register not touched by the switch driver or > maybe differences between hardware revisions play into this. > Both methods seem to work fine on the hardware I have (RT3050 > DIR-300 with internal switch and RT3052 WL-351 with external > RTL8366RB). >
One more thing forgot to mention - the original driver provided in belkin source also uses double tagging. But I agree, there is no sane reason why disabling vlan should not work. _______________________________________________ openwrt-devel mailing list [email protected] https://lists.openwrt.org/mailman/listinfo/openwrt-devel
