Please help me debug this problem. I have an OVS with two ports. A packet enters the bridge with VLAN 103 and leaves with VLAN 3. I do not understand why. There seems to be no flow rule for this. It should not be changed.
This is an OpenStack environment, but I'll try to show the relevant parts. I think it is ovs related. This is the bridge: Bridge br-of Port br-of Interface br-of type: internal Port "eth1" Interface "eth1" Port phy-br-of Interface phy-br-of Port "eth2" Interface "eth2" rvdp@lithium:~$ sudo ovs-ofctl show br-of OFPT_FEATURES_REPLY (xid=0x2): dpid:00000002c9ee01d0 n_tables:254, n_buffers:256 capabilities: FLOW_STATS TABLE_STATS PORT_STATS QUEUE_STATS ARP_MATCH_IP actions: OUTPUT SET_VLAN_VID SET_VLAN_PCP STRIP_VLAN SET_DL_SRC SET_DL_DST SET_NW_SRC SET_NW_DST SET_NW_TOS SET_TP_SRC SET_TP_DST ENQUEUE 1(eth2): addr:00:02:c9:ee:01:d1 config: 0 state: 0 current: COPPER advertised: 10GB-FD COPPER supported: 10GB-FD COPPER speed: 0 Mbps now, 10000 Mbps max 5(phy-br-of): addr:52:92:c1:84:d9:99 config: 0 state: 0 current: 10GB-FD COPPER speed: 10000 Mbps now, 0 Mbps max 7(eth1): addr:00:02:c9:ee:01:d0 config: 0 state: 0 current: 10GB-FD COPPER advertised: 10GB-FD COPPER supported: 10GB-FD COPPER speed: 10000 Mbps now, 10000 Mbps max LOCAL(br-of): addr:00:02:c9:ee:01:d0 config: 0 state: 0 speed: 0 Mbps now, 0 Mbps max OFPT_GET_CONFIG_REPLY (xid=0x4): frags=normal miss_send_len=0 rvdp@lithium:~$ rvdp@lithium:~$ ifconfig eth1 eth1 Link encap:Ethernet HWaddr 00:02:c9:ee:01:d0 inet6 addr: fe80::202:c9ff:feee:1d0/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:23874872 errors:0 dropped:0 overruns:0 frame:0 TX packets:15691781 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:1864954722 (1.8 GB) TX bytes:1223898214 (1.2 GB) rvdp@lithium:~$ ifconfig eth1.103 eth1.103 Link encap:Ethernet HWaddr 00:02:c9:ee:01:d0 inet addr:10.103.0.1 Bcast:10.103.0.255 Mask:255.255.255.0 inet6 addr: fe80::202:c9ff:feee:1d0/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:4208 errors:0 dropped:0 overruns:0 frame:0 TX packets:8 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:193568 (193.5 KB) TX bytes:648 (648.0 B) Packet enters from eth1 with VLAN 103: -------------------------------------- rvdp@lithium:~$ tshark -V -n -i eth1 Capturing on 'eth1' Frame 1: 64 bytes on wire (512 bits), 64 bytes captured (512 bits) on interface 0 Interface id: 0 Encapsulation type: Ethernet (1) Arrival Time: Aug 1, 2014 17:09:14.102356000 CEST [Time shift for this packet: 0.000000000 seconds] Epoch Time: 1406905754.102356000 seconds [Time delta from previous captured frame: 0.000059000 seconds] [Time delta from previous displayed frame: 0.000000000 seconds] [Time since reference or first frame: 0.000059000 seconds] Frame Number: 2 Frame Length: 64 bytes (512 bits) Capture Length: 64 bytes (512 bits) [Frame is marked: False] [Frame is ignored: False] [Protocols in frame: eth:vlan:arp] Ethernet II, Src: fa:16:3e:e4:a0:7f (fa:16:3e:e4:a0:7f), Dst: ff:ff:ff:ff:ff:ff (ff:ff:ff:ff:ff:ff) Destination: ff:ff:ff:ff:ff:ff (ff:ff:ff:ff:ff:ff) Address: ff:ff:ff:ff:ff:ff (ff:ff:ff:ff:ff:ff) .... ..1. .... .... .... .... = LG bit: Locally administered address (this is NOT the factory default) .... ...1 .... .... .... .... = IG bit: Group address (multicast/broadcast) Source: fa:16:3e:e4:a0:7f (fa:16:3e:e4:a0:7f) Address: fa:16:3e:e4:a0:7f (fa:16:3e:e4:a0:7f) .... ..1. .... .... .... .... = LG bit: Locally administered address (this is NOT the factory default) .... ...0 .... .... .... .... = IG bit: Individual address (unicast) Type: 802.1Q Virtual LAN (0x8100) 802.1Q Virtual LAN, PRI: 0, CFI: 0, ID: 103 000. .... .... .... = Priority: Best Effort (default) (0) ...0 .... .... .... = CFI: Canonical (0) .... 0000 0110 0111 = ID: 103 Type: ARP (0x0806) Padding: 0000000000000000000000000000 Trailer: 1d019b7f Address Resolution Protocol (request) Hardware type: Ethernet (1) Protocol type: IP (0x0800) Hardware size: 6 Protocol size: 4 Opcode: request (1) Sender MAC address: fa:16:3e:e4:a0:7f (fa:16:3e:e4:a0:7f) Sender IP address: 10.101.0.2 (10.101.0.2) Target MAC address: 00:00:00:00:00:00 (00:00:00:00:00:00) Target IP address: 10.101.0.5 (10.101.0.5) -------------------------------------- But it leaves phy-br-of with VLAN 3: -------------------------------------- rvdp@lithium:~$ tshark -V -c1 -n -i phy-br-of Capturing on 'phy-br-of' Frame 1: 46 bytes on wire (368 bits), 46 bytes captured (368 bits) on interface 0 Interface id: 0 Encapsulation type: Ethernet (1) Arrival Time: Aug 1, 2014 17:11:34.100388000 CEST [Time shift for this packet: 0.000000000 seconds] Epoch Time: 1406905894.100388000 seconds [Time delta from previous captured frame: 0.000000000 seconds] [Time delta from previous displayed frame: 0.000000000 seconds] [Time since reference or first frame: 0.000000000 seconds] Frame Number: 1 Frame Length: 46 bytes (368 bits) Capture Length: 46 bytes (368 bits) [Frame is marked: False] [Frame is ignored: False] [Protocols in frame: eth:vlan:arp] Ethernet II, Src: fa:16:3e:e4:a0:7f (fa:16:3e:e4:a0:7f), Dst: ff:ff:ff:ff:ff:ff (ff:ff:ff:ff:ff:ff) Destination: ff:ff:ff:ff:ff:ff (ff:ff:ff:ff:ff:ff) Address: ff:ff:ff:ff:ff:ff (ff:ff:ff:ff:ff:ff) .... ..1. .... .... .... .... = LG bit: Locally administered address (this is NOT the factory default) .... ...1 .... .... .... .... = IG bit: Group address (multicast/broadcast) Source: fa:16:3e:e4:a0:7f (fa:16:3e:e4:a0:7f) Address: fa:16:3e:e4:a0:7f (fa:16:3e:e4:a0:7f) .... ..1. .... .... .... .... = LG bit: Locally administered address (this is NOT the factory default) .... ...0 .... .... .... .... = IG bit: Individual address (unicast) Type: 802.1Q Virtual LAN (0x8100) 802.1Q Virtual LAN, PRI: 0, CFI: 0, ID: 3 000. .... .... .... = Priority: Best Effort (default) (0) ...0 .... .... .... = CFI: Canonical (0) .... 0000 0000 0011 = ID: 3 Type: ARP (0x0806) Address Resolution Protocol (request) Hardware type: Ethernet (1) Protocol type: IP (0x0800) Hardware size: 6 Protocol size: 4 Opcode: request (1) Sender MAC address: fa:16:3e:e4:a0:7f (fa:16:3e:e4:a0:7f) Sender IP address: 10.101.0.2 (10.101.0.2) Target MAC address: 00:00:00:00:00:00 (00:00:00:00:00:00) Target IP address: 10.101.0.5 (10.101.0.5) -------------------------------------- (the other side, int-br-of, shows the same) These are the flow rules: rvdp@lithium:~$ sudo ovs-ofctl dump-flows br-of NXST_FLOW reply (xid=0x4): cookie=0x0, duration=19204.821s, table=0, n_packets=14388, n_bytes=604592, idle_age=1, priority=4,in_port=5,dl_vlan=3 actions=mod_vlan_vid:101,NORMAL cookie=0x0, duration=19205.755s, table=0, n_packets=6, n_bytes=268, idle_age=11353, priority=4,in_port=5,dl_vlan=2 actions=mod_vlan_vid:103,NORMAL cookie=0x0, duration=19210.085s, table=0, n_packets=236, n_bytes=15528, idle_age=162, priority=2,in_port=5 actions=drop cookie=0x0, duration=19210.713s, table=0, n_packets=1778506, n_bytes=160065556, idle_age=15259, priority=1 actions=NORMAL rvdp@lithium:~$ -------------------------------------- Counters on the flow rule "in_port=5,dl_vlan=3" increase. ofproto/trace gives: rvdp@lithium:~$ sudo ovs-appctl ofproto/trace br-of in_port=7,dl_vlan=103,dl_src=fa:16:3e:e4:a0:7f,dl_dst=ff:ff:ff:ff:ff:ff,arp,arp_spa=10.101.0.2,arp_tpa=10.101.0.5,arp_sha=fa:16:3e:e4:a0:7f,arp_tha=00:00:00:00:00:00 Flow: arp,metadata=0,in_port=7,dl_vlan=103,dl_vlan_pcp=0,dl_src=fa:16:3e:e4:a0:7f,dl_dst=ff:ff:ff:ff:ff:ff,arp_spa=10.101.0.2,arp_tpa=10.101.0.5,arp_sha=fa:16:3e:e4:a0:7f,arp_tha=00:00:00:00:00:00 Rule: table=0 cookie=0 priority=1 OpenFlow actions=NORMAL no learned MAC for destination, flooding Final flow: unchanged Relevant fields: skb_priority=0,arp,in_port=7,dl_vlan=103,dl_src=fa:16:3e:e4:a0:7f,dl_dst=ff:ff:ff:ff:ff:ff,nw_frag=no Datapath actions: 4,6,8 rvdp@lithium:~$ This is what should happen. This is what I expect. But the tshark shows that the vlan id has changed from 103 to 3. Is in_port=7 the correct port? If I use in_port=5 the packet gets dropped. rvdp@lithium:~$ ovs-dpctl show system@ovs-system: lookups: hit:88297643 missed:237835 lost:5824 flows: 23 port 0: ovs-system (internal) port 1: br-p2p2 (internal) port 2: p2p2 port 3: br-int (internal) port 4: br-of (internal) port 5: eth1 port 6: eth2 port 7: int-br-of port 8: phy-br-of port 9: int-br-p2p2 port 10: phy-br-p2p2 port 11: qvoee503507-d4 port 12: qvoec91ac92-65 port 13: qvof3111da3-1e port 14: qvoc571d286-66 port 15: qvo90426bbe-76 port 16: qvo9db2c337-d9 port 17: qvoc8335d24-bb port 18: qvo41c98397-fd rvdp@lithium:~$ So, what is going on? What else can I do to debug this? rvdp _______________________________________________ discuss mailing list discuss@openvswitch.org http://openvswitch.org/mailman/listinfo/discuss