diff --git a/.gitignore b/.gitignore index ac833f0..61143b4 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1 @@ -SOURCES/libteam-1.29.tar.gz +SOURCES/libteam-1.31.tar.gz diff --git a/.libteam.metadata b/.libteam.metadata index 92c4c67..c0fba93 100644 --- a/.libteam.metadata +++ b/.libteam.metadata @@ -1 +1 @@ -2dbdd6769c61381f84a31553bc5502a60376e33b SOURCES/libteam-1.29.tar.gz +4e5e0a0d0682f27a0850fac1f9bababdb991f14a SOURCES/libteam-1.31.tar.gz diff --git a/SOURCES/libteam-Revert-teamd-Disregard-current-state-when-considerin.patch b/SOURCES/libteam-Revert-teamd-Disregard-current-state-when-considerin.patch new file mode 100644 index 0000000..29c74c8 --- /dev/null +++ b/SOURCES/libteam-Revert-teamd-Disregard-current-state-when-considerin.patch @@ -0,0 +1,55 @@ +From 61efd6de2fbb8ee077863ee5a355ac3dfd9365b9 Mon Sep 17 00:00:00 2001 +Message-Id: <61efd6de2fbb8ee077863ee5a355ac3dfd9365b9.1599144624.git.lucien.xin@gmail.com> +From: Xin Long +Date: Tue, 1 Sep 2020 13:59:27 +0800 +Subject: [PATCH] Revert "teamd: Disregard current state when considering port + enablement" + +This reverts commit deadb5b715227429a1879b187f5906b39151eca9. + +As Patrick noticed, with that commit, teamd_port_check_enable() +would set the team port to the new state unconditionally, which +triggers another change message from kernel to userspace, then +teamd_port_check_enable() is called again to set the team port +to the new state. + +This would go around and around to update the team port state, +and even cause teamd to consume 100% cpu. + +As the issue caused by that commit is serious, it has to be +reverted. As for the issued fixed by that commit, I would +propose a new fix later. + +Signed-off-by: Jiri Pirko +--- + teamd/teamd_per_port.c | 8 ++++++-- + 1 file changed, 6 insertions(+), 2 deletions(-) + +diff --git a/teamd/teamd_per_port.c b/teamd/teamd_per_port.c +index 166da57..d429753 100644 +--- a/teamd/teamd_per_port.c ++++ b/teamd/teamd_per_port.c +@@ -442,14 +442,18 @@ int teamd_port_check_enable(struct teamd_context *ctx, + bool should_enable, bool should_disable) + { + bool new_enabled_state; ++ bool curr_enabled_state; + int err; + + if (!teamd_port_present(ctx, tdport)) + return 0; ++ err = teamd_port_enabled(ctx, tdport, &curr_enabled_state); ++ if (err) ++ return err; + +- if (should_enable) ++ if (!curr_enabled_state && should_enable) + new_enabled_state = true; +- else if (should_disable) ++ else if (curr_enabled_state && should_disable) + new_enabled_state = false; + else + return 0; +-- +2.18.1 + diff --git a/SOURCES/libteam-man-teamd.conf-update-some-parameter-default-values.patch b/SOURCES/libteam-man-teamd.conf-update-some-parameter-default-values.patch deleted file mode 100644 index 0af662e..0000000 --- a/SOURCES/libteam-man-teamd.conf-update-some-parameter-default-values.patch +++ /dev/null @@ -1,55 +0,0 @@ -From 337bae54278a112bab9d99e05ee7ec825b12c646 Mon Sep 17 00:00:00 2001 -Message-Id: <337bae54278a112bab9d99e05ee7ec825b12c646.1566966529.git.lucien.xin@gmail.com> -From: Hangbin Liu -Date: Wed, 24 Jul 2019 17:02:21 +0800 -Subject: [PATCH] man teamd.conf: update some parameter default values - -Update default runner.name to roundrobin, default runner.tx_hash array -to ["eth", "ipv4", "ipv6"], default runner.fast_rate to false. - -Signed-off-by: Hangbin Liu -Signed-off-by: Jiri Pirko ---- - man/teamd.conf.5 | 12 ++++++++++++ - 1 file changed, 12 insertions(+) - -diff --git a/man/teamd.conf.5 b/man/teamd.conf.5 -index 9090b4a..350ffc9 100644 ---- a/man/teamd.conf.5 -+++ b/man/teamd.conf.5 -@@ -42,6 +42,9 @@ To do passive load balancing, runner only sets up BPF hash function which will d - .PP - .BR "lacp "\(em - Implements 802.3ad LACP protocol. Can use same Tx port selection possibilities as loadbalance runner. -+.PP -+Default: -+.BR "roundrobin" - .RE - .TP - .BR "notify_peers.count " (int) -@@ -182,6 +185,10 @@ Uses source and destination SCTP ports. - .PP - .BR "l4 "\(em - Uses source and destination TCP and UDP and SCTP ports. -+.PP -+Default: -+.B -+["eth", "ipv4", "ipv6"] - .RE - .TP - .BR "runner.tx_balancer.name " (string) -@@ -217,6 +224,11 @@ Default: - Option specifies the rate at which our link partner is asked to transmit LACPDU packets. If this is - .BR "true" - then packets will be sent once per second. Otherwise they will be sent every 30 seconds. -+.RS 7 -+.PP -+Default: -+.BR "false" -+.RE - .TP - .BR "runner.tx_hash " (array) - Same as for load balance runner. --- -2.18.1 - diff --git a/SOURCES/libteam-utils-bond2team-keep-delivering-config-to-file-if-st.patch b/SOURCES/libteam-utils-bond2team-keep-delivering-config-to-file-if-st.patch deleted file mode 100644 index 7c8c8e2..0000000 --- a/SOURCES/libteam-utils-bond2team-keep-delivering-config-to-file-if-st.patch +++ /dev/null @@ -1,49 +0,0 @@ -From 7000b5bcb22e8192bbc6d9ceddba740541c68484 Mon Sep 17 00:00:00 2001 -Message-Id: <7000b5bcb22e8192bbc6d9ceddba740541c68484.1596613046.git.lucien.xin@gmail.com> -From: Hangbin Liu -Date: Mon, 20 Jul 2020 16:52:56 +0800 -Subject: [PATCH 1/2] utils/bond2team: keep delivering config to file if stdout - not supplied - -When --stdout not supplied, we should keep on delivering the config file -instead of return. - -Before the fix: -$ bond2team --configdir ./bonding/ --master bond0 --rename team0 -$ bond2team --configdir bonding/ --outputdir teaming/ --master bond0 --rename team0 -$ ls teaming/ - -After the fix: -$ bond2team --configdir ./bonding/ --master bond0 --rename team0 -Resulted files: -/tmp/bond2team.nV4eX3/ifcfg-team0 -/tmp/bond2team.nV4eX3/ifcfg-eth1 -/tmp/bond2team.nV4eX3/ifcfg-eth2 - -$ bond2team --configdir bonding/ --outputdir teaming/ --master bond0 --rename team0 -$ ls teaming/ -ifcfg-eth1 ifcfg-eth2 ifcfg-team0 - -Fixes: d5a1c8ee9e36 ("utils: add bond2team conversion tool") -Signed-off-by: Hangbin Liu -Signed-off-by: Jiri Pirko ---- - utils/bond2team | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/utils/bond2team b/utils/bond2team -index fc81c4b..28733da 100755 ---- a/utils/bond2team -+++ b/utils/bond2team -@@ -623,7 +623,7 @@ team_ifcfg_write() - team_ifcfg_deliver() - { - pr_dbg "${FUNCNAME} $*" -- if ! to_stdout; then -+ if to_stdout; then - return 0 - fi - --- -2.18.1 - diff --git a/SOURCES/libteam-utils-bond2team-remove-TYPE-in-ifcfg-file.patch b/SOURCES/libteam-utils-bond2team-remove-TYPE-in-ifcfg-file.patch deleted file mode 100644 index 3ec215c..0000000 --- a/SOURCES/libteam-utils-bond2team-remove-TYPE-in-ifcfg-file.patch +++ /dev/null @@ -1,51 +0,0 @@ -From 2e3313561394662b3a379594aa2c6b546419230f Mon Sep 17 00:00:00 2001 -Message-Id: <2e3313561394662b3a379594aa2c6b546419230f.1596613046.git.lucien.xin@gmail.com> -In-Reply-To: <7000b5bcb22e8192bbc6d9ceddba740541c68484.1596613046.git.lucien.xin@gmail.com> -References: <7000b5bcb22e8192bbc6d9ceddba740541c68484.1596613046.git.lucien.xin@gmail.com> -From: Hangbin Liu -Date: Mon, 20 Jul 2020 16:53:21 +0800 -Subject: [PATCH 2/2] utils/bond2team: remove TYPE in ifcfg file - -When convert Bond config to Team, TYPE is used for Bond and DEVICETYPE -is used for Team. So we should remove TYPE keyword in ifcfg file. - -Before the fix: -$ ls bonding/ -ifcfg-bond0 ifcfg-bond0-eth1 ifcfg-bond0-eth2 -$ bond2team --configdir bonding/ --master bond0 --rename team0 --stdout | grep TYPE -TYPE=Bond -DEVICETYPE="Team" -TYPE=Ethernet -DEVICETYPE="TeamPort" -TYPE=Ethernet -DEVICETYPE="TeamPort" - -Afther the fix: -$ bond2team --configdir bonding/ --master bond0 --rename team0 --stdout | grep TYPE -DEVICETYPE="Team" -DEVICETYPE="TeamPort" -DEVICETYPE="TeamPort" - -Fixes: d5a1c8ee9e36 ("utils: add bond2team conversion tool") -Signed-off-by: Hangbin Liu -Signed-off-by: Jiri Pirko ---- - utils/bond2team | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/utils/bond2team b/utils/bond2team -index 28733da..2aae3f5 100755 ---- a/utils/bond2team -+++ b/utils/bond2team -@@ -331,7 +331,7 @@ vfile_load_ifcfg() - oIFS="$IFS" - IFS=$'\n' - VFILE=( $(LANG=C \ -- grep -iv 'BONDING_OPTS\|SLAVE\|MASTER\|DEVICETYPE\|TEAM' \ -+ grep -iv 'BONDING_OPTS\|SLAVE\|MASTER\|TYPE\|DEVICETYPE\|TEAM' \ - $ifcfg )) - IFS="$oIFS" - } --- -2.18.1 - diff --git a/SPECS/libteam.spec b/SPECS/libteam.spec index f1a2375..ccbd5bb 100644 --- a/SPECS/libteam.spec +++ b/SPECS/libteam.spec @@ -1,14 +1,12 @@ Name: libteam -Version: 1.29 -Release: 1%{?dist}.2 +Version: 1.31 +Release: 2%{?dist} Summary: Library for controlling team network device Group: System Environment/Libraries License: LGPLv2+ URL: http://www.libteam.org Source: http://www.libteam.org/files/libteam-%{version}.tar.gz -Patch1: libteam-man-teamd.conf-update-some-parameter-default-values.patch -Patch2: libteam-utils-bond2team-keep-delivering-config-to-file-if-st.patch -Patch3: libteam-utils-bond2team-remove-TYPE-in-ifcfg-file.patch +Patch1: libteam-Revert-teamd-Disregard-current-state-when-considerin.patch BuildRequires: jansson-devel BuildRequires: libdaemon-devel BuildRequires: libnl3-devel @@ -167,11 +165,32 @@ cd binding/python %{_sysconfdir}/sysconfig/network-scripts/ifdown-TeamPort %changelog -* Wed Aug 05 2020 Xin Long - 1.29-1.el8_2.2 -- gating: fix the invalid ovs rpm link with latest version [1865899] -* Wed Aug 05 2020 Xin Long - 1.29-1.el8_2.1 -- utils/bond2team: keep delivering config to file if stdout not supplied [1865899] -- utils/bond2team: remove TYPE in ifcfg file [1865899] +* Tue Sep 01 2020 Xin Long - 1.31-2 +- Revert "teamd: Disregard current state when considering port enablement" [1874001] +* Thu Jul 30 2020 Xin Long - 1.31-1 +- 1.31 release +- utils/bond2team: remove TYPE in ifcfg file [1858518] +- utils/bond2team: keep delivering config to file if stdout not supplied [1858518] +- teamd/lacp: silence ignore none LACP frames +- Send LACP PDU right after the Actor state has been changed +- Skip setting the same hwaddr to a lag port if not needed +- Make all netlink socket RCVBUF sizes configurable +- Don't return an error when timerfd socket return 0 +- Fix ifinfo_link_with_port race condition with newlink +- teamd: fix possible race in master ifname callback +- 1.30 release +- teamd: Disregard current state when considering port enablement [1851460] +* Sat May 23 2020 Xin Long - 1.29-5 +- teamd: fix ctx->hwaddr value assignment [1838952] +* Mon May 18 2020 Xin Long - 1.29-4 +- gating: fix the invalid ovs rpm link with latest version [1782427] +* Mon May 18 2020 Xin Long - 1.29-3 +- gating: fix the invalid ovs rpm link [1782427] +* Mon May 18 2020 Xin Long - 1.29-2 +- teamd/lacp: fix segfault due to NULL pointer dereference [1758073] +- teamd: fix build error in expansion of macro teamd_log_dbgx [1758073] +- teamd: update ctx->hwaddr after setting team dev to new hwaddr +- libteam: wapper teamd_log_dbg with teamd_log_dbgx [1758073] * Mon Oct 14 2019 Xin Long - 1.29-1 - man teamd.conf: update some parameter default values [1732587] - 1.29 release