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 1890803

Summary: ovn-detrace with --ovs results in "AttributeError: 'OvsInterfaceHandler' object has no attribute 'print'
Product: Red Hat Enterprise Linux Fast Datapath Reporter: mcambria <mcambria>
Component: ovn2.13Assignee: Dumitru Ceara <dceara>
Status: CLOSED ERRATA QA Contact: Jianlin Shi <jishi>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: FDP 20.HCC: apevec, chrisw, ctrautma, dceara, jishi, kfida, ralongi, rhos-maint
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: ovn2.13-20.09.0-8.el7fdp ovn2.13-20.09.0-8.el8fdp Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2020-12-01 15:07:02 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 mcambria@redhat.com 2020-10-22 21:13:59 UTC
Running ovn-detrace --ovs results in: 

Traceback (most recent call last):
  File "/usr/bin/ovn-detrace", line 469, in <module>
    main()
  File "/usr/bin/ovn-detrace", line 455, in main
    print_record_from_cookie(ovsdb_ovnnb, handlers, cookie)
  File "/usr/bin/ovn-detrace", line 336, in print_record_from_cookie
    handler.print('[Duplicate uuid cookie]')
AttributeError: 'OvsInterfaceHandler' object has no attribute 'print'

Comment 5 Jianlin Shi 2020-11-12 02:35:13 UTC
tested wit following script:

cat setup.sh
# start ovn-nb-db, ovn-northd and ovn-sb-db                                                           
systemctl start ovn-northd                                                                            
# open 6642 port for connection of sb-db                                                              
ovn-sbctl set-connection ptcp:6642                                                                    
# open 6641 port for connection of nb-nb                                                              
ovn-nbctl set-connection ptcp:6641                                                                    
# add logical switch ls1                                                                              
ovn-nbctl ls-add ls1                                                                                  
# add port ls1p1                                                                                      
ovn-nbctl lsp-add ls1 ls1p1                                                                           
# add port ls1p2                                                                                      
ovn-nbctl lsp-add ls1 ls1p2                                                                           
# setting for ls1p1 and ls1p2                                                                         
ovn-nbctl lsp-set-addresses ls1p1 aa:17:fd:00:0d:48                                                   
ovn-nbctl lsp-set-addresses ls1p2 96:98:57:5f:bc:90

# start ovs                                                                                           
systemctl start openvswitch                                                                           
# id number for controller node                                                                       
ovs-vsctl set Open_vSwitch . external-ids:system-id=hv1                                               
# ip and port for southbound db                                                                       
ovs-vsctl set Open_vSwitch . external-ids:ovn-remote=tcp:20.0.30.25:6642                              
# tunnel type for connection between controller nodes                                                 
ovs-vsctl set Open_vSwitch . external-ids:ovn-encap-type=geneve                                       
# local ip for tunnel                                                                                 
ovs-vsctl set Open_vSwitch . external-ids:ovn-encap-ip=20.0.30.25                                     
# start ovn-controller                                                                                
systemctl start ovn-controller                                                                        
# relate physical port with ls1p1 and ls1p2                                                           
ovs-vsctl add-port br-int veth1 -- set interface veth1 type=internal external_ids:iface-id=ls1p1 

ovs-vsctl add-br br-test
ovs-vsctl add-port br-test veth2 -- set interface veth2 type=internal
ovs-vsctl add-port br-test veth3 -- set interface veth3 type=internal
ovs-vsctl add-port br-test veth4 -- set interface veth4 type=internal

on client:
[root@dell-per740-42 talk]# cat c2.sh
# start ovs
systemctl start openvswitch                                                                           
# id number for controller node
ovs-vsctl set Open_vSwitch . external-ids:system-id=hv0                                               
# ip and port for southbound db
ovs-vsctl set Open_vSwitch . external-ids:ovn-remote=tcp:20.0.30.25:6642                              
# tunnel type for connection between controller nodes                                                 
ovs-vsctl set Open_vSwitch . external-ids:ovn-encap-type=geneve                                       
# local ip for tunnel                                                                                 
ovs-vsctl set Open_vSwitch . external-ids:ovn-encap-ip=20.0.30.26                                     
# start ovn-controller                                                                                
systemctl start ovn-controller                                                                        
# relate physical port with ls1p1 and ls1p2                                                           
ovs-vsctl add-port br-int veth2 -- set interface veth2 type=internal external_ids:iface-id=ls1p2

