Hi In our scenario, there are two hosts attached to the OVS. The active host1 and the standby host2 have same MAC. When switching from host1 to host2, the flow of host1 in revalidator update the mac entry of the host2. I think this is not exactly. How do you think?
Another question: I think the upcall thread update the mac learning table is enough why the revalidator thread do this? Here are some logs: # ovs-appctl fdb/show br-2 port VLAN MAC Age 6 0 de:ca:44:38:17:41 4 2 0 de:ca:44:38:17:42 4 // The port no should be 6 6 0 de:ca:44:38:17:45 4 6 0 de:ca:44:38:17:43 4 6 0 de:ca:44:38:17:44 4 # ovs-appctl fdb/show br-3 port VLAN MAC Age 6 0 de:ca:44:38:17:41 4 // The port no should be 1 2 0 de:ca:44:38:17:42 4 5 0 de:ca:44:38:17:45 4 3 0 de:ca:44:38:17:43 4 4 0 de:ca:44:38:17:44 4 CI-EVS-9-31-3-95:/Images/linhf # ovs-dpctl dump-flows --names recirc_id(0),in_port(hnic2.5),eth(src=de:ca:44:38:17:45,dst=de:ca:44:38:17:55),eth_type(0x0800),ipv4(frag=no), packets:9, bytes:882, used:4.112s, actions:br-2,hnic2.1,hnic2.2,hnic2.3,hnic2.4,veth2.1 recirc_id(0),in_port(hnic2.1),eth(src=de:ca:44:38:17:41,dst=de:ca:44:38:17:51),eth_type(0x0800),ipv4(frag=no), packets:9, bytes:882, used:4.145s, actions:br-2,hnic2.2,hnic2.3,hnic2.4,hnic2.5,veth2.1 recirc_id(0),in_port(veth3.1),eth(src=de:ca:44:38:17:41,dst=de:ca:44:38:17:51),eth_type(0x0800),ipv4(frag=no), packets:9, bytes:882, used:4.145s, actions:br-3,hnic3.1,hnic3.2,hnic3.3,hnic3.4,hnic3.5 recirc_id(0),in_port(hnic3.1),eth(src=de:ca:44:38:17:41,dst=de:ca:44:38:17:61),eth_type(0x0800),ipv4(frag=no), packets:4, bytes:392, used:4.053s, actions:br-3,hnic3.2,hnic3.3,hnic3.4,hnic3.5,veth3.1 recirc_id(0),in_port(veth2.1),eth(src=de:ca:44:38:17:41,dst=de:ca:44:38:17:61),eth_type(0x0800),ipv4(frag=no), packets:4, bytes:392, used:4.053s, actions:br-2,hnic2.1,hnic2.2,hnic2.3,hnic2.4,hnic2.5 recirc_id(0),in_port(hnic2.2),eth(src=de:ca:44:38:17:42,dst=de:ca:44:38:17:52),eth_type(0x0800),ipv4(frag=no), packets:9, bytes:882, used:4.145s, actions:br-2,hnic2.1,hnic2.3,hnic2.4,hnic2.5,veth2.1 recirc_id(0),in_port(veth3.1),eth(src=de:ca:44:38:17:42,dst=de:ca:44:38:17:52),eth_type(0x0800),ipv4(frag=no), packets:9, bytes:882, used:4.145s, actions:br-3,hnic3.1,hnic3.2,hnic3.3,hnic3.4,hnic3.5 recirc_id(0),in_port(hnic3.2),eth(src=de:ca:44:38:17:42,dst=de:ca:44:38:17:62),eth_type(0x0800),ipv4(frag=no), packets:4, bytes:392, used:4.049s, actions:br-3,hnic3.1,hnic3.3,hnic3.4,hnic3.5,veth3.1 recirc_id(0),in_port(veth2.1),eth(src=de:ca:44:38:17:42,dst=de:ca:44:38:17:62),eth_type(0x0800),ipv4(frag=no), packets:4, bytes:392, used:4.049s, actions:br-2,hnic2.1,hnic2.2,hnic2.3,hnic2.4,hnic2.5 recirc_id(0),in_port(veth3.1),eth(src=de:ca:44:38:17:43,dst=de:ca:44:38:17:53),eth_type(0x0800),ipv4(frag=no), packets:9, bytes:882, used:4.145s, actions:br-3,hnic3.1,hnic3.2,hnic3.3,hnic3.4,hnic3.5 recirc_id(0),in_port(hnic3.5),eth(src=de:ca:44:38:17:45,dst=de:ca:44:38:17:65),eth_type(0x0800),ipv4(frag=no), packets:4, bytes:392, used:4.017s, actions:br-3,hnic3.1,hnic3.2,hnic3.3,hnic3.4,veth3.1 recirc_id(0),in_port(hnic2.4),eth(src=de:ca:44:38:17:44,dst=de:ca:44:38:17:54),eth_type(0x0800),ipv4(frag=no), packets:9, bytes:882, used:4.113s, actions:br-2,hnic2.1,hnic2.2,hnic2.3,hnic2.5,veth2.1 recirc_id(0),in_port(hnic2.3),eth(src=de:ca:44:38:17:43,dst=de:ca:44:38:17:53),eth_type(0x0800),ipv4(frag=no), packets:9, bytes:882, used:4.145s, actions:br-2,hnic2.1,hnic2.2,hnic2.4,hnic2.5,veth2.1 recirc_id(0),in_port(veth3.1),eth(src=de:ca:44:38:17:45,dst=de:ca:44:38:17:55),eth_type(0x0800),ipv4(frag=no), packets:9, bytes:882, used:4.113s, actions:br-3,hnic3.1,hnic3.2,hnic3.3,hnic3.4,hnic3.5 recirc_id(0),in_port(veth2.1),eth(src=de:ca:44:38:17:45,dst=de:ca:44:38:17:65),eth_type(0x0800),ipv4(frag=no), packets:4, bytes:392, used:4.017s, actions:br-2,hnic2.1,hnic2.2,hnic2.3,hnic2.4,hnic2.5 recirc_id(0),in_port(hnic3.3),eth(src=de:ca:44:38:17:43,dst=de:ca:44:38:17:63),eth_type(0x0800),ipv4(frag=no), packets:4, bytes:392, used:4.017s, actions:br-3,hnic3.1,hnic3.2,hnic3.4,hnic3.5,veth3.1 recirc_id(0),in_port(veth3.1),eth(src=de:ca:44:38:17:44,dst=de:ca:44:38:17:54),eth_type(0x0800),ipv4(frag=no), packets:9, bytes:882, used:4.113s, actions:br-3,hnic3.1,hnic3.2,hnic3.3,hnic3.4,hnic3.5 recirc_id(0),in_port(veth2.1),eth(src=de:ca:44:38:17:43,dst=de:ca:44:38:17:63),eth_type(0x0800),ipv4(frag=no), packets:4, bytes:392, used:4.017s, actions:br-2,hnic2.1,hnic2.2,hnic2.3,hnic2.4,hnic2.5 recirc_id(0),in_port(hnic3.4),eth(src=de:ca:44:38:17:44,dst=de:ca:44:38:17:64),eth_type(0x0800),ipv4(frag=no), packets:4, bytes:392, used:4.017s, actions:br-3,hnic3.1,hnic3.2,hnic3.3,hnic3.5,veth3.1 recirc_id(0),in_port(veth2.1),eth(src=de:ca:44:38:17:44,dst=de:ca:44:38:17:64),eth_type(0x0800),ipv4(frag=no), packets:4, bytes:392, used:4.017s, actions:br-2,hnic2.1,hnic2.2,hnic2.3,hnic2.4,hnic2.5 Here is test script: ovs-vsctl del-br br-2 ovs-vsctl del-br br-3 ip link add veth2.1 type veth peer name veth3.1; ifconfig veth2.1 up; sleep 1; ifconfig veth3.1 up; ovs-vsctl add-br br-2; ovs-vsctl add-br br-3; ovs-vsctl add-port br-2 hnic2.1 -- set interface hnic2.1 type=internal; ovs-vsctl add-port br-2 hnic2.2 -- set interface hnic2.2 type=internal; ovs-vsctl add-port br-2 hnic2.3 -- set interface hnic2.3 type=internal; ovs-vsctl add-port br-2 hnic2.4 -- set interface hnic2.4 type=internal; ovs-vsctl add-port br-2 hnic2.5 -- set interface hnic2.5 type=internal; ovs-vsctl add-port br-3 hnic3.1 -- set interface hnic3.1 type=internal; ovs-vsctl add-port br-3 hnic3.2 -- set interface hnic3.2 type=internal; ovs-vsctl add-port br-3 hnic3.3 -- set interface hnic3.3 type=internal; ovs-vsctl add-port br-3 hnic3.4 -- set interface hnic3.4 type=internal; ovs-vsctl add-port br-3 hnic3.5 -- set interface hnic3.5 type=internal; ip link set hnic2.1 address DE:CA:44:38:17:41; ip link set hnic3.1 address DE:CA:44:38:17:41; ip link set hnic2.2 address DE:CA:44:38:17:42; ip link set hnic3.2 address DE:CA:44:38:17:42; ip link set hnic2.3 address DE:CA:44:38:17:43; ip link set hnic3.3 address DE:CA:44:38:17:43; ip link set hnic2.4 address DE:CA:44:38:17:44; ip link set hnic3.4 address DE:CA:44:38:17:44; ip link set hnic2.5 address DE:CA:44:38:17:45; ip link set hnic3.5 address DE:CA:44:38:17:45; ifconfig hnic2.1 192.168.112.2/24; ifconfig hnic3.1 192.168.113.2/24; ifconfig hnic2.2 192.168.122.2/24; ifconfig hnic3.2 192.168.123.2/24; ifconfig hnic2.3 192.168.132.2/24; ifconfig hnic3.3 192.168.133.2/24; ifconfig hnic2.4 192.168.142.2/24; ifconfig hnic3.4 192.168.143.2/24; ifconfig hnic2.5 192.168.152.2/24; ifconfig hnic3.5 192.168.153.2/24; ovs-vsctl add-port br-2 veth2.1; ovs-vsctl add-port br-3 veth3.1; arp -s 192.168.112.3 de:ca:44:38:17:51; arp -s 192.168.122.3 de:ca:44:38:17:52; arp -s 192.168.132.3 de:ca:44:38:17:53; arp -s 192.168.142.3 de:ca:44:38:17:54; arp -s 192.168.152.3 de:ca:44:38:17:55; arp -s 192.168.113.3 de:ca:44:38:17:61; arp -s 192.168.123.3 de:ca:44:38:17:62; arp -s 192.168.133.3 de:ca:44:38:17:63; arp -s 192.168.143.3 de:ca:44:38:17:64; arp -s 192.168.153.3 de:ca:44:38:17:65; for ((i=0;i<1;i++));do ovs-appctl fdb/flush br-2 ovs-appctl fdb/flush br-3 ovs-dpctl del-flows ping 192.168.112.3 -c 5 > /dev/null & ping 192.168.122.3 -c 5 > /dev/null & ping 192.168.132.3 -c 5 > /dev/null & ping 192.168.142.3 -c 5 > /dev/null & ping 192.168.152.3 -c 5 > /dev/null & sleep 5 ovs-appctl fdb/show br-2 ovs-appctl fdb/show br-3 ovs-dpctl dump-flows --names ping 192.168.112.3 -c 5 > /dev/null & ping 192.168.122.3 -c 5 > /dev/null & ping 192.168.132.3 -c 5 > /dev/null & ping 192.168.142.3 -c 5 > /dev/null & ping 192.168.152.3 -c 5 > /dev/null & sleep 0.04 ping 192.168.113.3 -c 5 > /dev/null & ping 192.168.123.3 -c 5 > /dev/null & ping 192.168.133.3 -c 5 > /dev/null & ping 192.168.143.3 -c 5 > /dev/null & ping 192.168.153.3 -c 5 > /dev/null & ovs-appctl fdb/show br-2 ovs-appctl fdb/show br-3 ovs-dpctl dump-flows --names done _______________________________________________ discuss mailing list disc...@openvswitch.org https://mail.openvswitch.org/mailman/listinfo/ovs-discuss