Note: This bug is displayed in read-only format because the product is no longer active in Red Hat Bugzilla.
The FDP team is no longer accepting new bugs in Bugzilla. Please report your issues under FDP project in Jira. Thanks.

Bug 1847537

Summary: [OVN] Flow explosion due to ARP responder for NAT entries in distributed logical routers.
Product: Red Hat Enterprise Linux Fast Datapath Reporter: Dumitru Ceara <dceara>
Component: OVNAssignee: Dumitru Ceara <dceara>
Status: CLOSED ERRATA QA Contact: Jianlin Shi <jishi>
Severity: high Docs Contact:
Priority: high    
Version: FDP 20.ECC: ctrautma, dcbw
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2020-09-16 16:01:23 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Dumitru Ceara 2020-06-16 15:08:39 UTC
Description of problem:

Originally reported at [0]

OVN adds logical flows to table lr_in_ip_input in order to respond to ARP requests for configured NAT IPs.

Right now for every destination NAT IP X, for every logical port on the router, we add one flow to respond to ARP requests for IP X.

This can be optimized as suggested upstream [1]:

- priority X + 20 flows for each distributed gateway port for each NAT IP with is_chassis_resident(distributed gw port), action: reply ARP
- priority X + 10 flows for each distributed gateway port for each NAT IP without is_chassis_resident(distributed gw port), action: drop
- priority X flows for each NAT IP on the router (no need to match inport), action: reply ARP

[0] https://mail.openvswitch.org/pipermail/ovs-discuss/2020-June/050186.html
[1] https://mail.openvswitch.org/pipermail/ovs-discuss/2020-June/050187.html

Comment 1 Dumitru Ceara 2020-07-13 08:00:51 UTC
Fix merged upstream [0] will be available in upstream ovn20.09.

[0] 

commit c4ff9b83cab44a88f74d19a866eea31b565108da
Author: Dumitru Ceara <dceara>
Date:   Wed Jul 8 15:06:02 2020 +0200

    ovn-northd: Fix is_chassis_resident() match for DNAT.

commit 59340bab9402c3d78568363d11acea373045a260
Author: Dumitru Ceara <dceara>
Date:   Mon Jul 6 13:32:21 2020 +0200

    ovn-northd: Minimize number of ARP/NS responder flows for DNAT.

Comment 5 Jianlin Shi 2020-08-31 07:39:58 UTC
tested with following script:

#server
systemctl start openvswitch
systemctl start ovn-northd                                               
ovn-nbctl set-connection ptcp:6641 
ovn-sbctl set-connection ptcp:6642                                        
ovs-vsctl set open . external_ids:system-id=hv1 external_ids:ovn-remote=tcp:20.0.50.25:6642 external_ids:ovn-encap-type=geneve external_ids:ovn-encap-ip=20.0.50.25
systemctl restart ovn-controller
                                     
ovn-nbctl lr-add lr1                                 
ovn-nbctl lrp-add lr1 lr1-ls1 00:00:00:00:00:01 192.168.1.254/24 2001::a/64
ovn-nbctl lrp-add lr1 lr1-ls2 00:00:00:00:00:02 192.168.2.254/24 2002::a/64
ovn-nbctl lrp-add lr1 lr1-ls3 00:00:00:00:00:03 192.168.3.254/24 2003::a/64
ovn-nbctl lrp-add lr1 lr1-ext1 00:00:00:00:00:11 172.16.1.254/24 1234::a/64
                                                 
                            
ovn-nbctl ls-add ls1                                                
ovn-nbctl lsp-add ls1 ls1-lr1                                             
ovn-nbctl lsp-set-type ls1-lr1 router                               
ovn-nbctl lsp-set-options ls1-lr1 router-port=lr1-ls1    
ovn-nbctl lsp-set-addresses ls1-lr1 router                          
                                                         
ovn-nbctl lsp-add ls1 ls1p1                            
ovn-nbctl lsp-set-addresses ls1p1 "00:00:00:00:01:01 192.168.1.1 2001::1"
                                                             
                                                             
ovn-nbctl ls-add ls2                              
ovn-nbctl lsp-add ls2 ls2-lr1  
ovn-nbctl lsp-set-type ls2-lr1 router                               
ovn-nbctl lsp-set-options ls2-lr1 router-port=lr1-ls2    
ovn-nbctl lsp-set-addresses ls2-lr1 router                          
                                                         
ovn-nbctl lsp-add ls2 ls2p1                                         
ovn-nbctl lsp-set-addresses ls2p1 "00:00:00:00:02:01 192.168.2.1 2002::1"
                                  
                                                             
ovn-nbctl ls-add ls3                                                                                                                                               
ovn-nbctl lsp-add ls3 ls3-lr1                                
ovn-nbctl lsp-set-type ls3-lr1 router
ovn-nbctl lsp-set-options ls3-lr1 router-port=lr1-ls3
ovn-nbctl lsp-set-addresses ls1-lr1 router

ovn-nbctl lsp-add ls3 ls3p1
ovn-nbctl lsp-set-addresses ls3p1 "00:00:00:00:03:01 192.168.3.1 2003::1"

ovs-vsctl add-br br-provider
ovs-vsctl add-port br-provider p3p2
ovs-vsctl set open . external-ids:ovn-bridge-mappings=provider:br-provider

ovn-nbctl ls-add ext1
ovn-nbctl lsp-add ext1 ext1-lr1
ovn-nbctl lsp-set-type ext1-lr1 router
ovn-nbctl lsp-set-options ext1-lr1 router-port=lr1-ext1
ovn-nbctl lsp-set-addresses ext1-lr1 router

ovn-nbctl lrp-set-gateway-chassis lr1-ext1 hv1 20
ovn-nbctl lrp-set-gateway-chassis lr1-ext1 hv0 10

ovs-vsctl add-port br-int ls1p1 -- set interface ls1p1 type=internal
ovs-vsctl set interface ls1p1 external_ids:iface-id=ls1p1
ovs-vsctl add-port br-int ls2p1 -- set interface ls2p1 type=internal
ovs-vsctl set interface ls2p1 external_ids:iface-id=ls2p1
ovs-vsctl add-port br-int ls3p1 -- set interface ls3p1 type=internal
ovs-vsctl set interface ls3p1 external_ids:iface-id=ls3p1
                                                                    
ovn-nbctl lr-nat-add lr1 dnat_and_snat 172.16.1.1 192.168.1.1
ovn-nbctl lr-nat-add lr1 dnat_and_snat 172.16.1.2 192.168.2.1       
ovn-nbctl lr-nat-add lr1 dnat_and_snat 172.16.1.3 192.168.3.1

