Bug 2029940

Summary: Restoring saved flows ovs-ofctl: [...] field igmp missing value
Product: Red Hat Enterprise Linux Fast Datapath Reporter: Salvatore Daniele <sdaniele>
Component: openvswitch2.16Assignee: Salvatore Daniele <sdaniele>
Status: CLOSED ERRATA QA Contact: Rick Alongi <ralongi>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: FDP 20.ECC: amorenoz, ctrautma, jhsiao, ralongi, sdaniele, tli, tredaelli
Target Milestone: ---   
Target Release: FDB 18.04   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: openvswitch2.16-2.16.0-33.el8fdp Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: 1982743 Environment:
Last Closed: 2022-03-30 16:28:58 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On: 1982743, 2029944    
Bug Blocks: 2029938    

Description Salvatore Daniele 2021-12-07 15:48:26 UTC
+++ This bug was initially created as a clone of Bug #1982743 +++

Description of problem:

When restarting ovs, if it contains a flow that matches igmp traffic, ovs-ctl fails to restore the flows (and in fact all flows on the bridge are lost).

Version-Release number of selected component (if applicable):

Tested with latest (and upstream) openvswitch2.15

How reproducible:
Always

Steps to Reproduce:
1. /usr/share/openvswitch/scripts/ovs-ctl start openvswitch
2. ovs-vsctl add-br br0
3. ovs-ofctl add-flow br0 "ip,nw_proto=2 actions=drop"
4. /usr/share/openvswitch/scripts/ovs-ctl restart openvswitch

Actual results:

 /usr/share/openvswitch/scripts/ovs-ctl restart
Saving flows                                               [  OK  ]
Exiting ovsdb-server (2041630)                             [  OK  ]
Starting ovsdb-server                                      [  OK  ]
system ID not configured, please use --system-id ... failed!
Configuring Open vSwitch system IDs                        [  OK  ]
Exiting ovs-vswitchd (2041671)                             [  OK  ]
Starting ovs-vswitchd                                      [  OK  ]
Restoring saved flows ovs-ofctl: /tmp/ovs-save.FmwE0BbwhG/br0.flows.dump:2: field igmp missing value

$ ovs-ofctl dump-flows br0
(Does not contain flows after offending flow)

Expected results:

Error should not be generated and flows should be restored

Additional info:

--- Additional comment from Red Hat Bugzilla on 2021-09-21 10:02:10 UTC ---

remove performed by PnT Account Manager <pnt-expunge>

Comment 1 Timothy Redaelli 2022-01-12 14:05:55 UTC
*** Bug 2035711 has been marked as a duplicate of this bug. ***

Comment 4 Rick Alongi 2022-03-08 22:59:05 UTC
Reproduced issue using openvswitch2.16-2.16.0-32.el8fdp.x86_64:

[root@netqe9 ~]# uname -r
4.18.0-305.25.1.el8_4.x86_64

[root@netqe9 ~]# rpm -qa | grep openvswitch
openvswitch-selinux-extra-policy-1.0-29.el8fdp.noarch
openvswitch2.16-2.16.0-32.el8fdp.x86_64

[root@netqe9 ~]# /usr/share/openvswitch/scripts/ovs-ctl start
ovsdb-server is already running.
ovs-vswitchd is already running.
Enabling remote OVSDB managers                             [  OK  ]
[root@netqe9 ~]# ovs-vsctl --if-exists del-br br0
[root@netqe9 ~]# ovs-vsctl add-br br0
[root@netqe9 ~]# ovs-ofctl del-flows br0
[root@netqe9 ~]# ovs-ofctl add-flow br0 "ip,nw_proto=2 actions=drop"
[root@netqe9 ~]# ovs-ofctl add-flow br0 in_port=1,idle_timeout=0,actions=output:1
[root@netqe9 ~]# ovs-ofctl add-flow br0 in_port=2,idle_timeout=0,actions=output:2

[root@netqe9 ~]# ovs-ofctl dump-flows br0
 cookie=0x0, duration=13.444s, table=0, n_packets=0, n_bytes=0, igmp actions=drop
 cookie=0x0, duration=13.434s, table=0, n_packets=0, n_bytes=0, in_port=1 actions=output:1
 cookie=0x0, duration=13.424s, table=0, n_packets=0, n_bytes=0, in_port=2 actions=output:2
 
