Bug 1457909

Summary: [NMCI] nm doesn't match bond connection and a device
Product: Red Hat Enterprise Linux 7 Reporter: Vladimir Benes <vbenes>
Component: NetworkManagerAssignee: Beniamino Galvani <bgalvani>
Status: CLOSED ERRATA QA Contact: Desktop QE <desktop-qa-list>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 7.4CC: atragler, bgalvani, fgiudici, lrintel, rkhan, sukulkar, thaller
Target Milestone: rcKeywords: Regression
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: NetworkManager-1.8.0-6.el7 Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2017-08-01 09:28:57 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---
Attachments:
Description Flags
[PATCH] bond: ignore tlb_dynamic_lb for non-tlb modes none

Description Vladimir Benes 2017-06-01 13:55:14 UTC
Description of problem:
nm-bond doesn't match connection after service restart
ip l add bond123 type bond; cat /sys/class/net/bond123/bonding/tlb_dynamic_lb
7.3: 0
7.4: 1


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

How reproducible:
bond_addreses_restart_persistence

Comment 2 Beniamino Galvani 2017-06-01 16:01:08 UTC
Created attachment 1284209 [details]
[PATCH] bond: ignore tlb_dynamic_lb for non-tlb modes

Comment 3 Thomas Haller 2017-06-02 07:57:55 UTC
(In reply to Beniamino Galvani from comment #2)
> Created attachment 1284209 [details]
> [PATCH] bond: ignore tlb_dynamic_lb for non-tlb modes

-    while (options && *options) {
+    for (; options && *options; options++) {

options cannot be NULL (ever). Can we change that too?

Otherwise, lgtm

Comment 4 Beniamino Galvani 2017-06-05 13:36:52 UTC
(In reply to Thomas Haller from comment #3)
> (In reply to Beniamino Galvani from comment #2)
> > Created attachment 1284209 [details]
> > [PATCH] bond: ignore tlb_dynamic_lb for non-tlb modes
> 
> -    while (options && *options) {
> +    for (; options && *options; options++) {
> 
> options cannot be NULL (ever). Can we change that too?

Okay.

I realized there was a missing part: if the connection has

 bond.options "mode=balance-rr,tlb_dynamic_lb=2"

(which is a weird configuration, but it is accepted), it will never match on restart because the generated connection doesn't have the 'tlb_dynamic_lb' option.

Added a commit to remove unsupported options from connection upon normalization.

Comment 5 Thomas Haller 2017-06-05 14:39:55 UTC
bg/bond-tlb-dynamic-lb-option-rh1457909 lgtm.

Comment 6 Beniamino Galvani 2017-06-05 16:15:54 UTC
Upstream:

https://cgit.freedesktop.org/NetworkManager/NetworkManager/commit/?id=4be0cdd358a9253e874eaaf9e244339d8fc6aa33

(renamed the branch to a more appropriate 'bg/bond-option-normalize-rh1457909')

Comment 8 errata-xmlrpc 2017-08-01 09:28:57 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, 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/RHSA-2017:2299