#client:
systemctl start openvswitch
ovs-vsctl set open . external_ids:system-id=hv0 external_ids:ovn-remote=tcp:20.0.50.25:6642 external_ids:ovn-encap-type=geneve external_ids:ovn-encap-ip=20.0.50.26
systemctl restart ovn-controller                                                                      
                                                                                                      
ovs-vsctl add-br br-provider                                                                          
ovs-vsctl add-port br-provider p5p2                                                                   
ovs-vsctl set open . external-ids:ovn-bridge-mappings=provider:br-provider

result on ovn2.13-20.06.1-2.el7fdp.x86_64:

[root@dell-per740-42 bz847537]# rpm -qa | grep -E "openvswitch|ovn"
kernel-kernel-networking-openvswitch-ovn-common-1.0-7.noarch                                          
kernel-kernel-networking-openvswitch-ovn-acl-1.0-13.noarch
ovn2.13-central-20.06.1-2.el7fdp.x86_64
kernel-kernel-networking-openvswitch-ovn-soak_test-1.0-5.noarch                                       
openvswitch2.13-2.13.0-48.el7fdp.x86_64                                                               
kernel-kernel-networking-openvswitch-ovn-regression-bz1846300_ipv6_ignore_gateway_mtu-1.0-2.noarch
kernel-kernel-networking-openvswitch-ovn-nat-1.0-5.noarch                                             
ovn2.13-host-20.06.1-2.el7fdp.x86_64
openvswitch-selinux-extra-policy-1.0-15.el7fdp.noarch
ovn2.13-20.06.1-2.el7fdp.x86_64

# on hv1

[root@dell-per740-42 bz847537]# ovn-sbctl show
Chassis hv0
    hostname: dell-per740-12.rhts.eng.pek2.redhat.com
    Encap geneve
        ip: "20.0.50.26"
        options: {csum="true"}
Chassis hv1
    hostname: dell-per740-42.rhts.eng.pek2.redhat.com                                                 
    Encap geneve                                                                                      
        ip: "20.0.50.25"                                                                              
        options: {csum="true"}                                                                        
    Port_Binding ls1p1                                                                                
    Port_Binding ls2p1                                                                                
    Port_Binding cr-lr1-ext1                                                                          
    Port_Binding ls3p1

[root@dell-per740-42 bz847537]# ovs-ofctl --no-stats -O openflow15 dump-flows br-int | grep 172.16.1.1
 cookie=0x76f9d9f9, table=11, priority=90,arp,reg14=0x3,metadata=0x1,arp_tpa=172.16.1.1,arp_op=1 actions=move:NXM_OF_ETH_SRC[]->NXM_OF_ETH_DST[],set_field:2->arp_op,move:NXM_NX_ARP_SHA[]->NXM_NX_ARP_THA[],set_field:00:00:00:00:00:03->eth_src,set_field:00:00:00:00:00:03->arp_sha,move:NXM_OF_ARP_SPA[]->NXM_OF_ARP_TPA[],set_field:172.16.1.1->arp_spa,set_field:0x3->reg15,set_field:0x1/0x1->reg10,resubmit(,32)
 cookie=0x80c9d28b, table=11, priority=90,arp,reg14=0x2,metadata=0x1,arp_tpa=172.16.1.1,arp_op=1 actions=move:NXM_OF_ETH_SRC[]->NXM_OF_ETH_DST[],set_field:2->arp_op,move:NXM_NX_ARP_SHA[]->NXM_NX_ARP_THA[],set_field:00:00:00:00:00:02->eth_src,set_field:00:00:00:00:00:02->arp_sha,move:NXM_OF_ARP_SPA[]->NXM_OF_ARP_TPA[],set_field:172.16.1.1->arp_spa,set_field:0x2->reg15,set_field:0x1/0x1->reg10,resubmit(,32)
 cookie=0x8a553861, table=11, priority=90,arp,reg14=0x1,metadata=0x1,arp_tpa=172.16.1.1,arp_op=1 actions=move:NXM_OF_ETH_SRC[]->NXM_OF_ETH_DST[],set_field:2->arp_op,move:NXM_NX_ARP_SHA[]->NXM_NX_ARP_THA[],set_field:00:00:00:00:00:01->eth_src,set_field:00:00:00:00:00:01->arp_sha,move:NXM_OF_ARP_SPA[]->NXM_OF_ARP_TPA[],set_field:172.16.1.1->arp_spa,set_field:0x1->reg15,set_field:0x1/0x1->reg10,resubmit(,32)
 cookie=0x62d0f5ff, table=11, priority=90,arp,reg14=0x4,metadata=0x1,arp_tpa=172.16.1.1,arp_op=1 actions=move:NXM_OF_ETH_SRC[]->NXM_OF_ETH_DST[],set_field:2->arp_op,move:NXM_NX_ARP_SHA[]->NXM_NX_ARP_THA[],set_field:00:00:00:00:00:11->eth_src,set_field:00:00:00:00:00:11->arp_sha,move:NXM_OF_ARP_SPA[]->NXM_OF_ARP_TPA[],set_field:172.16.1.1->arp_spa,set_field:0x4->reg15,set_field:0x1/0x1->reg10,resubmit(,32)
 cookie=0xdd78d519, table=13, priority=100,ip,reg14=0x4,metadata=0x1,nw_dst=172.16.1.1 actions=ct(table=14,zone=NXM_NX_REG12[0..15],nat)
 cookie=0x65b0fbc, table=14, priority=100,ip,reg14=0x4,metadata=0x1,nw_dst=172.16.1.1 actions=ct(commit,table=15,zone=NXM_NX_REG11[0..15],nat(dst=192.168.1.1))
 cookie=0x63878ff2, table=27, priority=75,arp,reg10=0/0x2,metadata=0x5,arp_tpa=172.16.1.1,arp_op=1 actions=set_field:0x1->reg15,resubmit(,32)
 cookie=0x802ddd76, table=27, priority=75,arp,reg10=0/0x2,metadata=0x2,arp_tpa=172.16.1.1,arp_op=1 actions=set_field:0x1->reg15,resubmit(,32)
 cookie=0x32a45acd, table=27, priority=75,arp,reg10=0/0x2,metadata=0x4,arp_tpa=172.16.1.1,arp_op=1 actions=set_field:0x1->reg15,resubmit(,32)
 cookie=0xc6f804a0, table=27, priority=75,arp,reg10=0/0x2,metadata=0x3,arp_tpa=172.16.1.1,arp_op=1 actions=set_field:0x1->reg15,resubmit(,32)
 cookie=0xb1090eed, table=41, priority=161,ip,reg15=0x4,metadata=0x1,nw_src=192.168.1.1 actions=ct(commit,table=42,zone=NXM_NX_REG12[0..15],nat(src=172.16.1.1))
 cookie=0x2e616af9, table=42, priority=100,ip,reg15=0x4,metadata=0x1,nw_dst=172.16.1.1 actions=clone(ct_clear,move:NXM_NX_REG15[]->NXM_NX_REG14[],set_field:0->reg15,set_field:0->reg10,set_field:0x1/0x1->reg10,set_field:0/0xffffffff000000000000000000000000->xxreg0,set_field:0/0xffffffff0000000000000000->xxreg0,set_field:0/0xffffffff00000000->xxreg0,set_field:0/0xffffffff->xxreg0,set_field:0/0xffffffff000000000000000000000000->xxreg1,set_field:0/0xffffffff0000000000000000->xxreg1,set_field:0/0xffffffff00000000->xxreg1,set_field:0/0xffffffff->xxreg1,set_field:0/0xffffffff00000000->xreg4,set_field:0/0xffffffff->xreg4,set_field:0x1/0x1->xreg4,resubmit(,8))