reproduced on ovn20.09.0-4:

[root@dell-per740-12 talk]# ovs-appctl ofproto/trace br-int 'in_port='veth1',dl_src=aa:17:fd:00:0d:48,dl_dst=96:98:57:5f:bc:90,dl_type=0x86DD '  > test.flow

[root@dell-per740-12 talk]# ovn-detrace --ovs --ovsdb=unix:/var/run/openvswitch/db.sock < test.flow                                                                                                        
Flow: ipv6,in_port=2,vlan_tci=0x0000,dl_src=aa:17:fd:00:0d:48,dl_dst=96:98:57:5f:bc:90,ipv6_src=::,ipv6_dst=::,ipv6_label=0x00000,nw_proto=0,nw_tos=0,nw_ecn=0,nw_ttl=0

bridge("br-int")                                                                                      
----------------
0. in_port=2, priority 100, cookie 0x70ea0473                                                         
set_field:0x1->reg13                                                                                  
set_field:0x3->reg11                                                                                  
set_field:0x2->reg12
set_field:0x1->metadata                                                                               
set_field:0x1->reg14                                                                                  
resubmit(,8)
  *  Logical datapath: "ls1" (46e40a5c-0917-485d-8849-d8530a0fdea8)
  *  Port Binding: logical_port "ls1p1", tunnel_key 1, chassis-name "hv1", chassis-str "dell-per740-12.rhts.eng.pek2.redhat.com"
  *  OVS Interface: veth1 (ls1p1)                                                                     
Traceback (most recent call last):                                                                    
  File "/usr/bin/ovn-detrace", line 469, in <module>
    main()                                                                                            
  File "/usr/bin/ovn-detrace", line 455, in main                                                      
    print_record_from_cookie(ovsdb_ovnnb, handlers, cookie)
  File "/usr/bin/ovn-detrace", line 336, in print_record_from_cookie
    handler.print('[Duplicate uuid cookie]')                                                          
AttributeError: 'OvsInterfaceHandler' object has no attribute 'print'

Verified on 20.09.0-10:

[root@dell-per740-12 talk]# ovn-detrace --ovs --ovsdb=unix:/var/run/openvswitch/db.sock < test.flow
Flow: ipv6,in_port=2,vlan_tci=0x0000,dl_src=aa:17:fd:00:0d:48,dl_dst=96:98:57:5f:bc:90,ipv6_src=::,ipv6_dst=::,ipv6_label=0x00000,nw_proto=0,nw_tos=0,nw_ecn=0,nw_ttl=0
                                                                             
bridge("br-int")                                                                                      
----------------                                                                                      
0. in_port=2, priority 100, cookie 0x70ea0473                                       
set_field:0x1->reg13                                                         
set_field:0x3->reg11                                                                                  
set_field:0x2->reg12                                                         
set_field:0x1->metadata                                                                               
set_field:0x1->reg14
......
output:1
-> output to kernel tunnel
  *  Logical datapath: "ls1" (46e40a5c-0917-485d-8849-d8530a0fdea8)
  *  Port Binding: logical_port "ls1p2", tunnel_key 2, chassis-name "hv0", chassis-str "dell-per740-42.rhts.eng.pek2.redhat.com"

Final flow: ipv6,reg0=0x300,reg11=0x3,reg12=0x2,reg13=0x1,reg14=0x1,reg15=0x2,tun_id=0x1,metadata=0x1,in_port=2,vlan_tci=0x0000,dl_src=aa:17:fd:00:0d:48,dl_dst=96:98:57:5f:bc:90,ipv6_src=::,ipv6_dst=::,ipv6_label=0x00000,nw_proto=0,nw_tos=0,nw_ecn=0,nw_ttl=0
Megaflow: recirc_id=0,ct_state=-new-est-rpl-trk,ct_label=0/0x1,eth,ipv6,tun_id=0/0xffffff,tun_metadata0=NP,in_port=2,dl_src=00:00:00:00:00:00/01:00:00:00:00:00,dl_dst=96:98:57:5f:bc:90,ipv6_src=::/10,ipv6_dst=::,nw_proto=0,nw_ecn=0,nw_ttl=0,nw_frag=no
Datapath actions: set(tunnel(tun_id=0x1,dst=20.0.30.26,ttl=64,tp_dst=6081,geneve({class=0x102,type=0x80,len=4,0x10002}),flags(df|csum|key))),1