[root@netqe9 ~]# /usr/share/openvswitch/scripts/ovs-ctl restart
Saving flows                                               [  OK  ]
Exiting ovsdb-server (38598)                               [  OK  ]
Backing up database to /etc/openvswitch/conf.db.backup8.2.0[  OK  ]191 
Compacting database                                        [  OK  ]
Converting database schema                                 [  OK  ]
Starting ovsdb-server                                      [  OK  ]
system ID not configured, please use --system-id ... failed!
Configuring Open vSwitch system IDs                        [  OK  ]
Exiting ovs-vswitchd (38673)                               [  OK  ]
Starting ovs-vswitchd                                      [  OK  ]
Restoring saved flows ovs-ofctl: /tmp/ovs-save.lQf7WqiNB5/br0.flows.dump:1: field igmp missing value
                                                           [  OK  ]
Enabling remote OVSDB managers                             [  OK  ]
[root@netqe9 ~]# ovs-ofctl dump-flows br0
 cookie=0x0, duration=6.438s, table=0, n_packets=0, n_bytes=0, priority=0 actions=NORMAL
[root@netqe9 ~]# 

Verified fix in openvswitch2.16-2.16.0-58.el8fdp.x86_64:

[root@netqe9 ~]# uname -r
4.18.0-305.25.1.el8_4.x86_64

[root@netqe9 ~]# rpm -qa | grep openvswitch
openvswitch2.16-2.16.0-58.el8fdp.x86_64
openvswitch-selinux-extra-policy-1.0-29.el8fdp.noarch

[root@netqe9 ~]# systemctl stop openvswitch
[root@netqe9 ~]# /usr/share/openvswitch/scripts/ovs-ctl start
ovsdb-server is already running.
ovs-vswitchd is already running.
Enabling remote OVSDB managers                             [  OK  ]
[root@netqe9 ~]# ovs-vsctl --if-exists del-br br0
[root@netqe9 ~]# ovs-vsctl add-br br0
[root@netqe9 ~]# ovs-ofctl del-flows br0
[root@netqe9 ~]# ovs-ofctl add-flow br0 "ip,nw_proto=2 actions=drop"
[root@netqe9 ~]# ovs-ofctl add-flow br0 in_port=1,idle_timeout=0,actions=output:1
[root@netqe9 ~]# ovs-ofctl add-flow br0 in_port=2,idle_timeout=0,actions=output:2
[root@netqe9 ~]# ovs-ofctl dump-flows br0
 cookie=0x0, duration=10.406s, table=0, n_packets=0, n_bytes=0, igmp actions=drop
 cookie=0x0, duration=10.392s, table=0, n_packets=0, n_bytes=0, in_port=1 actions=output:1
 cookie=0x0, duration=10.378s, table=0, n_packets=0, n_bytes=0, in_port=2 actions=output:2
[root@netqe9 ~]# /usr/share/openvswitch/scripts/ovs-ctl restart
Saving flows                                               [  OK  ]
Exiting ovsdb-server (18664)                               [  OK  ]
Starting ovsdb-server                                      [  OK  ]
system ID not configured, please use --system-id ... failed!
Configuring Open vSwitch system IDs                        [  OK  ]
Exiting ovs-vswitchd (18690)                               [  OK  ]
Starting ovs-vswitchd                                      [  OK  ]
Restoring saved flows                                      [  OK  ]
Enabling remote OVSDB managers                             [  OK  ]
[root@netqe9 ~]# ovs-ofctl dump-flows br0
 cookie=0x0, duration=9.599s, table=0, n_packets=0, n_bytes=0, igmp actions=drop
 cookie=0x0, duration=9.599s, table=0, n_packets=0, n_bytes=0, in_port=1 actions=output:1
 cookie=0x0, duration=9.599s, table=0, n_packets=0, n_bytes=0, in_port=2 actions=output:2
[root@netqe9 ~]#

Comment 6 errata-xmlrpc 2022-03-30 16:28:58 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 (openvswitch2.16 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-2022:1146