# on hv0
[root@dell-per740-12 bz1847573]# ovs-ofctl --no-stats -O openflow15 dump-flows br-int | grep 172.16.1.1
 cookie=0x76f9d9f9, table=11, priority=90,arp,reg14=0x3,metadata=0x1,arp_tpa=172.16.1.1,arp_op=1 actions=move:NXM_OF_ETH_SRC[]->NXM_OF_ETH_DST[],set_field:2->arp_op,move:NXM_NX_ARP_SHA[]->NXM_NX_ARP_THA[],set_field:00:00:00:00:00:03->eth_src,set_field:00:00:00:00:00:03->arp_sha,move:NXM_OF_ARP_SPA[]->NXM_OF_ARP_TPA[],set_field:172.16.1.1->arp_spa,set_field:0x3->reg15,set_field:0x1/0x1->reg10,resubmit(,32)
 cookie=0x80c9d28b, table=11, priority=90,arp,reg14=0x2,metadata=0x1,arp_tpa=172.16.1.1,arp_op=1 actions=move:NXM_OF_ETH_SRC[]->NXM_OF_ETH_DST[],set_field:2->arp_op,move:NXM_NX_ARP_SHA[]->NXM_NX_ARP_THA[],set_field:00:00:00:00:00:02->eth_src,set_field:00:00:00:00:00:02->arp_sha,move:NXM_OF_ARP_SPA[]->NXM_OF_ARP_TPA[],set_field:172.16.1.1->arp_spa,set_field:0x2->reg15,set_field:0x1/0x1->reg10,resubmit(,32)
 cookie=0x8a553861, table=11, priority=90,arp,reg14=0x1,metadata=0x1,arp_tpa=172.16.1.1,arp_op=1 actions=move:NXM_OF_ETH_SRC[]->NXM_OF_ETH_DST[],set_field:2->arp_op,move:NXM_NX_ARP_SHA[]->NXM_NX_ARP_THA[],set_field:00:00:00:00:00:01->eth_src,set_field:00:00:00:00:00:01->arp_sha,move:NXM_OF_ARP_SPA[]->NXM_OF_ARP_TPA[],set_field:172.16.1.1->arp_spa,set_field:0x1->reg15,set_field:0x1/0x1->reg10,resubmit(,32)
 cookie=0x63878ff2, table=27, priority=75,arp,reg10=0/0x2,metadata=0x5,arp_tpa=172.16.1.1,arp_op=1 actions=set_field:0x1->reg15,resubmit(,32)
 cookie=0x802ddd76, table=27, priority=75,arp,reg10=0/0x2,metadata=0x2,arp_tpa=172.16.1.1,arp_op=1 actions=set_field:0x1->reg15,resubmit(,32)
 cookie=0x32a45acd, table=27, priority=75,arp,reg10=0/0x2,metadata=0x4,arp_tpa=172.16.1.1,arp_op=1 actions=set_field:0x1->reg15,resubmit(,32)
 cookie=0xc6f804a0, table=27, priority=75,arp,reg10=0/0x2,metadata=0x3,arp_tpa=172.16.1.1,arp_op=1 actions=set_field:0x1->reg15,resubmit(,32)

result on ovn2.13-20.06.2-2.el7fdp.x86_64:

[root@dell-per740-42 bz847537]# rpm -qa | grep -E "openvswitch|ovn"                                   
ovn2.13-host-20.06.2-2.el7fdp.x86_64                                                                  
kernel-kernel-networking-openvswitch-ovn-common-1.0-7.noarch                                          
kernel-kernel-networking-openvswitch-ovn-acl-1.0-13.noarch                                            
ovn2.13-central-20.06.2-2.el7fdp.x86_64                                                               
kernel-kernel-networking-openvswitch-ovn-soak_test-1.0-5.noarch                                       
openvswitch2.13-2.13.0-48.el7fdp.x86_64                                                               
kernel-kernel-networking-openvswitch-ovn-regression-bz1846300_ipv6_ignore_gateway_mtu-1.0-2.noarch    
kernel-kernel-networking-openvswitch-ovn-nat-1.0-5.noarch                                             
ovn2.13-20.06.2-2.el7fdp.x86_64                                                                       
openvswitch-selinux-extra-policy-1.0-15.el7fdp.noarch

# on hv1:
[root@dell-per740-42 bz847537]# ovn-sbctl show
Chassis hv0
    hostname: dell-per740-12.rhts.eng.pek2.redhat.com
    Encap geneve
        ip: "20.0.50.26"
        options: {csum="true"}
Chassis hv1
    hostname: dell-per740-42.rhts.eng.pek2.redhat.com                                                 
    Encap geneve                                                                                      
        ip: "20.0.50.25"                                                                              
        options: {csum="true"}                                                                        
    Port_Binding ls2p1                                                                                
    Port_Binding ls3p1                                                                                
    Port_Binding ls1p1                                                                                
    Port_Binding cr-lr1-ext1

