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

Reply via email to