diff options
author | Gabor Juhos <juhosg@openwrt.org> | 2012-09-05 20:08:42 +0000 |
---|---|---|
committer | Gabor Juhos <juhosg@openwrt.org> | 2012-09-05 20:08:42 +0000 |
commit | 68eeafd44eb7274d53881160eacab4a2e662f64e (patch) | |
tree | 62092f6a6a31fc6365c91da132ef2c6f23e8645f /target/linux | |
parent | 23e9529aae545d75e9e839cfdf136c8b9a92fcd4 (diff) | |
download | upstream-68eeafd44eb7274d53881160eacab4a2e662f64e.tar.gz upstream-68eeafd44eb7274d53881160eacab4a2e662f64e.tar.bz2 upstream-68eeafd44eb7274d53881160eacab4a2e662f64e.zip |
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/linux')
-rw-r--r-- | target/linux/ramips/files/drivers/net/ethernet/ramips/ramips_esw.c | 2 |
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 309efdeb78..f01baa1709 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; |