[root@dell-per740-42 bz847537]# ovs-ofctl --no-stats -O openflow15 dump-flows br-int | grep 172.16.1.1
 cookie=0x776f6691, table=11, priority=91,arp,reg14=0x4,metadata=0x1,arp_tpa=172.16.1.1,arp_op=1 actions=drop
 cookie=0x43d81216, table=11, priority=92,arp,reg14=0x4,metadata=0x1,arp_tpa=172.16.1.1,arp_op=1 actions=move:NXM_OF_ETH_SRC[]->NXM_OF_ETH_DST[],move:NXM_NX_XXREG0[64..111]->NXM_OF_ETH_SRC[],set_field:2->arp_op,move:NXM_NX_ARP_SHA[]->NXM_NX_ARP_THA[],move:NXM_NX_XXREG0[64..111]->NXM_NX_ARP_SHA[],move:NXM_OF_ARP_SPA[]->NXM_OF_ARP_TPA[],set_field:172.16.1.1->arp_spa,move:NXM_NX_REG14[]->NXM_NX_REG15[],set_field:0x1/0x1->reg10,resubmit(,32)                                                                     
 cookie=0xd516fd7, table=11, priority=90,arp,metadata=0x1,arp_tpa=172.16.1.1,arp_op=1 actions=move:NXM_OF_ETH_SRC[]->NXM_OF_ETH_DST[],move:NXM_NX_XXREG0[64..111]->NXM_OF_ETH_SRC[],set_field:2->arp_op,move:NXM_NX_ARP_SHA[]->NXM_NX_ARP_THA[],move:NXM_NX_XXREG0[64..111]->NXM_NX_ARP_SHA[],move:NXM_OF_ARP_SPA[]->NXM_OF_ARP_TPA[],set_field:172.16.1.1->arp_spa,move:NXM_NX_REG14[]->NXM_NX_REG15[],set_field:0x1/0x1->reg10,resubmit(,32)                                                                                
 cookie=0x24d7c267, table=13, priority=100,ip,reg14=0x4,metadata=0x1,nw_dst=172.16.1.1 actions=ct(table=14,zone=NXM_NX_REG12[0..15],nat)
 cookie=0x9f66ec46, table=14, priority=100,ip,reg14=0x4,metadata=0x1,nw_dst=172.16.1.1 actions=ct(commit,table=15,zone=NXM_NX_REG11[0..15],nat(dst=192.168.1.1))
 cookie=0xc988a901, table=27, priority=75,arp,reg10=0/0x2,metadata=0x5,arp_tpa=172.16.1.1,arp_op=1 actions=set_field:0x1->reg15,resubmit(,32)
 cookie=0xf1010bf1, table=41, priority=161,ip,reg15=0x4,metadata=0x1,nw_src=192.168.1.1 actions=ct(commit,table=42,zone=NXM_NX_REG12[0..15],nat(src=172.16.1.1))
 cookie=0xc9634660, table=42, priority=100,ip,reg15=0x4,metadata=0x1,nw_dst=172.16.1.1 actions=clone(ct_clear,move:NXM_NX_REG15[]->NXM_NX_REG14[],set_field:0->reg15,set_field:0->reg10,set_field:0x1/0x1->reg10,set_field:0/0xffffffff000000000000000000000000->xxreg0,set_field:0/0xffffffff0000000000000000->xxreg0,set_field:0/0xffffffff00000000->xxreg0,set_field:0/0xffffffff->xxreg0,set_field:0/0xffffffff000000000000000000000000->xxreg1,set_field:0/0xffffffff0000000000000000->xxreg1,set_field:0/0xffffffff00000000->xxreg1,set_field:0/0xffffffff->xxreg1,set_field:0/0xffffffff00000000->xreg4,set_field:0/0xffffffff->xreg4,set_field:0x1/0x1->xreg4,resubmit(,8))

# on hv0

[root@dell-per740-12 bz1847573]# ovs-ofctl --no-stats -O openflow15 dump-flows br-int | grep 172.16.1.1
 cookie=0x776f6691, table=11, priority=91,arp,reg14=0x4,metadata=0x1,arp_tpa=172.16.1.1,arp_op=1 actions=drop
 cookie=0xd516fd7, table=11, priority=90,arp,metadata=0x1,arp_tpa=172.16.1.1,arp_op=1 actions=move:NXM_OF_ETH_SRC[]->NXM_OF_ETH_DST[],move:NXM_NX_XXREG0[64..111]->NXM_OF_ETH_SRC[],set_field:2->arp_op,move:NXM_NX_ARP_SHA[]->NXM_NX_ARP_THA[],move:NXM_NX_XXREG0[64..111]->NXM_NX_ARP_SHA[],move:NXM_OF_ARP_SPA[]->NXM_OF_ARP_TPA[],set_field:172.16.1.1->arp_spa,move:NXM_NX_REG14[]->NXM_NX_REG15[],set_field:0x1/0x1->reg10,resubmit(,32)
 cookie=0xc988a901, table=27, priority=75,arp,reg10=0/0x2,metadata=0x5,arp_tpa=172.16.1.1,arp_op=1 actions=set_field:0x1->reg15,resubmit(,32)

Dumitru, the result is what is expected, right?