[root@dell-per740-12 talk]# rpm -qa | grep -E "openvswitch|ovn"
openvswitch-selinux-extra-policy-1.0-15.el7fdp.noarch
ovn2.13-20.09.0-10.el7fdp.x86_64
kernel-kernel-networking-openvswitch-ovn-common-1.0-13.noarch
openvswitch2.13-2.13.0-59.el7fdp.x86_64
ovn2.13-central-20.09.0-10.el7fdp.x86_64
kernel-kernel-networking-openvswitch-ovn-regression-bz1776712_broadcast_limit-1.0-1.noarch
python3-openvswitch2.13-2.13.0-59.el7fdp.x86_64
ovn2.13-host-20.09.0-10.el7fdp.x86_64

Comment 6 Jianlin Shi 2020-11-12 02:40:33 UTC
also Verified on rhel8 version:

[root@dell-per740-42 talk]# rpm -qa | grep -E "openvswitch|ovn"
openvswitch-selinux-extra-policy-1.0-23.el8fdp.noarch
python3-openvswitch2.13-2.13.0-67.el8fdp.x86_64
openvswitch2.13-2.13.0-67.el8fdp.x86_64
ovn2.13-host-20.09.0-10.el8fdp.x86_64
ovn2.13-20.09.0-10.el8fdp.x86_64
ovn2.13-central-20.09.0-10.el8fdp.x86_64

[root@dell-per740-42 talk]# ovn-detrace --ovs --ovsdb=unix:/var/run/openvswitch/db.sock < test.flow   
Flow: ipv6,in_port=1,vlan_tci=0x0000,dl_src=aa:17:fd:00:0d:48,dl_dst=96:98:57:5f:bc:90,ipv6_src=::,ipv6_dst=::,ipv6_label=0x00000,nw_proto=0,nw_tos=0,nw_ecn=0,nw_ttl=0
                                                                                                      
bridge("br-int")                                                                                      
----------------                                                             
0. in_port=1, priority 100, cookie 0x366bf18c                                       
set_field:0x1->reg13                                                         
set_field:0x3->reg11                                                                     
set_field:0x2->reg12                                                         
set_field:0x1->metadata                                                                
set_field:0x1->reg14 
......
-> NXM_NX_TUN_METADATA0[16..30] is now 0x1
output:2
-> output to kernel tunnel
  *  Logical datapath: "ls1" (f0ef1a32-7788-4115-974f-5bc81211384f)
  *  Port Binding: logical_port "ls1p2", tunnel_key 2, chassis-name "hv0", chassis-str "dell-per740-12.rhts.eng.pek2.redhat.com"
  *  OVS Interface: ovn-hv0-0 (None)

Final flow: ipv6,reg0=0x300,reg11=0x3,reg12=0x2,reg13=0x1,reg14=0x1,reg15=0x2,tun_id=0x1,metadata=0x1,in_port=1,vlan_tci=0x0000,dl_src=aa:17:fd:00:0d:48,dl_dst=96:98:57:5f:bc:90,ipv6_src=::,ipv6_dst=::,ipv6_label=0x00000,nw_proto=0,nw_tos=0,nw_ecn=0,nw_ttl=0
Megaflow: recirc_id=0,ct_state=-new-est-rpl-trk,ct_label=0/0x1,eth,ipv6,tun_id=0/0xffffff,tun_metadata0=NP,in_port=1,dl_src=00:00:00:00:00:00/01:00:00:00:00:00,dl_dst=96:98:57:5f:bc:90,ipv6_src=::/10,ipv6_dst=::,nw_proto=0,nw_ecn=0,nw_ttl=0,nw_frag=no
Datapath actions: set(tunnel(tun_id=0x1,dst=20.0.30.25,ttl=64,tp_dst=6081,geneve({class=0x102,type=0x80,len=4,0x10002}),flags(df|csum|key))),3

Comment 8 errata-xmlrpc 2020-12-01 15:07:02 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:5308