|
发表于 2013-4-2 11:34:41
|
显示全部楼层
chmjiong 发表于 2012-8-2 12:31 ! J& t9 v; M: h( {0 v; b
指定了PVID后,仍然无法避免0t 1被改为0t 1t# U7 N* x5 M* q6 }
现在基本可以肯定是这个原因导致wan罢工,另外,vlan51如何 ...
' \$ A! k* o! q f2 T: B, B和你的MR4530类似,最近掉到WNDR4300的ar8327和nand flash的坑里了,所以翻出来这个账号,重新开始折腾。因为openwrt还不支持这个型号上的nand,所以刷了dd-wrt。
0 @8 F! J+ |* Y: P, J看过ar8327的data sheet,vlan支持是很全面的:2 `/ L, j X8 S/ c6 r X
The AR8327 switch supports many VLAN options including IEEE 802.1Q and port-based VLANs. The
: x9 D. c' s- o$ e7 S. E+ X5 cAR8327 supports 4096 IEEE 802.1Q VLAN groups and 4K VLAN table entries, and the AR8327 device
4 o$ A9 j7 r* B9 d' }checks VLAN port membership from the VLAN ID, extracted from the tag header of the frame. Table . O" g8 B4 F' P3 I! \6 u
2-18 shows the AR8327-supported 802.1Q modes. The port-based VLAN is enabled according to the 9 ^) s/ b) R2 }3 P+ k- C
user-defined PORT VID value. The AR8327 supports optional discards of tagged, untagged frames,
& Y* L, R) t2 {9 Tand priority tagged frames. The AR8327 also supports untagging of the VLAN ID for packets going 1 o; K) L5 z, N3 w! b
out on untagged ports on a per-port basis. # U& M: z+ f) ?) G, I' ~
, I4 y8 x. F$ y) a) R2 ^
不过还在看3.8 trunk里的ar8216.c的switch source code,毕竟不太会编程,还没搞清楚。不过看到ar8xxx_sw_set_ports(struct switch_dev *dev, struct switch_val *val)有一个函数有个注释:
7 f) ~* o. @+ x; f* H/ w$ F1379 /* make sure that an untagged port does not
. w7 h( Y$ M3 \7 k1380 * appear in other vlans */
) C P! s2 D* Q1381 for (j = 0; j < AR8X16_MAX_VLANS; j++) {3 Y( v) L3 f$ k2 e& y6 g
1382 if (j == val->port_vlan)( j) `# |! X3 a; J" k% d, P
1383 continue;4 A1 \5 M$ y9 H- I4 [4 Z
1384 priv->vlan_table[j] &= ~(1 << p->id);
4 R: W0 D$ [4 m/ b! k3 S* _+ m; ? c& } N
这句话大概可以解释为什么0t 1会被改成0t 1t。 |
|