import libteam-1.27-10.el8
This commit is contained in:
commit
893f328e39
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
@ -0,0 +1 @@
|
||||
SOURCES/libteam-1.27.tar.gz
|
1
.libteam.metadata
Normal file
1
.libteam.metadata
Normal file
@ -0,0 +1 @@
|
||||
2293a6081223ffa85ef3376bb4e6e1e48ed35129 SOURCES/libteam-1.27.tar.gz
|
@ -0,0 +1,34 @@
|
||||
From d9769b270608654aa7f07ce48a36f084843daf01 Mon Sep 17 00:00:00 2001
|
||||
Message-Id: <d9769b270608654aa7f07ce48a36f084843daf01.1533278517.git.lucien.xin@gmail.com>
|
||||
From: Xin Long <lucien.xin@gmail.com>
|
||||
Date: Wed, 25 Jul 2018 16:43:22 +0800
|
||||
Subject: [PATCHv2 1/2] binding/python: use SWIG_FromCharPtrAndSize for Python3
|
||||
support
|
||||
|
||||
PyString_FromStringAndSize is replaced with PyUnicode_FromStringAndSize
|
||||
in Python3, and SWIG_FromCharPtrAndSize will choose the right one with
|
||||
the check "#if PY_VERSION_HEX >= 0x0300000".
|
||||
|
||||
Fixes: 4cb7829debd7 ("add support for hw address manipulation")
|
||||
Signed-off-by: Xin Long <lucien.xin@gmail.com>
|
||||
Signed-off-by: Jiri Pirko <jiri@mellanox.com>
|
||||
---
|
||||
binding/python/team/capi.i.in | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/binding/python/team/capi.i.in b/binding/python/team/capi.i.in
|
||||
index 5ce4659..c7a5842 100644
|
||||
--- a/binding/python/team/capi.i.in
|
||||
+++ b/binding/python/team/capi.i.in
|
||||
@@ -40,7 +40,7 @@ int team_hwaddr_set(struct team_handle *th, uint32_t ifindex, const char *addr,
|
||||
if ($1) free($1);
|
||||
}
|
||||
%typemap(argout) (char *addr, unsigned int addr_len) {
|
||||
- $result = SWIG_Python_AppendOutput($result, PyString_FromStringAndSize($1,$2));
|
||||
+ $result = SWIG_Python_AppendOutput($result, SWIG_FromCharPtrAndSize($1,$2));
|
||||
}
|
||||
%apply char *OUTPUT {char *addr};
|
||||
int team_hwaddr_get(struct team_handle *th, uint32_t ifindex, char *addr, unsigned int addr_len);
|
||||
--
|
||||
2.1.0
|
||||
|
@ -0,0 +1,51 @@
|
||||
From 87662455fc6eae38de70fd7b6f758c22ec7a443a Mon Sep 17 00:00:00 2001
|
||||
Message-Id: <87662455fc6eae38de70fd7b6f758c22ec7a443a.1526634690.git.lucien.xin@gmail.com>
|
||||
In-Reply-To: <789591c7318a0423984037b6a8ba3f3925f4eaa7.1526634690.git.lucien.xin@gmail.com>
|
||||
References: <789591c7318a0423984037b6a8ba3f3925f4eaa7.1526634690.git.lucien.xin@gmail.com>
|
||||
From: Timothy Redaelli <tredaelli@redhat.com>
|
||||
Date: Tue, 10 Apr 2018 15:54:02 +0200
|
||||
Subject: [PATCHv2 2/3] configure.ac: Empty LDFLAGS before checking for libnl3
|
||||
|
||||
Currently since CFLAGS are dropped if you have LDFLAGS=-pie (default on RHEL)
|
||||
the rtnl_link_get_phys_port_id, rtnl_link_set_carrier and rtnl_link_get_carrier
|
||||
tests always fails:
|
||||
|
||||
/usr/bin/ld: /tmp/ccv5GdFD.o: relocation R_X86_64_PC32 against undefined symbol
|
||||
`rtnl_link_get_carrier@@libnl_3' can not be used when making a shared object;
|
||||
recompile with -fPIC
|
||||
|
||||
This commits empty LDFLAGS before launching the 3 tests and restores it
|
||||
after the tests.
|
||||
|
||||
Signed-off-by: Timothy Redaelli <tredaelli@redhat.com>
|
||||
Signed-off-by: Jiri Pirko <jiri@mellanox.com>
|
||||
---
|
||||
configure.ac | 3 +++
|
||||
1 file changed, 3 insertions(+)
|
||||
|
||||
diff --git a/configure.ac b/configure.ac
|
||||
index 60657bb..f27c15c 100644
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -39,8 +39,10 @@ LT_INIT
|
||||
|
||||
PKG_CHECK_MODULES([LIBNL], [libnl-3.0 libnl-genl-3.0 libnl-route-3.0 libnl-cli-3.0])
|
||||
TMP_CFLAGS="$CFLAGS"
|
||||
+ TMP_LDFLAGS="$LDFLAGS"
|
||||
TMP_LIBS="$LIBS"
|
||||
CFLAGS="$CPPFLAGS $LIBNL_CFLAGS"
|
||||
+ LDFLAGS=""
|
||||
LIBS="$LIBS $LIBNL_LIBS"
|
||||
AC_CHECK_LIB([nl-route-3], [rtnl_link_get_phys_port_id],
|
||||
AC_DEFINE(HAVE_RTNL_LINK_GET_PHYS_ID, [1], [Define to 1 if you have rtnl_link_get_phys_port_id function.]))
|
||||
@@ -49,6 +51,7 @@ PKG_CHECK_MODULES([LIBNL], [libnl-3.0 libnl-genl-3.0 libnl-route-3.0 libnl-cli-3
|
||||
AC_CHECK_LIB([nl-route-3], [rtnl_link_get_carrier],
|
||||
AC_DEFINE(HAVE_RTNL_LINK_GET_CARRIER, [1], [Define to 1 if you have rtnl_link_get_carrier.]))
|
||||
CFLAGS="$TMP_CFLAGS"
|
||||
+ LDFLAGS="$TMP_LDFLAGS"
|
||||
LIBS="$TMP_LIBS"
|
||||
|
||||
PKG_CHECK_MODULES([LIBDAEMON], [libdaemon])
|
||||
--
|
||||
2.1.0
|
||||
|
@ -0,0 +1,109 @@
|
||||
From 05a7a9598fc9e616a1acf19096aeb93f7288bb35 Mon Sep 17 00:00:00 2001
|
||||
Message-Id: <05a7a9598fc9e616a1acf19096aeb93f7288bb35.1526634690.git.lucien.xin@gmail.com>
|
||||
In-Reply-To: <789591c7318a0423984037b6a8ba3f3925f4eaa7.1526634690.git.lucien.xin@gmail.com>
|
||||
References: <789591c7318a0423984037b6a8ba3f3925f4eaa7.1526634690.git.lucien.xin@gmail.com>
|
||||
From: Antti Tiainen <atiainen@forcepoint.com>
|
||||
Date: Thu, 3 May 2018 20:13:35 +0300
|
||||
Subject: [PATCHv2 3/3] libteam: don't crash when trying to print unregistered
|
||||
device name
|
||||
|
||||
team_port_str() will crash when trying to print port name that was
|
||||
just unregistered, if dellink event is handled before port removal
|
||||
event.
|
||||
|
||||
This is regression from Commit 046fb6ba0aec ("libteam: resynchronize
|
||||
ifinfo after lost RTNLGRP_LINK notifications"), which made it free
|
||||
all removed interfaces after ifinfo handlers are called.
|
||||
|
||||
Put the ifinfo_destroy_removed() back to dellink/newlink handlers as
|
||||
it was before that commit. Clean up the ifinfo list after change handlers
|
||||
only if it refreshed the entire ifinfo list after lost events.
|
||||
|
||||
There's still a rare possibility that dellink event is missed due to
|
||||
full socket receive buffer, which would cause ifinfo refresh and clearing
|
||||
removed interfaces. For this, add NULL check to team_port_str() so it
|
||||
doesn't try to print port device name in this situation.
|
||||
|
||||
Signed-off-by: Antti Tiainen <atiainen@forcepoint.com>
|
||||
Signed-off-by: Jiri Pirko <jiri@mellanox.com>
|
||||
---
|
||||
include/team.h | 1 +
|
||||
libteam/ifinfo.c | 7 ++++++-
|
||||
libteam/libteam.c | 2 +-
|
||||
libteam/stringify.c | 3 ++-
|
||||
4 files changed, 10 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/include/team.h b/include/team.h
|
||||
index 9ae517d..b31c8d8 100644
|
||||
--- a/include/team.h
|
||||
+++ b/include/team.h
|
||||
@@ -223,6 +223,7 @@ enum {
|
||||
TEAM_PORT_CHANGE = 0x1,
|
||||
TEAM_OPTION_CHANGE = 0x2,
|
||||
TEAM_IFINFO_CHANGE = 0x4,
|
||||
+ TEAM_IFINFO_REFRESH = 0x8,
|
||||
TEAM_ANY_CHANGE = TEAM_PORT_CHANGE |
|
||||
TEAM_OPTION_CHANGE |
|
||||
TEAM_IFINFO_CHANGE,
|
||||
diff --git a/libteam/ifinfo.c b/libteam/ifinfo.c
|
||||
index 5c32a9c..46d56a2 100644
|
||||
--- a/libteam/ifinfo.c
|
||||
+++ b/libteam/ifinfo.c
|
||||
@@ -258,6 +258,8 @@ static void obj_input_newlink(struct nl_object *obj, void *arg, bool event)
|
||||
uint32_t ifindex;
|
||||
int err;
|
||||
|
||||
+ ifinfo_destroy_removed(th);
|
||||
+
|
||||
link = (struct rtnl_link *) obj;
|
||||
|
||||
ifindex = rtnl_link_get_ifindex(link);
|
||||
@@ -294,6 +296,8 @@ static void event_handler_obj_input_dellink(struct nl_object *obj, void *arg)
|
||||
uint32_t ifindex;
|
||||
int err;
|
||||
|
||||
+ ifinfo_destroy_removed(th);
|
||||
+
|
||||
link = (struct rtnl_link *) obj;
|
||||
|
||||
ifindex = rtnl_link_get_ifindex(link);
|
||||
@@ -412,7 +416,8 @@ int get_ifinfo_list(struct team_handle *th)
|
||||
}
|
||||
}
|
||||
|
||||
- ret = check_call_change_handlers(th, TEAM_IFINFO_CHANGE);
|
||||
+ ret = check_call_change_handlers(th, TEAM_IFINFO_CHANGE |
|
||||
+ TEAM_IFINFO_REFRESH);
|
||||
if (ret < 0)
|
||||
err(th, "get_ifinfo_list: check_call_change_handers failed");
|
||||
return ret;
|
||||
diff --git a/libteam/libteam.c b/libteam/libteam.c
|
||||
index 77a06dd..ce0467e 100644
|
||||
--- a/libteam/libteam.c
|
||||
+++ b/libteam/libteam.c
|
||||
@@ -236,7 +236,7 @@ int check_call_change_handlers(struct team_handle *th,
|
||||
break;
|
||||
}
|
||||
}
|
||||
- if (call_type_mask & TEAM_IFINFO_CHANGE) {
|
||||
+ if (call_type_mask & TEAM_IFINFO_REFRESH) {
|
||||
ifinfo_destroy_removed(th);
|
||||
ifinfo_clear_changed(th);
|
||||
}
|
||||
diff --git a/libteam/stringify.c b/libteam/stringify.c
|
||||
index 38f4788..f1faf90 100644
|
||||
--- a/libteam/stringify.c
|
||||
+++ b/libteam/stringify.c
|
||||
@@ -344,7 +344,8 @@ static bool __team_port_str(struct team_port *port,
|
||||
team_is_port_removed(port) ? "-" :
|
||||
team_is_port_changed(port) ? "*" : " ",
|
||||
ifindex,
|
||||
- team_get_ifinfo_ifname(ifinfo),
|
||||
+ ifinfo ? team_get_ifinfo_ifname(ifinfo) :
|
||||
+ "(removed)",
|
||||
team_is_port_link_up(port) ? "up": "down",
|
||||
team_get_port_speed(port),
|
||||
team_get_port_duplex(port) ? "FD" : "HD");
|
||||
--
|
||||
2.1.0
|
||||
|
43
SOURCES/libteam-man-fix-runner.sys_prio-default.patch
Normal file
43
SOURCES/libteam-man-fix-runner.sys_prio-default.patch
Normal file
@ -0,0 +1,43 @@
|
||||
From 789591c7318a0423984037b6a8ba3f3925f4eaa7 Mon Sep 17 00:00:00 2001
|
||||
Message-Id: <789591c7318a0423984037b6a8ba3f3925f4eaa7.1526634690.git.lucien.xin@gmail.com>
|
||||
From: Francesco Giudici <fgiudici@redhat.com>
|
||||
Date: Thu, 18 Jan 2018 18:21:52 +0100
|
||||
Subject: [PATCHv2 1/3] man: fix runner.sys_prio default
|
||||
|
||||
runner.sys_prio default is 65535, not 255.
|
||||
255 is actually the default value of ports.PORTIFNAME.lacp_prio.
|
||||
|
||||
Signed-off-by: Francesco Giudici <fgiudici@redhat.com>
|
||||
Signed-off-by: Jiri Pirko <jiri@mellanox.com>
|
||||
---
|
||||
man/teamd.conf.5 | 7 ++++++-
|
||||
1 file changed, 6 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/man/teamd.conf.5 b/man/teamd.conf.5
|
||||
index 0545023..dc5000e 100644
|
||||
--- a/man/teamd.conf.5
|
||||
+++ b/man/teamd.conf.5
|
||||
@@ -229,7 +229,7 @@ System priority, value can be 0 \(en 65535.
|
||||
.RS 7
|
||||
.PP
|
||||
Default:
|
||||
-.BR "255"
|
||||
+.BR "65535"
|
||||
.RE
|
||||
.TP
|
||||
.BR "runner.min_ports " (int)
|
||||
@@ -269,6 +269,11 @@ Default:
|
||||
.TP
|
||||
.BR "ports.PORTIFNAME.lacp_prio " (int)
|
||||
Port priority according to LACP standard. The lower number means higher priority.
|
||||
+.RS 7
|
||||
+.PP
|
||||
+Default:
|
||||
+.BR "255"
|
||||
+.RE
|
||||
.TP
|
||||
.BR "ports.PORTIFNAME.lacp_key " (int)
|
||||
Port key according to LACP standard. It is only possible to aggregate ports with the same key.
|
||||
--
|
||||
2.1.0
|
||||
|
@ -0,0 +1,159 @@
|
||||
From efaa6ae709bb4b59efacb0bb7301be2242b058bc Mon Sep 17 00:00:00 2001
|
||||
Message-Id: <efaa6ae709bb4b59efacb0bb7301be2242b058bc.1518205291.git.mleitner@redhat.com>
|
||||
From: Xin Long <lucien.xin@gmail.com>
|
||||
Date: Fri, 20 Oct 2017 12:35:07 +0800
|
||||
Subject: [PATCH 1/3] teamd: add port_hwaddr_changed for ab runner
|
||||
|
||||
This patch to fix an events processing race issue when adding two ports
|
||||
into one team dev with ab mode with same_all hwaddr policy:
|
||||
|
||||
team0 original hwaddr: 00:00:00:00:00:0a
|
||||
port1 original hwaddr: 00:00:00:00:00:01
|
||||
port2 original hwaddr: 00:00:00:00:00:02
|
||||
|
||||
There are two sockets in teamd: nl_cli.sock_event for ifinfo updates
|
||||
and nl_sock_event for ports/options changes. During adding two ports,
|
||||
the events on these two sockets could be:
|
||||
|
||||
nl_sock_event:
|
||||
[1] -- [2] --
|
||||
|
||||
[1]: port1 added event (added by enslaving port1)
|
||||
[2]: port2 added event (added by enslaving port2)
|
||||
|
||||
nl_cli.sock_event:
|
||||
[a1] -- [b0] -- [c1] -- [d2] -- [e2] -- [f1] --
|
||||
|
||||
[a1]: port1 ifinfo event (added by setting port1's master)
|
||||
[b0]: team0 ifinfo event (added by setting team0's hwaddr)
|
||||
[c1]: port1 ifinfo event (added by set port1's hwaddr)
|
||||
[d2]: port2 ifinfo event (added by set port2's master)
|
||||
[e2]: port2 ifinfo event (added by set port2's hwaddr)
|
||||
[f1]: port1 ifinfo event (added by set port1's hwaddr)
|
||||
|
||||
teamd can make sure the order for their processing is as above on the
|
||||
same socket, but not between two sockets. So if these events processing
|
||||
order is (monitoring team/ports' ifinfo, hwaddr, master):
|
||||
|
||||
[ 1]: team0->ifinfo = 00:00:00:00:00:0a
|
||||
team0->hwaddr = 00:00:00:00:00:01
|
||||
port1->hwaddr = 00:00:00:00:00:0a
|
||||
[a1]: port1->ifinfo = 00:00:00:00:00:01
|
||||
port1->master = team0
|
||||
[ 2]: port2->ifinfo = 00:00:00:00:00:02
|
||||
port2->hwaddr = 00:00:00:00:00:0a
|
||||
(team0->ifinfo is not updated, it's still 00:00:00:00:00:0a)
|
||||
[b0]: team0->ifinfo = 00:00:00:00:00:01
|
||||
port1->hwaddr = 00:00:00:00:00:01
|
||||
(port2->master is not yet set, port2->hwaddr couldn't be updated)
|
||||
[c1]: no changes
|
||||
[d2]: port2->ifinfo = 00:00:00:00:00:0a
|
||||
port2->master = team0
|
||||
(too late !!!)
|
||||
[e2]: no changes
|
||||
[f1]: no changes
|
||||
|
||||
Then:
|
||||
team0 final hwaddr: 00:00:00:00:00:01
|
||||
port1 final hwaddr: 00:00:00:00:00:01
|
||||
port2 final hwaddr: 00:00:00:00:00:0a <----- issue
|
||||
|
||||
This patch is to add port_hwaddr_changed for ab runner, in [e2] where
|
||||
we set it's hwaddr with team0 (port2->hwaddr = 00:00:00:00:00:01) IF
|
||||
port2->hwaddr != team0->ifinfo.
|
||||
|
||||
I think the same issue also exists in lacp and lb mode for which I will
|
||||
fix them in another patches.
|
||||
|
||||
v1 -> v2:
|
||||
fix some typos in changelog and couple of style problems in codes
|
||||
|
||||
Reported-by: Jon Nikolakakis <jnikolak@redhat.com>
|
||||
Signed-off-by: Xin Long <lucien.xin@gmail.com>
|
||||
Signed-off-by: Jiri Pirko <jiri@mellanox.com>
|
||||
Signed-off-by: Marcelo Ricardo Leitner <mleitner@redhat.com>
|
||||
---
|
||||
teamd/teamd_runner_activebackup.c | 39 +++++++++++++++++++++++++++++++++++++++
|
||||
1 file changed, 39 insertions(+)
|
||||
|
||||
diff --git a/teamd/teamd_runner_activebackup.c b/teamd/teamd_runner_activebackup.c
|
||||
index aec3a73d5ff61534c377b935fe0e5bc1f51af79d..8a3447f1a63d71055eb7a8784cbe96381ee2b451 100644
|
||||
--- a/teamd/teamd_runner_activebackup.c
|
||||
+++ b/teamd/teamd_runner_activebackup.c
|
||||
@@ -39,6 +39,8 @@ struct ab_hwaddr_policy {
|
||||
const char *name;
|
||||
int (*hwaddr_changed)(struct teamd_context *ctx,
|
||||
struct ab *ab);
|
||||
+ int (*port_hwaddr_changed)(struct teamd_context *ctx, struct ab *ab,
|
||||
+ struct teamd_port *tdport);
|
||||
int (*port_added)(struct teamd_context *ctx, struct ab *ab,
|
||||
struct teamd_port *tdport);
|
||||
int (*active_set)(struct teamd_context *ctx, struct ab *ab,
|
||||
@@ -95,6 +97,26 @@ static int ab_hwaddr_policy_same_all_hwaddr_changed(struct teamd_context *ctx,
|
||||
return 0;
|
||||
}
|
||||
|
||||
+static int
|
||||
+ab_hwaddr_policy_same_all_port_hwaddr_changed(struct teamd_context *ctx,
|
||||
+ struct ab *ab,
|
||||
+ struct teamd_port *tdport)
|
||||
+{
|
||||
+ int err;
|
||||
+
|
||||
+ if (!memcmp(team_get_ifinfo_hwaddr(tdport->team_ifinfo),
|
||||
+ ctx->hwaddr, ctx->hwaddr_len))
|
||||
+ return 0;
|
||||
+
|
||||
+ err = team_hwaddr_set(ctx->th, tdport->ifindex, ctx->hwaddr,
|
||||
+ ctx->hwaddr_len);
|
||||
+ if (err)
|
||||
+ teamd_log_err("%s: Failed to set port hardware address.",
|
||||
+ tdport->ifname);
|
||||
+
|
||||
+ return err;
|
||||
+}
|
||||
+
|
||||
static int ab_hwaddr_policy_same_all_port_added(struct teamd_context *ctx,
|
||||
struct ab *ab,
|
||||
struct teamd_port *tdport)
|
||||
@@ -114,6 +136,7 @@ static int ab_hwaddr_policy_same_all_port_added(struct teamd_context *ctx,
|
||||
static const struct ab_hwaddr_policy ab_hwaddr_policy_same_all = {
|
||||
.name = "same_all",
|
||||
.hwaddr_changed = ab_hwaddr_policy_same_all_hwaddr_changed,
|
||||
+ .port_hwaddr_changed = ab_hwaddr_policy_same_all_port_hwaddr_changed,
|
||||
.port_added = ab_hwaddr_policy_same_all_port_added,
|
||||
};
|
||||
|
||||
@@ -411,6 +434,21 @@ static int ab_event_watch_hwaddr_changed(struct teamd_context *ctx, void *priv)
|
||||
return 0;
|
||||
}
|
||||
|
||||
+static int ab_event_watch_port_hwaddr_changed(struct teamd_context *ctx,
|
||||
+ struct teamd_port *tdport,
|
||||
+ void *priv)
|
||||
+{
|
||||
+ struct ab *ab = priv;
|
||||
+
|
||||
+ if (!teamd_port_present(ctx, tdport))
|
||||
+ return 0;
|
||||
+
|
||||
+ if (ab->hwaddr_policy->port_hwaddr_changed)
|
||||
+ return ab->hwaddr_policy->port_hwaddr_changed(ctx, ab, tdport);
|
||||
+
|
||||
+ return 0;
|
||||
+}
|
||||
+
|
||||
static int ab_port_load_config(struct teamd_context *ctx,
|
||||
struct ab_port *ab_port)
|
||||
{
|
||||
@@ -491,6 +529,7 @@ static int ab_event_watch_prio_option_changed(struct teamd_context *ctx,
|
||||
|
||||
static const struct teamd_event_watch_ops ab_event_watch_ops = {
|
||||
.hwaddr_changed = ab_event_watch_hwaddr_changed,
|
||||
+ .port_hwaddr_changed = ab_event_watch_port_hwaddr_changed,
|
||||
.port_added = ab_event_watch_port_added,
|
||||
.port_link_changed = ab_event_watch_port_link_changed,
|
||||
.option_changed = ab_event_watch_prio_option_changed,
|
||||
--
|
||||
2.14.3
|
||||
|
@ -0,0 +1,66 @@
|
||||
From c42cc9955a93bc4bed65adf9a506f92b8df290d7 Mon Sep 17 00:00:00 2001
|
||||
Message-Id: <c42cc9955a93bc4bed65adf9a506f92b8df290d7.1518205291.git.mleitner@redhat.com>
|
||||
In-Reply-To: <efaa6ae709bb4b59efacb0bb7301be2242b058bc.1518205291.git.mleitner@redhat.com>
|
||||
References: <efaa6ae709bb4b59efacb0bb7301be2242b058bc.1518205291.git.mleitner@redhat.com>
|
||||
From: Xin Long <lucien.xin@gmail.com>
|
||||
Date: Tue, 7 Nov 2017 12:33:36 +0800
|
||||
Subject: [PATCH 3/3] teamd: add port_hwaddr_changed for lacp runner
|
||||
|
||||
To fix the same issue fixed in commit efaa6ae709bb ("teamd: add
|
||||
port_hwaddr_changed for ab runner") for lacp runner, this patch
|
||||
is to add .port_hwaddr_changed for lacp runner as well.
|
||||
|
||||
Signed-off-by: Xin Long <lucien.xin@gmail.com>
|
||||
Signed-off-by: Jiri Pirko <jiri@mellanox.com>
|
||||
Signed-off-by: Marcelo Ricardo Leitner <mleitner@redhat.com>
|
||||
---
|
||||
teamd/teamd_runner_lacp.c | 26 ++++++++++++++++++++++++++
|
||||
1 file changed, 26 insertions(+)
|
||||
|
||||
diff --git a/teamd/teamd_runner_lacp.c b/teamd/teamd_runner_lacp.c
|
||||
index 1310f6737f6cf37b7d6fef0befb8c803178212bd..7b8f0a783cfd71aa3f8a89276f5b95bce2fc517a 100644
|
||||
--- a/teamd/teamd_runner_lacp.c
|
||||
+++ b/teamd/teamd_runner_lacp.c
|
||||
@@ -1336,6 +1336,31 @@ static int lacp_event_watch_hwaddr_changed(struct teamd_context *ctx,
|
||||
return 0;
|
||||
}
|
||||
|
||||
+static int lacp_event_watch_port_hwaddr_changed(struct teamd_context *ctx,
|
||||
+ struct teamd_port *tdport,
|
||||
+ void *priv)
|
||||
+{
|
||||
+ struct lacp_port *lacp_port;
|
||||
+ struct lacp *lacp = priv;
|
||||
+ int err;
|
||||
+
|
||||
+ if (!teamd_port_present(ctx, tdport))
|
||||
+ return 0;
|
||||
+
|
||||
+ if (!memcmp(team_get_ifinfo_hwaddr(tdport->team_ifinfo),
|
||||
+ ctx->hwaddr, ctx->hwaddr_len))
|
||||
+ return 0;
|
||||
+
|
||||
+ err = lacp_port_set_mac(ctx, tdport);
|
||||
+ if (err)
|
||||
+ return err;
|
||||
+
|
||||
+ lacp_port = lacp_port_get(lacp, tdport);
|
||||
+ lacp_port_actor_system_update(lacp_port);
|
||||
+
|
||||
+ return 0;
|
||||
+}
|
||||
+
|
||||
static int lacp_event_watch_admin_state_changed(struct teamd_context *ctx,
|
||||
void *priv)
|
||||
{
|
||||
@@ -1389,6 +1414,7 @@ static int lacp_event_watch_port_changed(struct teamd_context *ctx,
|
||||
|
||||
static const struct teamd_event_watch_ops lacp_event_watch_ops = {
|
||||
.hwaddr_changed = lacp_event_watch_hwaddr_changed,
|
||||
+ .port_hwaddr_changed = lacp_event_watch_port_hwaddr_changed,
|
||||
.port_added = lacp_event_watch_port_added,
|
||||
.port_removed = lacp_event_watch_port_removed,
|
||||
.port_changed = lacp_event_watch_port_changed,
|
||||
--
|
||||
2.14.3
|
||||
|
@ -0,0 +1,58 @@
|
||||
From 0164b6a460728b3a1fd3feee9e2901f1b810cf24 Mon Sep 17 00:00:00 2001
|
||||
Message-Id: <0164b6a460728b3a1fd3feee9e2901f1b810cf24.1518205291.git.mleitner@redhat.com>
|
||||
In-Reply-To: <efaa6ae709bb4b59efacb0bb7301be2242b058bc.1518205291.git.mleitner@redhat.com>
|
||||
References: <efaa6ae709bb4b59efacb0bb7301be2242b058bc.1518205291.git.mleitner@redhat.com>
|
||||
From: Xin Long <lucien.xin@gmail.com>
|
||||
Date: Tue, 7 Nov 2017 12:33:11 +0800
|
||||
Subject: [PATCH 2/3] teamd: add port_hwaddr_changed for lb runner
|
||||
|
||||
To fix the same issue fixed in commit efaa6ae709bb ("teamd: add
|
||||
port_hwaddr_changed for ab runner") for lb runner, this patch is
|
||||
to add .port_hwaddr_changed for lb runner as well.
|
||||
|
||||
Signed-off-by: Xin Long <lucien.xin@gmail.com>
|
||||
Signed-off-by: Jiri Pirko <jiri@mellanox.com>
|
||||
Signed-off-by: Marcelo Ricardo Leitner <mleitner@redhat.com>
|
||||
---
|
||||
teamd/teamd_runner_loadbalance.c | 23 +++++++++++++++++++++++
|
||||
1 file changed, 23 insertions(+)
|
||||
|
||||
diff --git a/teamd/teamd_runner_loadbalance.c b/teamd/teamd_runner_loadbalance.c
|
||||
index a1e21303455fde55763b57b898ac5aaeb21c4b61..b9bfc13895b1a47d3e5cf552e6c720601c475d97 100644
|
||||
--- a/teamd/teamd_runner_loadbalance.c
|
||||
+++ b/teamd/teamd_runner_loadbalance.c
|
||||
@@ -87,8 +87,31 @@ static int lb_event_watch_hwaddr_changed(struct teamd_context *ctx, void *priv)
|
||||
return 0;
|
||||
}
|
||||
|
||||
+static int lb_event_watch_port_hwaddr_changed(struct teamd_context *ctx,
|
||||
+ struct teamd_port *tdport,
|
||||
+ void *priv)
|
||||
+{
|
||||
+ int err;
|
||||
+
|
||||
+ if (!teamd_port_present(ctx, tdport))
|
||||
+ return 0;
|
||||
+
|
||||
+ if (!memcmp(team_get_ifinfo_hwaddr(tdport->team_ifinfo),
|
||||
+ ctx->hwaddr, ctx->hwaddr_len))
|
||||
+ return 0;
|
||||
+
|
||||
+ err = team_hwaddr_set(ctx->th, tdport->ifindex, ctx->hwaddr,
|
||||
+ ctx->hwaddr_len);
|
||||
+ if (err)
|
||||
+ teamd_log_err("%s: Failed to set port hardware address.",
|
||||
+ tdport->ifname);
|
||||
+
|
||||
+ return err;
|
||||
+}
|
||||
+
|
||||
static const struct teamd_event_watch_ops lb_port_watch_ops = {
|
||||
.hwaddr_changed = lb_event_watch_hwaddr_changed,
|
||||
+ .port_hwaddr_changed = lb_event_watch_port_hwaddr_changed,
|
||||
.port_added = lb_event_watch_port_added,
|
||||
.port_removed = lb_event_watch_port_removed,
|
||||
.port_link_changed = lb_event_watch_port_link_changed,
|
||||
--
|
||||
2.14.3
|
||||
|
@ -0,0 +1,191 @@
|
||||
From b6f63db7f3c8eb3119c9449abe9ac6535965e14d Mon Sep 17 00:00:00 2001
|
||||
Message-Id: <b6f63db7f3c8eb3119c9449abe9ac6535965e14d.1534505146.git.lucien.xin@gmail.com>
|
||||
From: Hangbin Liu <liuhangbin@gmail.com>
|
||||
Date: Wed, 8 Aug 2018 16:56:52 +0800
|
||||
Subject: [PATCHv2] teamd: add port_master_ifindex_changed for
|
||||
teamd_event_watch_ops
|
||||
|
||||
When we add port to new active-backup teams with multi threads. After
|
||||
the port is set to link up and trigger function obj_input_newlink(),
|
||||
it's possible that there is no master index in rtnl link info. So the
|
||||
team slave's master_ifindex is not updated.
|
||||
|
||||
On the other hand, the port is up and trigger functions like
|
||||
- teamd_link_watch_check_link_up()
|
||||
- teamd_event_port_link_changed()
|
||||
- ab_event_watch_port_link_changed()
|
||||
- ab_link_watch_handler()
|
||||
- teamd_for_each_tdport()
|
||||
- teamd_get_next_tdport()
|
||||
- teamd_port_present()
|
||||
|
||||
Here the teamd_port_present() failed as the port master ifindex is not
|
||||
update to team ifindex yet. Finally we get nothing and no active port
|
||||
is set.
|
||||
|
||||
Here is the reproducer:
|
||||
|
||||
\#bin/bash
|
||||
if [ -z $1 ] || [ -z $2 ]; then
|
||||
echo "Usage: $0 iface1 iface2"
|
||||
exit 1
|
||||
else
|
||||
iface1=$1
|
||||
iface2=$2
|
||||
fi
|
||||
|
||||
WAIT=2
|
||||
COUNT=0
|
||||
|
||||
start_team()
|
||||
{
|
||||
local num=$1
|
||||
local iface=$2
|
||||
teamd -o -n -U -d -t team$num -c '{"runner": {"name": "activebackup"},"link_watch": {"name": "ethtool"}}' -gg
|
||||
teamdctl team$num port add $iface
|
||||
}
|
||||
|
||||
while :; do
|
||||
echo "-----------------------------------------------------------"
|
||||
let "COUNT++"
|
||||
echo "Loop $COUNT"
|
||||
|
||||
teamd -k -t team1
|
||||
teamd -k -t team2
|
||||
sleep "$WAIT"
|
||||
start_team 1 $iface1 &
|
||||
start_team 2 $iface2 &
|
||||
sleep "$WAIT"
|
||||
|
||||
if teamdctl team1 state | grep -q "active port: $iface1" && \
|
||||
teamdctl team2 state | grep -q "active port: $iface2"; then
|
||||
echo "Pass"
|
||||
else
|
||||
echo "FAIL"
|
||||
exit 1
|
||||
fi
|
||||
done
|
||||
|
||||
Failure as follows:
|
||||
|
||||
]# teamdctl teamX state dump
|
||||
"runner": {
|
||||
"active_port": ""
|
||||
},
|
||||
|
||||
Currently we only reproduced this with active-backup mode(I could reproduce it
|
||||
in VM easily, but hard to reproduce it on physical machines).
|
||||
|
||||
Fix it by adding a new teamd_event_watch_ops port_master_ifindex_changed for
|
||||
active-backup mode.
|
||||
|
||||
V2: update commit description from Jamie Bainbridge's reply.
|
||||
v3: update description and reproducer.
|
||||
|
||||
Signed-off-by: Hangbin Liu <liuhangbin@gmail.com>
|
||||
Signed-off-by: Jiri Pirko <jiri@mellanox.com>
|
||||
---
|
||||
teamd/teamd.h | 5 +++++
|
||||
teamd/teamd_events.c | 19 +++++++++++++++++++
|
||||
teamd/teamd_ifinfo_watch.c | 5 +++++
|
||||
teamd/teamd_runner_activebackup.c | 8 ++++++++
|
||||
4 files changed, 37 insertions(+)
|
||||
|
||||
diff --git a/teamd/teamd.h b/teamd/teamd.h
|
||||
index 5dbfb9b..3934fc2 100644
|
||||
--- a/teamd/teamd.h
|
||||
+++ b/teamd/teamd.h
|
||||
@@ -189,6 +189,9 @@ struct teamd_event_watch_ops {
|
||||
struct teamd_port *tdport, void *priv);
|
||||
int (*port_ifname_changed)(struct teamd_context *ctx,
|
||||
struct teamd_port *tdport, void *priv);
|
||||
+ int (*port_master_ifindex_changed)(struct teamd_context *ctx,
|
||||
+ struct teamd_port *tdport,
|
||||
+ void *priv);
|
||||
int (*option_changed)(struct teamd_context *ctx,
|
||||
struct team_option *option, void *priv);
|
||||
char *option_changed_match_name;
|
||||
@@ -208,6 +211,8 @@ int teamd_event_ifinfo_hwaddr_changed(struct teamd_context *ctx,
|
||||
struct team_ifinfo *ifinfo);
|
||||
int teamd_event_ifinfo_ifname_changed(struct teamd_context *ctx,
|
||||
struct team_ifinfo *ifinfo);
|
||||
+int teamd_event_ifinfo_master_ifindex_changed(struct teamd_context *ctx,
|
||||
+ struct team_ifinfo *ifinfo);
|
||||
int teamd_event_ifinfo_admin_state_changed(struct teamd_context *ctx,
|
||||
struct team_ifinfo *ifinfo);
|
||||
int teamd_events_init(struct teamd_context *ctx);
|
||||
diff --git a/teamd/teamd_events.c b/teamd/teamd_events.c
|
||||
index 1a95974..65aa46a 100644
|
||||
--- a/teamd/teamd_events.c
|
||||
+++ b/teamd/teamd_events.c
|
||||
@@ -167,6 +167,25 @@ int teamd_event_ifinfo_ifname_changed(struct teamd_context *ctx,
|
||||
return 0;
|
||||
}
|
||||
|
||||
+int teamd_event_ifinfo_master_ifindex_changed(struct teamd_context *ctx,
|
||||
+ struct team_ifinfo *ifinfo)
|
||||
+{
|
||||
+ struct event_watch_item *watch;
|
||||
+ uint32_t ifindex = team_get_ifinfo_ifindex(ifinfo);
|
||||
+ struct teamd_port *tdport = teamd_get_port(ctx, ifindex);
|
||||
+ int err;
|
||||
+
|
||||
+ list_for_each_node_entry(watch, &ctx->event_watch_list, list) {
|
||||
+ if (watch->ops->port_master_ifindex_changed && tdport) {
|
||||
+ err = watch->ops->port_master_ifindex_changed(ctx, tdport,
|
||||
+ watch->priv);
|
||||
+ if (err)
|
||||
+ return err;
|
||||
+ }
|
||||
+ }
|
||||
+ return 0;
|
||||
+}
|
||||
+
|
||||
int teamd_event_ifinfo_admin_state_changed(struct teamd_context *ctx,
|
||||
struct team_ifinfo *ifinfo)
|
||||
{
|
||||
diff --git a/teamd/teamd_ifinfo_watch.c b/teamd/teamd_ifinfo_watch.c
|
||||
index f334ff6..6a19532 100644
|
||||
--- a/teamd/teamd_ifinfo_watch.c
|
||||
+++ b/teamd/teamd_ifinfo_watch.c
|
||||
@@ -59,6 +59,11 @@ static int ifinfo_change_handler_func(struct team_handle *th, void *priv,
|
||||
if (err)
|
||||
return err;
|
||||
}
|
||||
+ if (team_is_ifinfo_master_ifindex_changed(ifinfo)) {
|
||||
+ err = teamd_event_ifinfo_master_ifindex_changed(ctx, ifinfo);
|
||||
+ if (err)
|
||||
+ return err;
|
||||
+ }
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
diff --git a/teamd/teamd_runner_activebackup.c b/teamd/teamd_runner_activebackup.c
|
||||
index 8a3447f..f92d341 100644
|
||||
--- a/teamd/teamd_runner_activebackup.c
|
||||
+++ b/teamd/teamd_runner_activebackup.c
|
||||
@@ -520,6 +520,13 @@ static int ab_event_watch_port_link_changed(struct teamd_context *ctx,
|
||||
return ab_link_watch_handler(ctx, priv);
|
||||
}
|
||||
|
||||
+static int ab_event_watch_port_master_ifindex_changed(struct teamd_context *ctx,
|
||||
+ struct teamd_port *tdport,
|
||||
+ void *priv)
|
||||
+{
|
||||
+ return ab_link_watch_handler(ctx, priv);
|
||||
+}
|
||||
+
|
||||
static int ab_event_watch_prio_option_changed(struct teamd_context *ctx,
|
||||
struct team_option *option,
|
||||
void *priv)
|
||||
@@ -532,6 +539,7 @@ static const struct teamd_event_watch_ops ab_event_watch_ops = {
|
||||
.port_hwaddr_changed = ab_event_watch_port_hwaddr_changed,
|
||||
.port_added = ab_event_watch_port_added,
|
||||
.port_link_changed = ab_event_watch_port_link_changed,
|
||||
+ .port_master_ifindex_changed = ab_event_watch_port_master_ifindex_changed,
|
||||
.option_changed = ab_event_watch_prio_option_changed,
|
||||
.option_changed_match_name = "priority",
|
||||
};
|
||||
--
|
||||
2.1.0
|
||||
|
@ -0,0 +1,48 @@
|
||||
From 45912ded9cb5166d8286a6a4fb53bfe9fffcd8a9 Mon Sep 17 00:00:00 2001
|
||||
Message-Id: <45912ded9cb5166d8286a6a4fb53bfe9fffcd8a9.1518009078.git.mleitner@redhat.com>
|
||||
From: Xin Long <lucien.xin@gmail.com>
|
||||
Date: Wed, 11 Oct 2017 14:17:38 +0800
|
||||
Subject: [PATCH] teamd: do not process lacpdu before the port ifinfo is set
|
||||
|
||||
Now the port ifinfo will be set in obj_input_newlink when a RTM_NEWLINK
|
||||
event is received.
|
||||
|
||||
But when a port is being added, if a lacpdu gets received on this port
|
||||
before the RTM_NEWLINK event, lacpdu_recv will process the packet with
|
||||
incorrect port ifinfo.
|
||||
|
||||
In Patrick's case, as ifinfo->master_ifindex was 0, it would skip this
|
||||
port in teamd_for_each_tdport, which caused lacp_port->agg_lead not to
|
||||
be updated in lacp_switch_agg_lead. Later the lacp_port actor would go
|
||||
to a unexpected state.
|
||||
|
||||
This patch is to avoid it by checking teamd_port_present in lacpdu_recv
|
||||
so that it would not process lacpdu before the port ifinfo is set.
|
||||
|
||||
Reported-by: Patrick Talbert <ptalbert@redhat.com>
|
||||
Tested-by: Patrick Talbert <ptalbert@redhat.com>
|
||||
Signed-off-by: Xin Long <lucien.xin@gmail.com>
|
||||
Reviewed-by: Marcelo Ricardo Leitner <marcelo.leitner@gmail.com>
|
||||
Signed-off-by: Jiri Pirko <jiri@mellanox.com>
|
||||
Signed-off-by: Marcelo Ricardo Leitner <mleitner@redhat.com>
|
||||
---
|
||||
teamd/teamd_runner_lacp.c | 3 +++
|
||||
1 file changed, 3 insertions(+)
|
||||
|
||||
diff --git a/teamd/teamd_runner_lacp.c b/teamd/teamd_runner_lacp.c
|
||||
index 5601278696a9f263f6bfe71642b2db971c9314b9..1310f6737f6cf37b7d6fef0befb8c803178212bd 100644
|
||||
--- a/teamd/teamd_runner_lacp.c
|
||||
+++ b/teamd/teamd_runner_lacp.c
|
||||
@@ -1075,6 +1075,9 @@ static int lacpdu_recv(struct lacp_port *lacp_port)
|
||||
if (err <= 0)
|
||||
return err;
|
||||
|
||||
+ if (!teamd_port_present(lacp_port->ctx, lacp_port->tdport))
|
||||
+ return 0;
|
||||
+
|
||||
if (!lacpdu_check(&lacpdu)) {
|
||||
teamd_log_warn("malformed LACP PDU came.");
|
||||
return 0;
|
||||
--
|
||||
2.14.3
|
||||
|
@ -0,0 +1,38 @@
|
||||
From eb3b18e87be7aab31bdfa51a882210b24596dc9d Mon Sep 17 00:00:00 2001
|
||||
Message-Id: <eb3b18e87be7aab31bdfa51a882210b24596dc9d.1533278517.git.lucien.xin@gmail.com>
|
||||
In-Reply-To: <d9769b270608654aa7f07ce48a36f084843daf01.1533278517.git.lucien.xin@gmail.com>
|
||||
References: <d9769b270608654aa7f07ce48a36f084843daf01.1533278517.git.lucien.xin@gmail.com>
|
||||
From: Xin Long <lucien.xin@gmail.com>
|
||||
Date: Fri, 27 Jul 2018 17:07:47 +0800
|
||||
Subject: [PATCHv2 2/2] utils: check to_stdout return correctly in bond2team
|
||||
|
||||
to_stdout is a function, not a string, so fix the check on
|
||||
its return in bond2team.
|
||||
|
||||
v1->v2:
|
||||
improve the coding style as Flavio suggested.
|
||||
|
||||
Fixes: d5a1c8ee9e36 ("utils: add bond2team conversion tool")
|
||||
Signed-off-by: Xin Long <lucien.xin@gmail.com>
|
||||
Acked-by: Flavio Leitner <fbl@sysclose.org>
|
||||
Signed-off-by: Jiri Pirko <jiri@mellanox.com>
|
||||
---
|
||||
utils/bond2team | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/utils/bond2team b/utils/bond2team
|
||||
index f8d46ef..fc81c4b 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.1.0
|
||||
|
549
SPECS/libteam.spec
Normal file
549
SPECS/libteam.spec
Normal file
@ -0,0 +1,549 @@
|
||||
Name: libteam
|
||||
Version: 1.27
|
||||
Release: 10%{?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-teamd-do-not-process-lacpdu-before-the-port-ifinfo-i.patch
|
||||
Patch2: libteam-teamd-add-port_hwaddr_changed-for-ab-runner.patch
|
||||
Patch3: libteam-teamd-add-port_hwaddr_changed-for-lb-runner.patch
|
||||
Patch4: libteam-teamd-add-port_hwaddr_changed-for-lacp-runner.patch
|
||||
Patch5: libteam-man-fix-runner.sys_prio-default.patch
|
||||
Patch6: libteam-configure.ac-Empty-LDFLAGS-before-checking-for-libnl.patch
|
||||
Patch7: libteam-libteam-don-t-crash-when-trying-to-print-unregistere.patch
|
||||
Patch8: libteam-binding-python-use-SWIG_FromCharPtrAndSize-for-Pytho.patch
|
||||
Patch9: libteam-utils-check-to_stdout-return-correctly-in-bond2team.patch
|
||||
Patch10: libteam-teamd-add-port_master_ifindex_changed-for-teamd_even.patch
|
||||
BuildRequires: jansson-devel
|
||||
BuildRequires: libdaemon-devel
|
||||
BuildRequires: libnl3-devel
|
||||
BuildRequires: python3-devel
|
||||
BuildRequires: dbus-devel
|
||||
BuildRequires: swig
|
||||
BuildRequires: doxygen
|
||||
BuildRequires: autoconf automake libtool
|
||||
BuildRequires: systemd-units
|
||||
|
||||
%description
|
||||
This package contains a library which is a user-space
|
||||
counterpart for team network driver. It provides an API
|
||||
to control team network devices.
|
||||
|
||||
%package devel
|
||||
Group: Development/Libraries
|
||||
Summary: Libraries and header files for libteam development
|
||||
Requires: libteam = %{version}-%{release}
|
||||
|
||||
%package doc
|
||||
Group: Documentation
|
||||
Summary: API documentation for libteam and libteamd
|
||||
Requires: libteam = %{version}-%{release}
|
||||
|
||||
%description doc
|
||||
This package contains libteam and libteamd API documentation
|
||||
|
||||
%package -n teamd
|
||||
Group: System Environment/Daemons
|
||||
Summary: Team network device control daemon
|
||||
Requires: libteam = %{version}-%{release}
|
||||
|
||||
%package -n teamd-devel
|
||||
Group: Development/Libraries
|
||||
Summary: Libraries and header files for teamd development
|
||||
Requires: teamd = %{version}-%{release}
|
||||
|
||||
%package -n python3-libteam
|
||||
%{?python_provide:%python_provide python3-libteam}
|
||||
Group: Development/Libraries
|
||||
Summary: Team network device library bindings
|
||||
Requires: libteam = %{version}-%{release}
|
||||
|
||||
%package -n network-scripts-team
|
||||
Group: Development/Libraries
|
||||
Summary: libteam legacy network service support
|
||||
Requires: network-scripts
|
||||
Supplements: (teamd and network-scripts)
|
||||
|
||||
%description devel
|
||||
The libteam-devel package contains the header files and libraries
|
||||
necessary for developing programs using libteam.
|
||||
|
||||
%description -n teamd
|
||||
The teamd package contains team network device control daemon.
|
||||
|
||||
%description -n teamd-devel
|
||||
The teamd-devel package contains the header files and libraries
|
||||
necessary for developing programs using libteamdctl.
|
||||
|
||||
%description -n python3-libteam
|
||||
The team-python package contains a module that permits applications
|
||||
written in the Python programming language to use the interface
|
||||
supplied by team network device library.
|
||||
|
||||
This package should be installed if you want to develop Python
|
||||
programs that will manipulate team network devices.
|
||||
|
||||
%description -n network-scripts-team
|
||||
This provides the ifup and ifdown scripts for libteam use with the legacy
|
||||
network service.
|
||||
|
||||
%prep
|
||||
%autosetup -p1
|
||||
autoreconf --force --install -I m4
|
||||
|
||||
# prepare example dir for -devel
|
||||
mkdir -p _tmpdoc1/examples
|
||||
cp -p examples/*.c _tmpdoc1/examples
|
||||
# prepare example dir for team-python
|
||||
mkdir -p _tmpdoc2/examples
|
||||
cp -p examples/python/*.py _tmpdoc2/examples
|
||||
chmod -x _tmpdoc2/examples/*.py
|
||||
|
||||
%build
|
||||
%configure --disable-static
|
||||
make %{?_smp_mflags}
|
||||
make html
|
||||
cd binding/python
|
||||
%py3_build
|
||||
|
||||
%install
|
||||
make install DESTDIR=$RPM_BUILD_ROOT INSTALL="install -p"
|
||||
find $RPM_BUILD_ROOT -name \*.la -delete
|
||||
rm -rf $RPM_BUILD_ROOT/%{_bindir}/team_*
|
||||
mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/dbus-1/system.d
|
||||
install -p teamd/dbus/teamd.conf $RPM_BUILD_ROOT%{_sysconfdir}/dbus-1/system.d/
|
||||
mkdir -p $RPM_BUILD_ROOT%{_unitdir}
|
||||
install -p teamd/redhat/systemd/teamd@.service $RPM_BUILD_ROOT%{_unitdir}
|
||||
mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/sysconfig/network-scripts
|
||||
install -p -m 755 teamd/redhat/initscripts_systemd/network-scripts/ifup-Team $RPM_BUILD_ROOT%{_sysconfdir}/sysconfig/network-scripts
|
||||
install -p -m 755 teamd/redhat/initscripts_systemd/network-scripts/ifdown-Team $RPM_BUILD_ROOT%{_sysconfdir}/sysconfig/network-scripts
|
||||
install -p -m 755 teamd/redhat/initscripts_systemd/network-scripts/ifup-TeamPort $RPM_BUILD_ROOT%{_sysconfdir}/sysconfig/network-scripts
|
||||
install -p -m 755 teamd/redhat/initscripts_systemd/network-scripts/ifdown-TeamPort $RPM_BUILD_ROOT%{_sysconfdir}/sysconfig/network-scripts
|
||||
install -p -m 755 utils/bond2team $RPM_BUILD_ROOT%{_bindir}/bond2team
|
||||
cd binding/python
|
||||
%py3_install
|
||||
|
||||
%post -p /sbin/ldconfig
|
||||
|
||||
%postun -p /sbin/ldconfig
|
||||
|
||||
%files
|
||||
%doc COPYING
|
||||
%{_libdir}/libteam.so.*
|
||||
%{_bindir}/teamnl
|
||||
%{_mandir}/man8/teamnl.8*
|
||||
|
||||
%files devel
|
||||
%doc COPYING _tmpdoc1/examples
|
||||
%{_includedir}/team.h
|
||||
%{_libdir}/libteam.so
|
||||
%{_libdir}/pkgconfig/libteam.pc
|
||||
|
||||
%files doc
|
||||
%doc COPYING doc/api
|
||||
|
||||
%files -n teamd
|
||||
%doc COPYING teamd/example_configs teamd/redhat/example_ifcfgs/
|
||||
%config(noreplace) %attr(644,root,root) %{_sysconfdir}/dbus-1/system.d/teamd.conf
|
||||
%config(noreplace) %attr(644,root,root) %{_unitdir}/teamd@.service
|
||||
%{_libdir}/libteamdctl.so.*
|
||||
%{_bindir}/teamd
|
||||
%{_bindir}/teamdctl
|
||||
%{_bindir}/bond2team
|
||||
%{_mandir}/man8/teamd.8*
|
||||
%{_mandir}/man8/teamdctl.8*
|
||||
%{_mandir}/man5/teamd.conf.5*
|
||||
%{_mandir}/man1/bond2team.1*
|
||||
|
||||
%files -n teamd-devel
|
||||
%doc COPYING
|
||||
%{_includedir}/teamdctl.h
|
||||
%{_libdir}/libteamdctl.so
|
||||
%{_libdir}/pkgconfig/libteamdctl.pc
|
||||
|
||||
%files -n python3-libteam
|
||||
%doc COPYING _tmpdoc2/examples
|
||||
%{python3_sitearch}/*
|
||||
|
||||
%files -n network-scripts-team
|
||||
%{_sysconfdir}/sysconfig/network-scripts/ifup-Team
|
||||
%{_sysconfdir}/sysconfig/network-scripts/ifdown-Team
|
||||
%{_sysconfdir}/sysconfig/network-scripts/ifup-TeamPort
|
||||
%{_sysconfdir}/sysconfig/network-scripts/ifdown-TeamPort
|
||||
|
||||
%changelog
|
||||
* Thu Jan 10 2019 Xin Long <lxin@redhat.com> - 1.27-10
|
||||
- add new package network-scripts-team [1659846]
|
||||
|
||||
* Mon Aug 20 2018 Xin Long <lxin@redhat.com> - 1.27-9
|
||||
- Added patch to fix the issue that no active port is set [1618710]
|
||||
|
||||
* Fri Aug 03 2018 Xin Long <lxin@redhat.com> - 1.27-8
|
||||
- Add fix to only process LACPDU after port ifinfo is set
|
||||
- Add port_hwaddr_changed for ab, lb and lacp runners
|
||||
- Add patch to fix runner.sys_prio default in man docs
|
||||
- Add patch to empty LDFLAGS before checking for libnl3 in configure.ac
|
||||
- Add patch to not crash when trying to print unregistered device name
|
||||
- Add patch to use SWIG_FromCharPtrAndSize for Python3 support
|
||||
- Add patch to check to_stdout return correctly in bond2team in bond2team
|
||||
- Add 'BuildRequires: systemd-units' in libteam.spec to fix building errors
|
||||
- Add 'autoreconf --force --install -I m4' in libteam.sepc to regenerate configure
|
||||
- Remove ifup/ifdown scripts installation in libteam.sepc
|
||||
|
||||
* Tue Jun 26 2018 Charalampos Stratakis <cstratak@redhat.com> - 1.27-7
|
||||
- Change the python bindings to Python 3
|
||||
|
||||
* Wed Feb 07 2018 Fedora Release Engineering <releng@fedoraproject.org> - 1.27-6
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
|
||||
|
||||
* Tue Jan 09 2018 Iryna Shcherbina <ishcherb@redhat.com> - 1.27-5
|
||||
- Update Python 2 dependency declarations to new packaging standards
|
||||
(See https://fedoraproject.org/wiki/FinalizingFedoraSwitchtoPython3)
|
||||
|
||||
* Sat Aug 19 2017 Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> - 1.27-4
|
||||
- Python 2 binary package renamed to python2-libteam
|
||||
See https://fedoraproject.org/wiki/FinalizingFedoraSwitchtoPython3
|
||||
|
||||
* Thu Aug 03 2017 Fedora Release Engineering <releng@fedoraproject.org> - 1.27-3
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild
|
||||
|
||||
* Wed Jul 26 2017 Fedora Release Engineering <releng@fedoraproject.org> - 1.27-2
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild
|
||||
|
||||
* Mon Jun 05 2017 Jiri Pirko <jiri@resnulli.us> - 1.27-1
|
||||
- 1.27 release
|
||||
- teamd: check target host with nap.nah.nd_na_target
|
||||
- teamd: check ipv6 packet only with the 4 bits version
|
||||
- teamd: set correct bits for standby ports
|
||||
- libteam: Add team_get_port_enabled function
|
||||
- teamd: check port link_up when a port is added with loadbalance runner
|
||||
- libteam: resynchronize ifinfo after lost RTNLGRP_LINK notifications
|
||||
- SubmittingPatches: add checkpatch note
|
||||
- README: add note regarding pull requests
|
||||
- teamd: escape some sensitive characters in ifname with double quotation marks
|
||||
|
||||
* Fri Feb 10 2017 Fedora Release Engineering <releng@fedoraproject.org> - 1.26-2
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild
|
||||
|
||||
* Fri Aug 26 2016 Jiri Pirko <jiri@resnulli.us> - 1.26-1
|
||||
- 1.26 release
|
||||
- teamd: lacp: Do not unselect port if it changes state to "expired"
|
||||
- man: in lacp it's 'port_config', not 'port_options'
|
||||
- teamd: fix the issue that network blocks when systemctl stop teamd
|
||||
- teamd: change to Before=network-pre.target in systemd service file
|
||||
- man teamd.conf: fix indentation
|
||||
- misc: fix an out-of-bound write with zero-length hardware address
|
||||
- teamd: LACP runner does not set Agg bit on first slave
|
||||
|
||||
* Tue Jul 19 2016 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.25-2
|
||||
- https://fedoraproject.org/wiki/Changes/Automatic_Provides_for_Python_RPM_Packages
|
||||
|
||||
* Fri May 20 2016 Jiri Pirko <jiri@resnulli.us> - 1.25-1
|
||||
- 1.25 release
|
||||
- teamd: handle vlan 0 packets
|
||||
- libteam: fix TEAM_OPTION_TYPE_BOOL type for big endian architectures
|
||||
|
||||
* Fri Apr 15 2016 Jiri Pirko <jiri@resnulli.us> - 1.24-1
|
||||
- 1.24 release
|
||||
- teamd: lacp: use original hwaddr as source address in lacpdus
|
||||
- teamd: do correct l3/l4 tx hashing with vlans
|
||||
- libteam: Fix broken links
|
||||
|
||||
* Thu Feb 04 2016 Fedora Release Engineering <releng@fedoraproject.org> - 1.23-2
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild
|
||||
|
||||
* Thu Dec 17 2015 Jiri Pirko <jiri@resnulli.us> - 1.23-1
|
||||
- 1.23 release
|
||||
- dbus: don't do <deny send_interface="..." /> in template dbus s. f.
|
||||
- libteam: retry on NLE_DUMP_INTR error
|
||||
|
||||
* Tue Nov 03 2015 Jiri Pirko <jiri@resnulli.us> - 1.22-1
|
||||
- 1.22 release
|
||||
- dbus: don't do <deny send_interface="..." /> in dbus service file
|
||||
- teamd: Fix member port state change on master team admin UP.
|
||||
- teamd: add CAP_NET_RAW capability for LACP packet sockets
|
||||
- add teamd.conf.in to EXTRA_DIST
|
||||
|
||||
* Mon Oct 05 2015 Jiri Pirko <jiri@resnulli.us> - 1.21-1
|
||||
- 1.21 release
|
||||
- libteam: add missing "static inline" in nl_updates
|
||||
- libteam: check for definition of NLA_PUT_S* separatelly
|
||||
|
||||
* Mon Oct 05 2015 Jiri Pirko <jiri@resnulli.us> - 1.20-1
|
||||
- 1.20 release
|
||||
- libteam: fix compile error with newer libnl
|
||||
|
||||
* Mon Oct 05 2015 Jiri Pirko <jiri@resnulli.us> - 1.19-1
|
||||
- 1.19 release
|
||||
- teamd: add Before=network.target to systemd service file
|
||||
- teamd: lacp: update actor state before sending LACP frames
|
||||
- regenerate dbus policy file from template when user changed
|
||||
- drop privileges to usr/grp specified at build time
|
||||
- make teamd's run directory configurable
|
||||
- create run directory at teamd program start
|
||||
- teamd: fix cut&paste issue on delay_up
|
||||
- Add stamp-h1 artifact to .gitignore
|
||||
- Reduce usock file permissions to 700.
|
||||
- Do not fail teamd_add_ports() when one port is missing
|
||||
- Add missing prototypes for admin_state functions
|
||||
- teamd: lacp: Don't send LACP frames when master team device is down.
|
||||
- libteam, teamd: Track admin state of team device and add handlers to watch for changes.
|
||||
- teamd: loadbalance mode lacks a .hwaddr_changed in teamd_event_watch_ops
|
||||
- libteamdctl: fix timeval value for select
|
||||
|
||||
* Fri Aug 21 2015 Jiri Pirko <jiri@resnulli.us> - 1.18-1
|
||||
- 1.18 release
|
||||
- teamd: lacp: change actor system value on team mac change
|
||||
- Fix sending duplicate LACP frames at the start of establishing a logical channel.
|
||||
- Fix teamd memory corruption issues seen by missing port unlink in ifinfo_destroy()
|
||||
- libteam: Add check to disallow creating device names longer than 15 chars.
|
||||
|
||||
* Wed Jun 17 2015 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.17-2
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild
|
||||
|
||||
* Thu Apr 02 2015 Jiri Pirko <jpirko@redhat.com> - 1.17-1
|
||||
- 1.17 release
|
||||
- update copyright dates
|
||||
- man: teamdctl: add entry for item set of debug_level
|
||||
- teamd: lw: nsna_ping: fix na rx handling
|
||||
- teamd: lw: arp_ping: fix arp rx handling
|
||||
- libteam: ifinfo: fix rtnl dellink handling
|
||||
|
||||
* Tue Mar 24 2015 Jiri Pirko <jpirko@redhat.com> - 1.16-1
|
||||
- 1.16 release
|
||||
- teamd: events: update ctx->hwaddr_len before calling hwaddr_changed handlers
|
||||
- teamd: do not change ctx->hwaddr pointer
|
||||
- teamd: lacp: change port mac address when team mac address is changed
|
||||
- teamdctl: show port link down count in state output
|
||||
- teamd: lw: count how many times has been the port down
|
||||
- init unitialized value to 0/NULL to silence gcc warnings instead of x=x
|
||||
- libteamdctl: rename recvmsg variable to recv_message
|
||||
- teamd: check retval of malloc in lw_tipc_link_state_change
|
||||
- teamd: fix potential memory leak in __set_sockaddr error path
|
||||
- libteamdctl: fix typo in warning message in cli_zmq_recv
|
||||
- libteam: check phys_port_id_len in update_phys_port_id
|
||||
- teamnl: fix potential memory leak in run_cmd_getoption
|
||||
|
||||
* Sat Feb 21 2015 Till Maas <opensource@till.name> - 1.15-2
|
||||
- Rebuilt for Fedora 23 Change
|
||||
https://fedoraproject.org/wiki/Changes/Harden_all_packages_with_position-independent_code
|
||||
|
||||
* Wed Dec 17 2014 Jiri Pirko <jpirko@redhat.com> - 1.15-1
|
||||
- 1.15 release
|
||||
- teamd: ignore SIGPIPE
|
||||
- libteamdctl: Fix a typo in DBus method name
|
||||
|
||||
* Wed Nov 05 2014 Jiri Pirko <jpirko@redhat.com> - 1.14-1
|
||||
- 1.14 release
|
||||
- teamd: lw_arp_ping: make buf static and avoid returning local pointer
|
||||
|
||||
* Wed Nov 05 2014 Jiri Pirko <jpirko@redhat.com> - 1.13-1
|
||||
- 1.13 release
|
||||
- teamd: fix coding style a bit after previous commit
|
||||
- teamd: Don't ever kill PID 0
|
||||
- teamd: tipc: topology-aware failover
|
||||
- teamd: tipc: fix team port removal bugs
|
||||
- zmq: remove unused my_free_msg
|
||||
- libteamdctl: zmq: remove include of teamd.h
|
||||
- teamd: add teamd_zmq_common.h to noinst headers
|
||||
|
||||
* Tue Aug 19 2014 Jiri Pirko <jpirko@redhat.com> - 1.12-1
|
||||
- 1.12 release
|
||||
- teamd: teamd_state_val_dump move TEAMD_BUG_ON so it can be actually triggered
|
||||
- teamd: fix coverity error in teamd_sriov_physfn_addr
|
||||
- libteamdctl: adjust doc comments to be processed by doxygen
|
||||
- remove forgotten src dir
|
||||
- libteam: stringify.c adjust doc comments to be processed by doxygen
|
||||
- libteam: ports.c adjust doc comments to be processed by doxygen
|
||||
- libteam: options.c adjust doc comments to be processed by doxygen
|
||||
- libteam: ifinfo.c adjust doc comments to be processed by doxygen
|
||||
- libteam: libteam.c adjust doc comments to be processed by doxygen
|
||||
- add doxygen html doc generation into autoconf
|
||||
- teamd: tipc: use TIPC_MAX_*_NAME for buffers and check len
|
||||
- fix strncmp len in ifname2ifindex
|
||||
- teamd: fix incorrect usage of sizeof in __str_sockaddr
|
||||
|
||||
* Sun Aug 17 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.11-2
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild
|
||||
|
||||
* Thu Jun 26 2014 Jiri Pirko <jpirko@redhat.com> - 1.11-1
|
||||
- 1.11 release
|
||||
- teamd: add forgotten teamd_link_watch.h to noinst_HEADERS
|
||||
- teamd: add tipc.h kernel header
|
||||
- teamd: Add support for TIPC link watcher
|
||||
- teamd: add TIPC link watcher
|
||||
- teamd: move icmp6 NS/NA ping link watcher to a separate file
|
||||
- teamd: move arp ping link watcher to a separate file
|
||||
- teamd: move psr template link watcher to a separate file
|
||||
- teamd: move ethtool link watcher to a separate file
|
||||
- teamd_dbus: add PortConfigDump to introspection
|
||||
- teamd: allow restart on failure through systemd
|
||||
- teamd: distinguish exit code between init error and runtime error
|
||||
- man teamd.conf: remove "mandatory" since the options are no longer mandatory
|
||||
- teamd: add "debug_level" config option
|
||||
- teamd: allow to change debug level during run
|
||||
- teamd: register debug callback at the start of callbacks list
|
||||
- libteam: add team_change_handler_register_head function
|
||||
- teamd: lacp: update partner info before setting state
|
||||
- teamd: lacp: do not check SYNCHRO flag before enable of port
|
||||
- teamd: lacp: "expired" port is not selectable, only "current"
|
||||
- teamd: lacp: update actor system (mac) before sending lacpdu
|
||||
- teamd: respect currently set user linkup for created linkwatches
|
||||
- teamd: split --take-over option into --no-quit-destroy
|
||||
- teamd: fix port removal when using take_over
|
||||
- libteam: add SubmittingPatches doc
|
||||
- libteam: Use u8 for put/get TEAM_ATTR_OPTION_TYPE
|
||||
|
||||
* Sat Jun 07 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.10-2
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild
|
||||
|
||||
* Mon Mar 31 2014 Jiri Pirko <jpirko@redhat.com> - 1.10-1
|
||||
- Update to 1.10
|
||||
- teamd: quit when our team device is removed from outside
|
||||
- libteam: ifinfo: watch for dellink messages and call change handlers for that
|
||||
- initscripts: make ifup/ifdown scripts usable by ifup/ifdown-eth scripts
|
||||
- teamdctl: unmess check_teamd_team_devname and fix double free there
|
||||
- man: correct type of "*_host" options
|
||||
- teamd_link_watch: specify "missed_max" option default value
|
||||
- bond2team: do not guess source_host option
|
||||
- teamd_link_watch: allow to send ARP probes if no source_host is specified
|
||||
- initscripts: do not try to re-add port if it is already there
|
||||
- teamdctl: add command for easy port presention checking
|
||||
- Fix potential small memory leak
|
||||
- usock: accept multiline message string parameters
|
||||
- libteamdctl: add notice for caller to do not modify or free certain strings
|
||||
- teamd: do not remove ports from team dev in case of take over mode
|
||||
- teamd: look for existing ports before adding new ones
|
||||
- libteam: introduce ream_refresh
|
||||
- teamd: fixed couple comments.
|
||||
- teamd: update hwaddr when changing team's macaddr
|
||||
- redhat: fix boolean types in example 2
|
||||
- initscripts: fix port up before master and port down after master
|
||||
- lb: enable/disable port according to linkwatch state
|
||||
- fix comment typo in ifdown-Team scripts
|
||||
- man teamd.conf: Minor improvements to style and language
|
||||
- man teamdctl: Minor improvements to style and language
|
||||
|
||||
* Thu Jan 23 2014 Jiri Pirko <jpirko@redhat.com> - 1.9-2
|
||||
- fix multilib
|
||||
|
||||
* Tue Nov 12 2013 Jiri Pirko <jpirko@redhat.com> - 1.9-1
|
||||
- Update to 1.9
|
||||
- libteamdctl: remove false lib dependencies
|
||||
- teamdctl: use new port config get function
|
||||
- libteamdctl: introduce support for port config get
|
||||
- libteamdctl: cache reply strings into list
|
||||
- teamd: introduce PortConfigDump control method
|
||||
- teamd: make teamd_get_port_by_ifname ifname argument const
|
||||
- Minor improvements to style and language.
|
||||
- do not install example binaries
|
||||
- minor man page(s) correction(s) and lintianisation
|
||||
- teamdctl: print error message if ifindex cannot be obtained
|
||||
- fix cflags path in pc files
|
||||
|
||||
* Tue Aug 13 2013 Jiri Pirko <jpirko@redhat.com> - 1.8-1
|
||||
- Update to 1.8
|
||||
|
||||
* Mon Aug 12 2013 Jiri Pirko <jpirko@redhat.com> - 1.7-1
|
||||
- Update to 1.7
|
||||
|
||||
* Thu Aug 08 2013 Jiri Pirko <jpirko@redhat.com> - 1.6-1
|
||||
- Update to 1.6
|
||||
|
||||
* Tue Jul 30 2013 Jiri Pirko <jpirko@redhat.com> - 1.5-1
|
||||
- Update to 1.5
|
||||
|
||||
* Tue Jun 11 2013 Jiri Pirko <jpirko@redhat.com> - 1.3-1
|
||||
- Update to 1.3
|
||||
|
||||
* Wed May 29 2013 Jiri Pirko <jpirko@redhat.com> - 1.2-1
|
||||
- Update to 1.2
|
||||
|
||||
* Thu May 16 2013 Jiri Pirko <jpirko@redhat.com> - 1.1-1
|
||||
- Update to 1.1
|
||||
|
||||
* Thu Jan 31 2013 Jiri Pirko <jpirko@redhat.com> - 1.0-1
|
||||
- Update to 1.0
|
||||
|
||||
* Sun Jan 20 2013 Jiri Pirko <jpirko@redhat.com> - 0.1-27.20130110gitf16805c
|
||||
- Rebuilt for libnl3
|
||||
|
||||
* Sun Jan 20 2013 Kalev Lember <kalevlember@gmail.com> - 0.1-26.20130110gitf16805c
|
||||
- Rebuilt for libnl3
|
||||
|
||||
* Thu Jan 10 2013 Jiri Pirko <jpirko@redhat.com> - 0.1-25.20130110gitf16805c
|
||||
- Rebase to git commit f16805c
|
||||
|
||||
* Wed Dec 12 2012 Jiri Pirko <jpirko@redhat.com> - 0.1-24.20121212git01fe4bd
|
||||
- Rebase to git commit 01fe4bd
|
||||
|
||||
* Thu Dec 06 2012 Jiri Pirko <jpirko@redhat.com> - 0.1-23.20121206git659a848
|
||||
- Rebase to git commit 659a848
|
||||
|
||||
* Thu Nov 22 2012 Jiri Pirko <jpirko@redhat.com> - 0.1-22.20121122git18b6701
|
||||
- Rebase to git commit 18b6701
|
||||
|
||||
* Thu Nov 15 2012 Jiri Pirko <jpirko@redhat.com> - 0.1-21.20121115gitffb5267
|
||||
- Rebase to git commit ffb5267
|
||||
|
||||
* Mon Nov 05 2012 Jiri Pirko <jpirko@redhat.com> - 0.1-20.20121105git3b95b34
|
||||
- Rebase to git commit 3b95b34
|
||||
|
||||
* Thu Oct 25 2012 Jiri Pirko <jpirko@redhat.com> - 0.1-19.20121025git7fe7c72
|
||||
- Rebase to git commit 7fe7c72
|
||||
|
||||
* Fri Oct 19 2012 Jiri Pirko <jpirko@redhat.com> - 0.1-18.20121019git1a91059
|
||||
- Rebase to git commit 1a91059
|
||||
|
||||
* Sun Oct 07 2012 Jiri Pirko <jpirko@redhat.com> - 0.1-17.20121007git6f48751
|
||||
- Rebase to git commit 6f48751
|
||||
|
||||
* Tue Sep 25 2012 Jiri Pirko <jpirko@redhat.com> - 0.1-16.20120925gitcc5cddc
|
||||
- Rebase to git commit cc5cddc
|
||||
|
||||
* Sun Sep 23 2012 Jiri Pirko <jpirko@redhat.com> - 0.1-15.20120923git8448186
|
||||
- Rebase to git commit 8448186
|
||||
|
||||
* Tue Sep 04 2012 Jiri Pirko <jpirko@redhat.com> - 0.1-14.20120904gitbdcf72c
|
||||
- Rebase to git commit bdcf72c
|
||||
|
||||
* Wed Aug 22 2012 Jiri Pirko <jpirko@redhat.com> - 0.1-13.20120822gitc0d943d
|
||||
- Rebase to git commit c0d943d
|
||||
|
||||
* Tue Aug 07 2012 Jiri Pirko <jpirko@redhat.com> - 0.1-12.20120807git9fa4a96
|
||||
- Rebase to git commit 9fa4a96
|
||||
|
||||
* Thu Jul 19 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.1-11.20120628gitca7b526
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild
|
||||
|
||||
* Thu Jun 28 2012 Jiri Pirko <jpirko@redhat.com> - 0.1-10.20120628gitca7b526
|
||||
- Rebase to git commit ca7b526
|
||||
|
||||
* Wed Jun 27 2012 Jiri Pirko <jpirko@redhat.com> - 0.1-9.20120627git96569f8
|
||||
- Rebase to git commit 96569f8
|
||||
|
||||
* Wed Jun 27 2012 Jiri Pirko <jpirko@redhat.com> - 0.1-8.20120627gitcd6b557
|
||||
- Rebase to git commit cd6b557
|
||||
|
||||
* Wed Jun 20 2012 Jiri Pirko <jpirko@redhat.com> - 0.1-7.20120620gita88fabf
|
||||
- Rebase to git commit a88fabf
|
||||
|
||||
* Fri May 04 2012 Jiri Pirko <jpirko@redhat.com> - 0.1-6.20120504git11e234a
|
||||
- Rebase to git commit 11e234a
|
||||
|
||||
* Thu Apr 05 2012 Jiri Pirko <jpirko@redhat.com> - 0.1-5.20120405gita82f8ac
|
||||
- Rebase to git commit a82f8ac
|
||||
|
||||
* Tue Feb 21 2012 Jiri Pirko <jpirko@redhat.com> - 0.1-4.20120221gitfe97f63
|
||||
- Rebase to git commit fe97f63
|
||||
|
||||
* Mon Jan 30 2012 Jiri Pirko <jpirko@redhat.com> - 0.1-3.20120130gitb5cf2a8
|
||||
- Rebase to git commit b5cf2a8
|
||||
|
||||
* Wed Jan 25 2012 Jiri Pirko <jpirko@redhat.com> - 0.1-2.20120125gita1718f8
|
||||
- Rebase to git commit a1718f8
|
||||
|
||||
* Wed Jan 18 2012 Jiri Pirko <jpirko@redhat.com> - 0.1-1.20120113git302672e
|
||||
- Initial build.
|
Loading…
Reference in New Issue
Block a user