summaryrefslogtreecommitdiffstats
path: root/target
diff options
context:
space:
mode:
authorjuhosg <juhosg@3c298f89-4303-0410-b956-a3cf2f4a3e73>2012-09-05 20:08:42 +0000
committerjuhosg <juhosg@3c298f89-4303-0410-b956-a3cf2f4a3e73>2012-09-05 20:08:42 +0000
commit07073dcb279d594ec5c2e5100152e3e5138c7341 (patch)
tree62092f6a6a31fc6365c91da132ef2c6f23e8645f /target
parente937e774c94b15dd0b121818a8cc8a45e9163034 (diff)
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> git-svn-id: svn://svn.openwrt.org/openwrt/trunk@33321 3c298f89-4303-0410-b956-a3cf2f4a3e73
Diffstat (limited to 'target')
-rw-r--r--target/linux/ramips/files/drivers/net/ethernet/ramips/ramips_esw.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/target/linux/ramips/files/drivers/net/ethernet/ramips/ramips_esw.c b/target/linux/ramips/files/drivers/net/ethernet/ramips/ramips_esw.c
index 309efdeb7..f01baa170 100644
--- a/target/linux/ramips/files/drivers/net/ethernet/ramips/ramips_esw.c
+++ b/target/linux/ramips/files/drivers/net/ethernet/ramips/ramips_esw.c
@@ -534,7 +534,7 @@ rt305x_esw_apply_config(struct switch_dev *dev)
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;