Hello i have problems with packet tagging on RB3011. I configured VLANs on both switch chips a set switch1-cpu and switch2-cpu port to secure mode and header add if missing.
Then I instantiate VLAN 200 interfaces on both master ports and bridget it together. In this configuration I observe significant packet loose between some clients in VLAN200 if traffic goes thru bridge.
After little peaking with torch tool I found that sometimes switch chip omit add vlan tag on cpu port if packet comes from access port (untaged) of switch. From trunk port (already tagged) it probably allways works (cpu gets packet with vlan). Also when device is on access and trunk port on same switch it works - so problem is only with tagging on cpu port.
I expected that when I set "add if missing" on cpu port then CPU sould not get untagged packet, but according to attached picture sometimes VLAN 200 is added and sometimes not.
Legend:
10.100.0.100 computer attached to ether5 (header always strip,mode secure,vlan 200) - used to send ping requests
10.100.0.16 device sttached to ether9 (header add if missing,mode secure)
10.100.0.1 RB3011 itself
Same behavior found with ROS 6.40rc19, 6.40rc21, 6.39.2
When I looked in diagram of RB3011 I suspect that only one link between each switch and CPU is controlled by header mode settings, but second is left in leave as is mode. And this break tagging from access ports if packet is send to cpu via second link. Also behavior is very similar to case when bonded interfaces have broken one link between them.
configuration of switch in test setup:
/interface ethernet
set [ find default-name=ether4 ] name=eth4
set [ find default-name=ether5 ] comment="Dohledovy port" master-port=eth4 name=eth5
set [ find default-name=ether6 ] comment="maste LAN port (VLANy)" name=eth6
set [ find default-name=ether7 ] master-port=eth6 name=eth7
set [ find default-name=ether8 ] master-port=eth6 name=eth8
set [ find default-name=ether9 ] master-port=eth6 name=eth9
set [ find default-name=ether10 ] master-port=eth6 name=eth10
set [ find default-name=ether1 ] master-port=eth4 name=eth1
set [ find default-name=ether2 ] master-port=eth4 name=eth2
set [ find default-name=ether3 ] master-port=eth4 name=eth3
/interface ethernet switch port
set 0 default-vlan-id=10 vlan-header=always-strip vlan-mode=secure
set 1 default-vlan-id=1 vlan-header=add-if-missing vlan-mode=secure
set 2 default-vlan-id=1 vlan-header=add-if-missing vlan-mode=secure
set 3 default-vlan-id=1 vlan-header=add-if-missing vlan-mode=secure
set 4 default-vlan-id=200 vlan-header=always-strip vlan-mode=secure
set 5 default-vlan-id=1 vlan-header=add-if-missing vlan-mode=secure
set 6 default-vlan-id=200 vlan-header=always-strip vlan-mode=secure
set 7 default-vlan-id=1 vlan-header=add-if-missing vlan-mode=secure
set 8 default-vlan-id=1 vlan-header=add-if-missing vlan-mode=secure
set 9 default-vlan-id=1 vlan-header=add-if-missing vlan-mode=secure
set 10 default-vlan-id=1 vlan-header=add-if-missing vlan-mode=secure
set 11 default-vlan-id=1 vlan-header=add-if-missing vlan-mode=secure
/interface ethernet switch vlan
add independent-learning=no ports=eth6,eth8,eth9,eth10,switch2-cpu switch=switch2 vlan-id=101
add independent-learning=no ports=eth6,eth8,eth9,eth10,switch2-cpu switch=switch2 vlan-id=102
add independent-learning=no ports=eth6,eth8,eth9,eth10,switch2-cpu switch=switch2 vlan-id=103
add independent-learning=no ports=eth6,eth8,eth9,eth10,switch2-cpu switch=switch2 vlan-id=104
add independent-learning=no ports=eth6,eth7,eth8,eth9,eth10,switch2-cpu switch=switch2 vlan-id=200
add independent-learning=no ports=eth6,eth8,eth9,eth10,switch2-cpu switch=switch2 vlan-id=201
add independent-learning=no ports=eth6,eth8,eth9,eth10,switch2-cpu switch=switch2 vlan-id=202
add independent-learning=no ports=eth6,eth8,eth9,eth10,switch2-cpu switch=switch2 vlan-id=1
add independent-learning=no ports=eth1,eth2,eth3,eth4,switch1-cpu switch=switch1 vlan-id=10
add independent-learning=no ports=eth2,eth3,eth4,switch1-cpu switch=switch1 vlan-id=51
add independent-learning=no ports=eth2,eth3,eth4,switch1-cpu switch=switch1 vlan-id=101
add independent-learning=no ports=eth2,eth3,eth4,switch1-cpu switch=switch1 vlan-id=102
add independent-learning=no ports=eth2,eth3,eth4,eth5,switch1-cpu switch=switch1 vlan-id=200
add independent-learning=no ports=eth2,eth3,eth4,switch1-cpu switch=switch1 vlan-id=202
add independent-learning=no ports=eth1,eth2,eth3,eth4,switch1-cpu switch=switch1 vlan-id=1
add independent-learning=no ports=eth2,eth3,eth4,switch1-cpu switch=switch1 vlan-id=50
add independent-learning=no ports=eth2,eth3,eth4,switch1-cpu switch=switch1 vlan-id=11