diff --git a/SOURCES/lldpad-0.9.46-Ignore-supplied-PG-configuration-if-PG-is-being-disabled.patch b/SOURCES/lldpad-0.9.46-Ignore-supplied-PG-configuration-if-PG-is-being-disabled.patch new file mode 100644 index 0000000..2d06279 --- /dev/null +++ b/SOURCES/lldpad-0.9.46-Ignore-supplied-PG-configuration-if-PG-is-being-disabled.patch @@ -0,0 +1,51 @@ +Disabling PG currently validates the entire given PG config, +even if no configuration is given. Of course since PG is +being disabled, the configuration wouldn't be used anyway, so +ignore any PG configuration given when disabling it. + +Signed-off-by: Dan Williams +--- + lldp_dcbx_cmds.c | 5 +++++ + 1 file changed, 5 insertions(+) + +diff --git a/lldp_dcbx_cmds.c b/lldp_dcbx_cmds.c +index 7fdf6c4..8dcee7a 100644 +--- a/lldp_dcbx_cmds.c ++++ b/lldp_dcbx_cmds.c +@@ -939,14 +939,18 @@ static int set_pg_config(pg_attribs *pg_data, char *port_id, char *ibuf, + cmd_status status = cmd_success; + int i, is_pfc; + int plen; + int off; + bool used[MAX_BANDWIDTH_GROUPS]; + bool uppcts_changed = false; + ++ /* If PG is disabled, skip changing any other attributes */ ++ if (!(pg_data->protocol.Enable)) ++ goto done; ++ + plen=strlen(port_id); + off = DCB_PORT_OFF + plen + CFG_LEN; + + if (ilen == (off + CFG_PG_DLEN)) { + for (i = 0; i < MAX_USER_PRIORITIES; i++) { + flag = *(ibuf+off+PG_UP2TC(i)); + if (flag == CLIF_NOT_SUPPLIED) +@@ -1063,14 +1067,15 @@ static int set_pg_config(pg_attribs *pg_data, char *port_id, char *ibuf, + } + + if (status != cmd_success) { + printf("invalid DCB settings\n"); + return status; + } + ++done: + is_pfc = get_pfc(port_id, &pfc_data); + if (is_pfc == cmd_success) + status = put_pg(port_id, pg_data, &pfc_data); + else + status = put_pg(port_id, pg_data, NULL); + + if (status != cmd_success) +-- +1.8.5.3 diff --git a/SOURCES/lldpad-0.9.46-migrate-properly-with-vepa.patch b/SOURCES/lldpad-0.9.46-migrate-properly-with-vepa.patch new file mode 100644 index 0000000..3c77abc --- /dev/null +++ b/SOURCES/lldpad-0.9.46-migrate-properly-with-vepa.patch @@ -0,0 +1,26 @@ +diff --git a/lldp_vdp.c b/lldp_vdp.c +index 57133d1..2a6e828 100644 +--- a/lldp_vdp.c ++++ b/lldp_vdp.c +@@ -1479,13 +1479,18 @@ struct vsi_profile *vdp_add_profile(struct vdp_data *vd, + } + profile = p; + } else { +- +- profile->response = VDP_RESPONSE_NO_RESPONSE; ++ /* Libvirt sends dis-assoc command and no profile active */ ++ if (profile->mode == VDP_MODE_DEASSOCIATE) { ++ profile->response = VDP_RESPONSE_SUCCESS; ++ LLDPAD_DBG("%s: dis-assoc without profile\n", __func__); ++ } else ++ profile->response = VDP_RESPONSE_NO_RESPONSE; + + LIST_INSERT_HEAD(&vd->profile_head, profile, profile); + } + +- vdp_somethingChangedLocal(profile, true); ++ if (profile->response != VDP_RESPONSE_SUCCESS) ++ vdp_somethingChangedLocal(profile, true); + + return profile; + } diff --git a/SPECS/lldpad.spec b/SPECS/lldpad.spec index 65e0381..9ea93fe 100644 --- a/SPECS/lldpad.spec +++ b/SPECS/lldpad.spec @@ -3,13 +3,15 @@ Name: lldpad Version: 0.9.46 -Release: 4%{?dist} +Release: 8%{?dist} Summary: Intel LLDP Agent Group: System Environment/Daemons License: GPLv2 URL: http://open-lldp.org/ Source0: %{name}-%{version}.tar.gz Patch0: %{name}-0.9.46-multiple-vm-support.patch +Patch1: %{name}-0.9.46-migrate-properly-with-vepa.patch +Patch2: %{name}-0.9.46-Ignore-supplied-PG-configuration-if-PG-is-being-disabled.patch Requires: kernel >= 2.6.32 BuildRequires: automake autoconf libtool BuildRequires: flex >= 2.5.33 @@ -43,6 +45,8 @@ that use %{name}. %prep %setup -q %patch0 -p1 +%patch1 -p1 +%patch2 -p1 %build ./bootstrap.sh @@ -104,6 +108,18 @@ fi %{_libdir}/liblldp_clif.so %changelog +* Wed Mar 19 2014 Petr Šabata - 0.9.46-8 +- Ignore supplied PG configuration if PG is being disabled (#1067261) + +* Tue Mar 18 2014 Petr Šabata - 0.9.46-7 +- Migrate properly with VEPA (#1070725) + +* Fri Jan 24 2014 Daniel Mach - 0.9.46-6 +- Mass rebuild 2014-01-24 + +* Fri Dec 27 2013 Daniel Mach - 0.9.46-5 +- Mass rebuild 2013-12-27 + * Fri Nov 08 2013 Petr Šabata - 0.9.46-4 - Support multiple virtual machines again (#1020625)