Comment 6 Dumitru Ceara 2020-08-31 07:58:17 UTC
(In reply to Jianlin Shi from comment #5)
> tested with following script:
> 
> #server
> systemctl start openvswitch
> systemctl start ovn-northd                                               
> ovn-nbctl set-connection ptcp:6641 
> ovn-sbctl set-connection ptcp:6642                                        
> ovs-vsctl set open . external_ids:system-id=hv1
> external_ids:ovn-remote=tcp:20.0.50.25:6642
> external_ids:ovn-encap-type=geneve external_ids:ovn-encap-ip=20.0.50.25
> systemctl restart ovn-controller
>                                      
> ovn-nbctl lr-add lr1                                 
> ovn-nbctl lrp-add lr1 lr1-ls1 00:00:00:00:00:01 192.168.1.254/24 2001::a/64
> ovn-nbctl lrp-add lr1 lr1-ls2 00:00:00:00:00:02 192.168.2.254/24 2002::a/64
> ovn-nbctl lrp-add lr1 lr1-ls3 00:00:00:00:00:03 192.168.3.254/24 2003::a/64
> ovn-nbctl lrp-add lr1 lr1-ext1 00:00:00:00:00:11 172.16.1.254/24 1234::a/64
>                                                  
>                             
> ovn-nbctl ls-add ls1                                                
> ovn-nbctl lsp-add ls1 ls1-lr1                                             
> ovn-nbctl lsp-set-type ls1-lr1 router                               
> ovn-nbctl lsp-set-options ls1-lr1 router-port=lr1-ls1    
> ovn-nbctl lsp-set-addresses ls1-lr1 router                          
>                                                          
> ovn-nbctl lsp-add ls1 ls1p1                            
> ovn-nbctl lsp-set-addresses ls1p1 "00:00:00:00:01:01 192.168.1.1 2001::1"
>                                                              
>                                                              
> ovn-nbctl ls-add ls2                              
> ovn-nbctl lsp-add ls2 ls2-lr1  
> ovn-nbctl lsp-set-type ls2-lr1 router                               
> ovn-nbctl lsp-set-options ls2-lr1 router-port=lr1-ls2    
> ovn-nbctl lsp-set-addresses ls2-lr1 router                          
>                                                          
> ovn-nbctl lsp-add ls2 ls2p1                                         
> ovn-nbctl lsp-set-addresses ls2p1 "00:00:00:00:02:01 192.168.2.1 2002::1"
>                                   
>                                                              
> ovn-nbctl ls-add ls3                                                        
> 
> ovn-nbctl lsp-add ls3 ls3-lr1                                
> ovn-nbctl lsp-set-type ls3-lr1 router
> ovn-nbctl lsp-set-options ls3-lr1 router-port=lr1-ls3
> ovn-nbctl lsp-set-addresses ls1-lr1 router
> 
> ovn-nbctl lsp-add ls3 ls3p1
> ovn-nbctl lsp-set-addresses ls3p1 "00:00:00:00:03:01 192.168.3.1 2003::1"
> 
> ovs-vsctl add-br br-provider
> ovs-vsctl add-port br-provider p3p2
> ovs-vsctl set open . external-ids:ovn-bridge-mappings=provider:br-provider
> 
> ovn-nbctl ls-add ext1
> ovn-nbctl lsp-add ext1 ext1-lr1
> ovn-nbctl lsp-set-type ext1-lr1 router
> ovn-nbctl lsp-set-options ext1-lr1 router-port=lr1-ext1
> ovn-nbctl lsp-set-addresses ext1-lr1 router
> 
> ovn-nbctl lrp-set-gateway-chassis lr1-ext1 hv1 20
> ovn-nbctl lrp-set-gateway-chassis lr1-ext1 hv0 10
> 
> ovs-vsctl add-port br-int ls1p1 -- set interface ls1p1 type=internal
> ovs-vsctl set interface ls1p1 external_ids:iface-id=ls1p1
> ovs-vsctl add-port br-int ls2p1 -- set interface ls2p1 type=internal
> ovs-vsctl set interface ls2p1 external_ids:iface-id=ls2p1
> ovs-vsctl add-port br-int ls3p1 -- set interface ls3p1 type=internal
> ovs-vsctl set interface ls3p1 external_ids:iface-id=ls3p1
>                                                                     
> ovn-nbctl lr-nat-add lr1 dnat_and_snat 172.16.1.1 192.168.1.1
> ovn-nbctl lr-nat-add lr1 dnat_and_snat 172.16.1.2 192.168.2.1       
> ovn-nbctl lr-nat-add lr1 dnat_and_snat 172.16.1.3 192.168.3.1
> 
> #client:
> systemctl start openvswitch
> ovs-vsctl set open . external_ids:system-id=hv0
> external_ids:ovn-remote=tcp:20.0.50.25:6642
> external_ids:ovn-encap-type=geneve external_ids:ovn-encap-ip=20.0.50.26
> systemctl restart ovn-controller                                            
> 
>                                                                             
> 
> ovs-vsctl add-br br-provider                                                
> 
> ovs-vsctl add-port br-provider p5p2                                         
> 
> ovs-vsctl set open . external-ids:ovn-bridge-mappings=provider:br-provider
> 
> result on ovn2.13-20.06.1-2.el7fdp.x86_64:
> 
> [root@dell-per740-42 bz847537]# rpm -qa | grep -E "openvswitch|ovn"
> kernel-kernel-networking-openvswitch-ovn-common-1.0-7.noarch                
> 
> kernel-kernel-networking-openvswitch-ovn-acl-1.0-13.noarch
> ovn2.13-central-20.06.1-2.el7fdp.x86_64
> kernel-kernel-networking-openvswitch-ovn-soak_test-1.0-5.noarch             
> 
> openvswitch2.13-2.13.0-48.el7fdp.x86_64                                     
> 
> kernel-kernel-networking-openvswitch-ovn-regression-
> bz1846300_ipv6_ignore_gateway_mtu-1.0-2.noarch
> kernel-kernel-networking-openvswitch-ovn-nat-1.0-5.noarch                   
> 
> ovn2.13-host-20.06.1-2.el7fdp.x86_64
> openvswitch-selinux-extra-policy-1.0-15.el7fdp.noarch
> ovn2.13-20.06.1-2.el7fdp.x86_64
> 
> # on hv1
> 
> [root@dell-per740-42 bz847537]# ovn-sbctl show
> Chassis hv0
>     hostname: dell-per740-12.rhts.eng.pek2.redhat.com
>     Encap geneve
>         ip: "20.0.50.26"
>         options: {csum="true"}
> Chassis hv1
>     hostname: dell-per740-42.rhts.eng.pek2.redhat.com                       
> 
>     Encap geneve                                                            
> 
>         ip: "20.0.50.25"                                                    
> 
>         options: {csum="true"}                                              
> 
>     Port_Binding ls1p1                                                      
> 
>     Port_Binding ls2p1                                                      
> 
>     Port_Binding cr-lr1-ext1                                                
> 
>     Port_Binding ls3p1
> 
> [root@dell-per740-42 bz847537]# ovs-ofctl --no-stats -O openflow15
> dump-flows br-int | grep 172.16.1.1
>  cookie=0x76f9d9f9, table=11,
> priority=90,arp,reg14=0x3,metadata=0x1,arp_tpa=172.16.1.1,arp_op=1
> actions=move:NXM_OF_ETH_SRC[]->NXM_OF_ETH_DST[],set_field:2->arp_op,move:
> NXM_NX_ARP_SHA[]->NXM_NX_ARP_THA[],set_field:00:00:00:00:00:03->eth_src,
> set_field:00:00:00:00:00:03->arp_sha,move:NXM_OF_ARP_SPA[]->NXM_OF_ARP_TPA[],
> set_field:172.16.1.1->arp_spa,set_field:0x3->reg15,set_field:0x1/0x1->reg10,
> resubmit(,32)
>  cookie=0x80c9d28b, table=11,
> priority=90,arp,reg14=0x2,metadata=0x1,arp_tpa=172.16.1.1,arp_op=1
> actions=move:NXM_OF_ETH_SRC[]->NXM_OF_ETH_DST[],set_field:2->arp_op,move:
> NXM_NX_ARP_SHA[]->NXM_NX_ARP_THA[],set_field:00:00:00:00:00:02->eth_src,
> set_field:00:00:00:00:00:02->arp_sha,move:NXM_OF_ARP_SPA[]->NXM_OF_ARP_TPA[],
> set_field:172.16.1.1->arp_spa,set_field:0x2->reg15,set_field:0x1/0x1->reg10,
> resubmit(,32)
>  cookie=0x8a553861, table=11,
> priority=90,arp,reg14=0x1,metadata=0x1,arp_tpa=172.16.1.1,arp_op=1
> actions=move:NXM_OF_ETH_SRC[]->NXM_OF_ETH_DST[],set_field:2->arp_op,move:
> NXM_NX_ARP_SHA[]->NXM_NX_ARP_THA[],set_field:00:00:00:00:00:01->eth_src,
> set_field:00:00:00:00:00:01->arp_sha,move:NXM_OF_ARP_SPA[]->NXM_OF_ARP_TPA[],
> set_field:172.16.1.1->arp_spa,set_field:0x1->reg15,set_field:0x1/0x1->reg10,
> resubmit(,32)
>  cookie=0x62d0f5ff, table=11,
> priority=90,arp,reg14=0x4,metadata=0x1,arp_tpa=172.16.1.1,arp_op=1
> actions=move:NXM_OF_ETH_SRC[]->NXM_OF_ETH_DST[],set_field:2->arp_op,move:
> NXM_NX_ARP_SHA[]->NXM_NX_ARP_THA[],set_field:00:00:00:00:00:11->eth_src,
> set_field:00:00:00:00:00:11->arp_sha,move:NXM_OF_ARP_SPA[]->NXM_OF_ARP_TPA[],
> set_field:172.16.1.1->arp_spa,set_field:0x4->reg15,set_field:0x1/0x1->reg10,
> resubmit(,32)
>  cookie=0xdd78d519, table=13,
> priority=100,ip,reg14=0x4,metadata=0x1,nw_dst=172.16.1.1
> actions=ct(table=14,zone=NXM_NX_REG12[0..15],nat)
>  cookie=0x65b0fbc, table=14,
> priority=100,ip,reg14=0x4,metadata=0x1,nw_dst=172.16.1.1
> actions=ct(commit,table=15,zone=NXM_NX_REG11[0..15],nat(dst=192.168.1.1))
>  cookie=0x63878ff2, table=27,
> priority=75,arp,reg10=0/0x2,metadata=0x5,arp_tpa=172.16.1.1,arp_op=1
> actions=set_field:0x1->reg15,resubmit(,32)
>  cookie=0x802ddd76, table=27,
> priority=75,arp,reg10=0/0x2,metadata=0x2,arp_tpa=172.16.1.1,arp_op=1
> actions=set_field:0x1->reg15,resubmit(,32)
>  cookie=0x32a45acd, table=27,
> priority=75,arp,reg10=0/0x2,metadata=0x4,arp_tpa=172.16.1.1,arp_op=1
> actions=set_field:0x1->reg15,resubmit(,32)
>  cookie=0xc6f804a0, table=27,
> priority=75,arp,reg10=0/0x2,metadata=0x3,arp_tpa=172.16.1.1,arp_op=1
> actions=set_field:0x1->reg15,resubmit(,32)
>  cookie=0xb1090eed, table=41,
> priority=161,ip,reg15=0x4,metadata=0x1,nw_src=192.168.1.1
> actions=ct(commit,table=42,zone=NXM_NX_REG12[0..15],nat(src=172.16.1.1))
>  cookie=0x2e616af9, table=42,
> priority=100,ip,reg15=0x4,metadata=0x1,nw_dst=172.16.1.1
> actions=clone(ct_clear,move:NXM_NX_REG15[]->NXM_NX_REG14[],set_field:0-
> >reg15,set_field:0->reg10,set_field:0x1/0x1->reg10,set_field:0/
> 0xffffffff000000000000000000000000->xxreg0,set_field:0/
> 0xffffffff0000000000000000->xxreg0,set_field:0/0xffffffff00000000->xxreg0,
> set_field:0/0xffffffff->xxreg0,set_field:0/
> 0xffffffff000000000000000000000000->xxreg1,set_field:0/
> 0xffffffff0000000000000000->xxreg1,set_field:0/0xffffffff00000000->xxreg1,
> set_field:0/0xffffffff->xxreg1,set_field:0/0xffffffff00000000->xreg4,
> set_field:0/0xffffffff->xreg4,set_field:0x1/0x1->xreg4,resubmit(,8))
> 
> # on hv0
> [root@dell-per740-12 bz1847573]# ovs-ofctl --no-stats -O openflow15
> dump-flows br-int | grep 172.16.1.1
>  cookie=0x76f9d9f9, table=11,
> priority=90,arp,reg14=0x3,metadata=0x1,arp_tpa=172.16.1.1,arp_op=1
> actions=move:NXM_OF_ETH_SRC[]->NXM_OF_ETH_DST[],set_field:2->arp_op,move:
> NXM_NX_ARP_SHA[]->NXM_NX_ARP_THA[],set_field:00:00:00:00:00:03->eth_src,
> set_field:00:00:00:00:00:03->arp_sha,move:NXM_OF_ARP_SPA[]->NXM_OF_ARP_TPA[],
> set_field:172.16.1.1->arp_spa,set_field:0x3->reg15,set_field:0x1/0x1->reg10,
> resubmit(,32)
>  cookie=0x80c9d28b, table=11,
> priority=90,arp,reg14=0x2,metadata=0x1,arp_tpa=172.16.1.1,arp_op=1
> actions=move:NXM_OF_ETH_SRC[]->NXM_OF_ETH_DST[],set_field:2->arp_op,move:
> NXM_NX_ARP_SHA[]->NXM_NX_ARP_THA[],set_field:00:00:00:00:00:02->eth_src,
> set_field:00:00:00:00:00:02->arp_sha,move:NXM_OF_ARP_SPA[]->NXM_OF_ARP_TPA[],
> set_field:172.16.1.1->arp_spa,set_field:0x2->reg15,set_field:0x1/0x1->reg10,
> resubmit(,32)
>  cookie=0x8a553861, table=11,
> priority=90,arp,reg14=0x1,metadata=0x1,arp_tpa=172.16.1.1,arp_op=1
> actions=move:NXM_OF_ETH_SRC[]->NXM_OF_ETH_DST[],set_field:2->arp_op,move:
> NXM_NX_ARP_SHA[]->NXM_NX_ARP_THA[],set_field:00:00:00:00:00:01->eth_src,
> set_field:00:00:00:00:00:01->arp_sha,move:NXM_OF_ARP_SPA[]->NXM_OF_ARP_TPA[],
> set_field:172.16.1.1->arp_spa,set_field:0x1->reg15,set_field:0x1/0x1->reg10,
> resubmit(,32)
>  cookie=0x63878ff2, table=27,
> priority=75,arp,reg10=0/0x2,metadata=0x5,arp_tpa=172.16.1.1,arp_op=1
> actions=set_field:0x1->reg15,resubmit(,32)
>  cookie=0x802ddd76, table=27,
> priority=75,arp,reg10=0/0x2,metadata=0x2,arp_tpa=172.16.1.1,arp_op=1
> actions=set_field:0x1->reg15,resubmit(,32)
>  cookie=0x32a45acd, table=27,
> priority=75,arp,reg10=0/0x2,metadata=0x4,arp_tpa=172.16.1.1,arp_op=1
> actions=set_field:0x1->reg15,resubmit(,32)
>  cookie=0xc6f804a0, table=27,
> priority=75,arp,reg10=0/0x2,metadata=0x3,arp_tpa=172.16.1.1,arp_op=1
> actions=set_field:0x1->reg15,resubmit(,32)
> 
> result on ovn2.13-20.06.2-2.el7fdp.x86_64:
> 
> [root@dell-per740-42 bz847537]# rpm -qa | grep -E "openvswitch|ovn"         
> 
> ovn2.13-host-20.06.2-2.el7fdp.x86_64                                        
> 
> kernel-kernel-networking-openvswitch-ovn-common-1.0-7.noarch                
> 
> kernel-kernel-networking-openvswitch-ovn-acl-1.0-13.noarch                  
> 
> ovn2.13-central-20.06.2-2.el7fdp.x86_64                                     
> 
> kernel-kernel-networking-openvswitch-ovn-soak_test-1.0-5.noarch             
> 
> openvswitch2.13-2.13.0-48.el7fdp.x86_64                                     
> 
> kernel-kernel-networking-openvswitch-ovn-regression-
> bz1846300_ipv6_ignore_gateway_mtu-1.0-2.noarch    
> kernel-kernel-networking-openvswitch-ovn-nat-1.0-5.noarch                   
> 
> ovn2.13-20.06.2-2.el7fdp.x86_64                                             
> 
> openvswitch-selinux-extra-policy-1.0-15.el7fdp.noarch
> 
> # on hv1:
> [root@dell-per740-42 bz847537]# ovn-sbctl show
> Chassis hv0
>     hostname: dell-per740-12.rhts.eng.pek2.redhat.com
>     Encap geneve
>         ip: "20.0.50.26"
>         options: {csum="true"}
> Chassis hv1
>     hostname: dell-per740-42.rhts.eng.pek2.redhat.com                       
> 
>     Encap geneve                                                            
> 
>         ip: "20.0.50.25"                                                    
> 
>         options: {csum="true"}                                              
> 
>     Port_Binding ls2p1                                                      
> 
>     Port_Binding ls3p1                                                      
> 
>     Port_Binding ls1p1                                                      
> 
>     Port_Binding cr-lr1-ext1
> 
> [root@dell-per740-42 bz847537]# ovs-ofctl --no-stats -O openflow15
> dump-flows br-int | grep 172.16.1.1
>  cookie=0x776f6691, table=11,
> priority=91,arp,reg14=0x4,metadata=0x1,arp_tpa=172.16.1.1,arp_op=1
> actions=drop
>  cookie=0x43d81216, table=11,
> priority=92,arp,reg14=0x4,metadata=0x1,arp_tpa=172.16.1.1,arp_op=1
> actions=move:NXM_OF_ETH_SRC[]->NXM_OF_ETH_DST[],move:NXM_NX_XXREG0[64..111]-
> >NXM_OF_ETH_SRC[],set_field:2->arp_op,move:NXM_NX_ARP_SHA[]-
> >NXM_NX_ARP_THA[],move:NXM_NX_XXREG0[64..111]->NXM_NX_ARP_SHA[],move:
> NXM_OF_ARP_SPA[]->NXM_OF_ARP_TPA[],set_field:172.16.1.1->arp_spa,move:
> NXM_NX_REG14[]->NXM_NX_REG15[],set_field:0x1/0x1->reg10,resubmit(,32)       
> 
>  cookie=0xd516fd7, table=11,
> priority=90,arp,metadata=0x1,arp_tpa=172.16.1.1,arp_op=1
> actions=move:NXM_OF_ETH_SRC[]->NXM_OF_ETH_DST[],move:NXM_NX_XXREG0[64..111]-
> >NXM_OF_ETH_SRC[],set_field:2->arp_op,move:NXM_NX_ARP_SHA[]-
> >NXM_NX_ARP_THA[],move:NXM_NX_XXREG0[64..111]->NXM_NX_ARP_SHA[],move:
> NXM_OF_ARP_SPA[]->NXM_OF_ARP_TPA[],set_field:172.16.1.1->arp_spa,move:
> NXM_NX_REG14[]->NXM_NX_REG15[],set_field:0x1/0x1->reg10,resubmit(,32)       
> 
>  cookie=0x24d7c267, table=13,
> priority=100,ip,reg14=0x4,metadata=0x1,nw_dst=172.16.1.1
> actions=ct(table=14,zone=NXM_NX_REG12[0..15],nat)
>  cookie=0x9f66ec46, table=14,
> priority=100,ip,reg14=0x4,metadata=0x1,nw_dst=172.16.1.1
> actions=ct(commit,table=15,zone=NXM_NX_REG11[0..15],nat(dst=192.168.1.1))
>  cookie=0xc988a901, table=27,
> priority=75,arp,reg10=0/0x2,metadata=0x5,arp_tpa=172.16.1.1,arp_op=1
> actions=set_field:0x1->reg15,resubmit(,32)
>  cookie=0xf1010bf1, table=41,
> priority=161,ip,reg15=0x4,metadata=0x1,nw_src=192.168.1.1
> actions=ct(commit,table=42,zone=NXM_NX_REG12[0..15],nat(src=172.16.1.1))
>  cookie=0xc9634660, table=42,
> priority=100,ip,reg15=0x4,metadata=0x1,nw_dst=172.16.1.1
> actions=clone(ct_clear,move:NXM_NX_REG15[]->NXM_NX_REG14[],set_field:0-
> >reg15,set_field:0->reg10,set_field:0x1/0x1->reg10,set_field:0/
> 0xffffffff000000000000000000000000->xxreg0,set_field:0/
> 0xffffffff0000000000000000->xxreg0,set_field:0/0xffffffff00000000->xxreg0,
> set_field:0/0xffffffff->xxreg0,set_field:0/
> 0xffffffff000000000000000000000000->xxreg1,set_field:0/
> 0xffffffff0000000000000000->xxreg1,set_field:0/0xffffffff00000000->xxreg1,
> set_field:0/0xffffffff->xxreg1,set_field:0/0xffffffff00000000->xreg4,
> set_field:0/0xffffffff->xreg4,set_field:0x1/0x1->xreg4,resubmit(,8))
> 
> # on hv0
> 
> [root@dell-per740-12 bz1847573]# ovs-ofctl --no-stats -O openflow15
> dump-flows br-int | grep 172.16.1.1
>  cookie=0x776f6691, table=11,
> priority=91,arp,reg14=0x4,metadata=0x1,arp_tpa=172.16.1.1,arp_op=1
> actions=drop
>  cookie=0xd516fd7, table=11,
> priority=90,arp,metadata=0x1,arp_tpa=172.16.1.1,arp_op=1
> actions=move:NXM_OF_ETH_SRC[]->NXM_OF_ETH_DST[],move:NXM_NX_XXREG0[64..111]-
> >NXM_OF_ETH_SRC[],set_field:2->arp_op,move:NXM_NX_ARP_SHA[]-
> >NXM_NX_ARP_THA[],move:NXM_NX_XXREG0[64..111]->NXM_NX_ARP_SHA[],move:
> NXM_OF_ARP_SPA[]->NXM_OF_ARP_TPA[],set_field:172.16.1.1->arp_spa,move:
> NXM_NX_REG14[]->NXM_NX_REG15[],set_field:0x1/0x1->reg10,resubmit(,32)
>  cookie=0xc988a901, table=27,
> priority=75,arp,reg10=0/0x2,metadata=0x5,arp_tpa=172.16.1.1,arp_op=1
> actions=set_field:0x1->reg15,resubmit(,32)
> 
> Dumitru, the result is what is expected, right?

Yes, this looks good to me, thanks!

Comment 7 Jianlin Shi 2020-09-01 03:21:55 UTC
Verified on rhel8 version:

[root@dell-per740-42 bz1847537]# rpm -qa | grep -E "openvswitch|ovn"
openvswitch-selinux-extra-policy-1.0-23.el8fdp.noarch                                                 
openvswitch2.13-2.13.0-58.el8fdp.x86_64                                                               
ovn2.13-host-20.06.2-3.el8fdp.x86_64                                                                  
ovn2.13-20.06.2-3.el8fdp.x86_64                                                                       
ovn2.13-central-20.06.2-3.el8fdp.x86_64

flows on hv1:
[root@dell-per740-42 bz1847537]# ovs-ofctl --no-stats -O openflow15 dump-flows br-int | grep 172.16.1.1                                                                                                    
 cookie=0x70d3781, table=11, priority=91,arp,reg14=0x4,metadata=0x1,arp_tpa=172.16.1.1,arp_op=1 actions=drop                                                                                               
 cookie=0xd83c2dd, table=11, priority=92,arp,reg14=0x4,metadata=0x1,arp_tpa=172.16.1.1,arp_op=1 actions=move:NXM_OF_ETH_SRC[]->NXM_OF_ETH_DST[],move:NXM_NX_XXREG0[64..111]->NXM_OF_ETH_SRC[],set_field:2->arp_op,move:NXM_NX_ARP_SHA[]->NXM_NX_ARP_THA[],move:NXM_NX_XXREG0[64..111]->NXM_NX_ARP_SHA[],move:NXM_OF_ARP_SPA[]->NXM_OF_ARP_TPA[],set_field:172.16.1.1->arp_spa,move:NXM_NX_REG14[]->NXM_NX_REG15[],set_field:0x1/0x1->reg10,resubmit(,32)
 cookie=0x1ce5bd13, table=11, priority=90,arp,metadata=0x1,arp_tpa=172.16.1.1,arp_op=1 actions=move:NXM_OF_ETH_SRC[]->NXM_OF_ETH_DST[],move:NXM_NX_XXREG0[64..111]->NXM_OF_ETH_SRC[],set_field:2->arp_op,move:NXM_NX_ARP_SHA[]->NXM_NX_ARP_THA[],move:NXM_NX_XXREG0[64..111]->NXM_NX_ARP_SHA[],move:NXM_OF_ARP_SPA[]->NXM_OF_ARP_TPA[],set_field:172.16.1.1->arp_spa,move:NXM_NX_REG14[]->NXM_NX_REG15[],set_field:0x1/0x1->reg10,resubmit(,32)                                                                               
 cookie=0x820f9e67, table=13, priority=100,ip,reg14=0x4,metadata=0x1,nw_dst=172.16.1.1 actions=ct(table=14,zone=NXM_NX_REG12[0..15],nat)                                                                   
 cookie=0xb0a81e6f, table=14, priority=100,ip,reg14=0x4,metadata=0x1,nw_dst=172.16.1.1 actions=ct(commit,table=15,zone=NXM_NX_REG11[0..15],nat(dst=192.168.1.1))                                           
 cookie=0x42712bdd, table=27, priority=75,arp,reg10=0/0x2,metadata=0x5,arp_tpa=172.16.1.1,arp_op=1 actions=set_field:0x1->reg15,resubmit(,32)                                                              
 cookie=0x215db21c, table=41, priority=161,ip,reg15=0x4,metadata=0x1,nw_src=192.168.1.1 actions=ct(commit,table=42,zone=NXM_NX_REG12[0..15],nat(src=172.16.1.1))                                           
 cookie=0x37163f8, table=42, priority=100,ip,reg15=0x4,metadata=0x1,nw_dst=172.16.1.1 actions=clone(ct_clear,move:NXM_NX_REG15[]->NXM_NX_REG14[],set_field:0->reg15,set_field:0->reg10,set_field:0x1/0x1->reg10,set_field:0/0xffffffff000000000000000000000000->xxreg0,set_field:0/0xffffffff0000000000000000->xxreg0,set_field:0/0xffffffff00000000->xxreg0,set_field:0/0xffffffff->xxreg0,set_field:0/0xffffffff000000000000000000000000->xxreg1,set_field:0/0xffffffff0000000000000000->xxreg1,set_field:0/0xffffffff00000000->xxreg1,set_field:0/0xffffffff->xxreg1,set_field:0/0xffffffff00000000->xreg4,set_field:0/0xffffffff->xreg4,set_field:0x1/0x1->xreg4,resubmit(,8))

flow1 on hv0:

[root@dell-per740-12 bz1847537]# ovs-ofctl --no-stats -O openflow15 dump-flows br-int | grep 172.16.1.1
 cookie=0x70d3781, table=11, priority=91,arp,reg14=0x4,metadata=0x1,arp_tpa=172.16.1.1,arp_op=1 actions=drop
 cookie=0x1ce5bd13, table=11, priority=90,arp,metadata=0x1,arp_tpa=172.16.1.1,arp_op=1 actions=move:NXM_OF_ETH_SRC[]->NXM_OF_ETH_DST[],move:NXM_NX_XXREG0[64..111]->NXM_OF_ETH_SRC[],set_field:2->arp_op,move:NXM_NX_ARP_SHA[]->NXM_NX_ARP_THA[],move:NXM_NX_XXREG0[64..111]->NXM_NX_ARP_SHA[],move:NXM_OF_ARP_SPA[]->NXM_OF_ARP_TPA[],set_field:172.16.1.1->arp_spa,move:NXM_NX_REG14[]->NXM_NX_REG15[],set_field:0x1/0x1->reg10,resubmit(,32)
 cookie=0x42712bdd, table=27, priority=75,arp,reg10=0/0x2,metadata=0x5,arp_tpa=172.16.1.1,arp_op=1 actions=set_field:0x1->reg15,resubmit(,32)

Comment 9 errata-xmlrpc 2020-09-16 16:01:23 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory (ovn2.13 bug fix and enhancement update), and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://access.redhat.com/errata/RHBA-2020:3769