Hi, Peter and David,

I add the following patch and VLAN tagging working fine for UBNT RS:

--- ./target/linux/generic-2.6/files/drivers/net/phy/adm6996.c  2011-03-29
16:24:22.869595814 +0800
+++ ./build_dir/linux-ar71xx/linux-2.6.32.27/drivers/net/phy/adm6996.c
2011-04-04 18:32:14.188937710 +0800
@@ -416,6 +418,15 @@ adm6996_apply_vlan_filters(struct adm699
                w16(priv->phydev, ADM_VLAN_FILT_L(i), reg);
                reg = ADM_VLAN_FILT_VALID | ADM_VLAN_FILT_VID(vid);
                w16(priv->phydev, ADM_VLAN_FILT_H(i), reg);
+
+               for (i = 0; i < ADM_PHY_PORTS; i++) {
+                       if(tagged & (1<<i)){
+                               //printk("Tag: 0x%x, i: %d\n",
adm_portcfg[i], i);
+                               reg = r16(priv->phydev, adm_portcfg[i]);
+                               reg |= ADM_PORTCFG_OT;
+                               w16(priv->phydev, adm_portcfg[i], reg);
+                       }
+               }
        }
 }

config 'switch'
        option 'name' 'eth1'
        option 'reset' '1'
        option 'enable_vlan' '1'
        option 'enable' '1'

config 'switch_vlan'
        option 'device' 'eth1'
        option 'vlan' '1'
        option 'vid' '1'
        option 'ports' '0t 1t 5t'

config 'switch_vlan'
        option 'vlan' '2'
        option 'vid' '2'
        option 'ports' '0t 1t 5t

TCP dump results:
# tcpdump -eni eth2
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth2, link-type EN10MB (Ethernet), capture size 96 bytes
19:56:57.744360 00:15:6d:c3:81:b1 > ff:ff:ff:ff:ff:ff, ethertype 802.1Q
(0x8100), length 60: vlan 1, p 0, ethertype ARP, arp who-has 192.168.1.2
tell 192.168.1.1
19:56:58.744408 00:15:6d:c3:81:b1 > ff:ff:ff:ff:ff:ff, ethertype 802.1Q
(0x8100), length 60: vlan 1, p 0, ethertype ARP, arp who-has 192.168.1.2
tell 192.168.1.1
19:56:59.744478 00:15:6d:c3:81:b1 > ff:ff:ff:ff:ff:ff, ethertype 802.1Q
(0x8100), length 60: vlan 1, p 0, ethertype ARP, arp who-has 192.168.1.2
tell 192.168.1.1
19:57:01.984613 00:15:6d:c3:81:b1 > ff:ff:ff:ff:ff:ff, ethertype 802.1Q
(0x8100), length 60: vlan 2, p 0, ethertype ARP, arp who-has 192.168.2.2
tell 192.168.2.1
19:57:02.984683 00:15:6d:c3:81:b1 > ff:ff:ff:ff:ff:ff, ethertype 802.1Q
(0x8100), length 60: vlan 2, p 0, ethertype ARP, arp who-has 192.168.2.2
tell 192.168.2.1
19:57:03.984754 00:15:6d:c3:81:b1 > ff:ff:ff:ff:ff:ff, ethertype 802.1Q
(0x8100), length 60: vlan 2, p 0, ethertype ARP, arp who-has 192.168.2.2
tell 192.168.2.1

The only problem nows is the port 1 is activated after port 0 is plugged
with cable. Any idea how to solve this?

One more thing if I try the following /etc/config/network

config 'switch'
        option 'name' 'eth1'
        option 'reset' '1'
        option 'enable_vlan' '1'
        option 'enable' '1'

config 'switch_vlan'
        option 'device' 'eth1'
        option 'vlan' '1'
        option 'vid' '1'
        option 'ports' '0 1 5t'

config 'switch_vlan'
        option 'vlan' '2'
        option 'vid' '2'
        option 'ports' '0t 1t 5t

The VLAN 2 is not working, any idea why?

Regards,
Chun Yeow
_______________________________________________
openwrt-devel mailing list
openwrt-devel@lists.openwrt.org
https://lists.openwrt.org/mailman/listinfo/openwrt-devel

Reply via email to