From 5ac0391a2f89828e10850f3d46e08616e43576272b1cf15febc22cb306444a08 Mon Sep 17 00:00:00 2001 From: Hannes Reinecke Date: Tue, 4 Aug 2015 10:18:41 +0000 Subject: [PATCH] - Update to version 1.0.30 (FATE#318849) * Remove merged patches: + 0001-man-Fix-small-typo-regarding-fcf-option.patch + 0002-Don-t-call-AM_INIT_AUTOMAKE-twice.patch + 0003-fipvlan-fails-on-powerpc.patch + 0004-fipvlan-Only-shutdown-interfaces-if-no-vlans-are-cre.patch + 0005-fipvlan-start-VLAN-interface-from-netlink-handler.patch + 0006-fipvlan-Extract-create_missing_vlan-function-from-lo.patch + 0007-fipvlan-create-VLANs-from-netlink-handler.patch + 0008-fipvlan-Start-FCoE-from-netlink-handler.patch + 0009-fipvlan-Update-wait-loop-to-wait-for-VLANs.patch + 0010-fipvlan-Re-send-VLAN-discovery.patch + 0011-fipvlan-update-manpage.patch + 0012-fipvlan-Leave-link-up-if-requested.patch + 0013-fipvlan-Update-manpage-to-reflect-correct-timeout.patch + 0014-fipvlan-Do-not-shut-down-FCoE-connections-on-physica.patch + 0015-fipvlan-break-out-of-receive-loop-on-error.patch + 0016-fipvlan-handle-errors-from-fip-socket-creation.patch + 0017-fipvlan-filter-interfaces-from-rtnl_getlink.patch + 0018-Add-missing-DESTDIR-when-installing-bash-completion.patch + 0019-Fix-build-with-Wl-as-needed.patch + 0020-Fix-integer-formatting.patch + 0021-fcnsq-Fixup-help-text.patch + 0022-fcnsq-Fixup-64bit-integer-handling.patch + 0023-fcoemon-add-systemd-service-file.patch + 0024-fcoemon-systemd-socket-activation.patch + 0025-doc-Update-QUICKSTART-INSTALL-docs-for-systemd-init-.patch + 0026-FIPVLAN-Really-break-out-of-the-recv_loop-upon-fip_r.patch + 0027-man-Fix-typo-in-fcoemon-documentation.patch + 0032-fipvlan-Fix-crash-in-create_and_start_vlan.patch OBS-URL: https://build.opensuse.org/package/show/network:fcoe/fcoe-utils?expand=0&rev=22 --- ...ework-daemonizing-and-error-handling.patch | 78 ++++++++ ...-Fix-small-typo-regarding-fcf-option.patch | 95 ---------- 0002-Don-t-call-AM_INIT_AUTOMAKE-twice.patch | 29 --- 0002-fcoemon-fix-IEEE-state-machine.patch | 83 +++++++++ 0003-fipvlan-fails-on-powerpc.patch | 52 ------ ...ystemctl-cannot-start-fcoemon.socket.patch | 4 +- ...y-handle-options-in-the-service-file.patch | 10 +- ...tdown-interfaces-if-no-vlans-are-cre.patch | 45 ----- ...-foreground-to-prevent-fcoemon-to-be.patch | 4 +- ...-VLAN-interface-from-netlink-handler.patch | 53 ------ ...create_missing_vlan-function-from-lo.patch | 110 ----------- ...-fipvlan-fixup-return-value-on-error.patch | 10 +- ...n-clean-up-state-machine-for-pfd_add.patch | 14 +- ...an-create-VLANs-from-netlink-handler.patch | 143 -------------- ...se-correct-socket-for-fcoemon.socket.patch | 2 +- ...vlan-Start-FCoE-from-netlink-handler.patch | 154 ---------------- ...n-Update-wait-loop-to-wait-for-VLANs.patch | 73 -------- 0010-fipvlan-Re-send-VLAN-discovery.patch | 34 ---- 0011-fipvlan-update-manpage.patch | 61 ------ 0012-fipvlan-Leave-link-up-if-requested.patch | 171 ----------------- ...e-manpage-to-reflect-correct-timeout.patch | 43 ----- ...hut-down-FCoE-connections-on-physica.patch | 41 ----- ...n-break-out-of-receive-loop-on-error.patch | 36 ---- ...ndle-errors-from-fip-socket-creation.patch | 129 ------------- ...-filter-interfaces-from-rtnl_getlink.patch | 174 ------------------ ...TDIR-when-installing-bash-completion.patch | 27 --- 0019-Fix-build-with-Wl-as-needed.patch | 46 ----- 0020-Fix-integer-formatting.patch | 81 -------- 0021-fcnsq-Fixup-help-text.patch | 29 --- 0022-fcnsq-Fixup-64bit-integer-handling.patch | 79 -------- 0023-fcoemon-add-systemd-service-file.patch | 100 ---------- 0024-fcoemon-systemd-socket-activation.patch | 131 ------------- ...START-INSTALL-docs-for-systemd-init-.patch | 46 ----- ...reak-out-of-the-recv_loop-upon-fip_r.patch | 34 ---- ...an-Fix-typo-in-fcoemon-documentation.patch | 28 --- 0031-fcoemon-Fix-IEEE-state-machine.patch | 107 ----------- ...n-Fix-crash-in-create_and_start_vlan.patch | 58 ------ ...ess-warning-interface-already-exists.patch | 31 ---- ...rash-on-empty-MAC-address-in-lookup_.patch | 31 ---- fcoe-utils-1.0.29.tar.xz | 3 - fcoe-utils-1.0.30.tar.xz | 3 + fcoe-utils.changes | 46 +++++ fcoe-utils.spec | 82 ++------- 43 files changed, 244 insertions(+), 2366 deletions(-) create mode 100644 0001-fcoemon-Rework-daemonizing-and-error-handling.patch delete mode 100644 0001-man-Fix-small-typo-regarding-fcf-option.patch delete mode 100644 0002-Don-t-call-AM_INIT_AUTOMAKE-twice.patch create mode 100644 0002-fcoemon-fix-IEEE-state-machine.patch delete mode 100644 0003-fipvlan-fails-on-powerpc.patch rename 0028-systemctl-cannot-start-fcoemon.socket.patch => 0003-systemctl-cannot-start-fcoemon.socket.patch (90%) rename 0029-fcoemon-Correctly-handle-options-in-the-service-file.patch => 0004-fcoemon-Correctly-handle-options-in-the-service-file.patch (94%) delete mode 100644 0004-fipvlan-Only-shutdown-interfaces-if-no-vlans-are-cre.patch rename 0030-fcoe.service-Add-foreground-to-prevent-fcoemon-to-be.patch => 0005-fcoe.service-Add-foreground-to-prevent-fcoemon-to-be.patch (93%) delete mode 100644 0005-fipvlan-start-VLAN-interface-from-netlink-handler.patch delete mode 100644 0006-fipvlan-Extract-create_missing_vlan-function-from-lo.patch rename 0035-fipvlan-fixup-return-value-on-error.patch => 0006-fipvlan-fixup-return-value-on-error.patch (76%) rename 0036-fipvlan-clean-up-state-machine-for-pfd_add.patch => 0007-fipvlan-clean-up-state-machine-for-pfd_add.patch (80%) delete mode 100644 0007-fipvlan-create-VLANs-from-netlink-handler.patch rename 0037-Use-correct-socket-for-fcoemon.socket.patch => 0008-Use-correct-socket-for-fcoemon.socket.patch (92%) delete mode 100644 0008-fipvlan-Start-FCoE-from-netlink-handler.patch delete mode 100644 0009-fipvlan-Update-wait-loop-to-wait-for-VLANs.patch delete mode 100644 0010-fipvlan-Re-send-VLAN-discovery.patch delete mode 100644 0011-fipvlan-update-manpage.patch delete mode 100644 0012-fipvlan-Leave-link-up-if-requested.patch delete mode 100644 0013-fipvlan-Update-manpage-to-reflect-correct-timeout.patch delete mode 100644 0014-fipvlan-Do-not-shut-down-FCoE-connections-on-physica.patch delete mode 100644 0015-fipvlan-break-out-of-receive-loop-on-error.patch delete mode 100644 0016-fipvlan-handle-errors-from-fip-socket-creation.patch delete mode 100644 0017-fipvlan-filter-interfaces-from-rtnl_getlink.patch delete mode 100644 0018-Add-missing-DESTDIR-when-installing-bash-completion.patch delete mode 100644 0019-Fix-build-with-Wl-as-needed.patch delete mode 100644 0020-Fix-integer-formatting.patch delete mode 100644 0021-fcnsq-Fixup-help-text.patch delete mode 100644 0022-fcnsq-Fixup-64bit-integer-handling.patch delete mode 100644 0023-fcoemon-add-systemd-service-file.patch delete mode 100644 0024-fcoemon-systemd-socket-activation.patch delete mode 100644 0025-doc-Update-QUICKSTART-INSTALL-docs-for-systemd-init-.patch delete mode 100644 0026-FIPVLAN-Really-break-out-of-the-recv_loop-upon-fip_r.patch delete mode 100644 0027-man-Fix-typo-in-fcoemon-documentation.patch delete mode 100644 0031-fcoemon-Fix-IEEE-state-machine.patch delete mode 100644 0032-fipvlan-Fix-crash-in-create_and_start_vlan.patch delete mode 100644 0033-fipvlan-suppress-warning-interface-already-exists.patch delete mode 100644 0034-fipvlan-do-not-crash-on-empty-MAC-address-in-lookup_.patch delete mode 100644 fcoe-utils-1.0.29.tar.xz create mode 100644 fcoe-utils-1.0.30.tar.xz diff --git a/0001-fcoemon-Rework-daemonizing-and-error-handling.patch b/0001-fcoemon-Rework-daemonizing-and-error-handling.patch new file mode 100644 index 0000000..e1d1b0f --- /dev/null +++ b/0001-fcoemon-Rework-daemonizing-and-error-handling.patch @@ -0,0 +1,78 @@ +From f3af6bad75d7f6c90b9a170cbf9e4748ab4bb24e Mon Sep 17 00:00:00 2001 +From: Johannes Thumshirn +Date: Mon, 18 May 2015 17:02:59 +0000 +Subject: fcoemon: Rework daemonizing and error handling + +Rework error handling, which leads to daemonizing later in order to get the +error handling into effect. + +Signed-off-by: Johannes Thumshirn +Signed-off-by: Vasu Dev +--- + fcoemon.c | 31 ++++++++++++++++++++++--------- + 1 file changed, 22 insertions(+), 9 deletions(-) + +diff --git a/fcoemon.c b/fcoemon.c +index 3b5210c..c5edd1b 100644 +--- a/fcoemon.c ++++ b/fcoemon.c +@@ -3719,11 +3719,6 @@ int main(int argc, char **argv) + if (argc != optind) + fcm_usage(); + +- if (!fcm_fg && daemon(0, !fcoe_config.use_syslog)) { +- FCM_LOG("Starting daemon failed"); +- exit(EXIT_FAILURE); +- } +- + umask(0); + + /* +@@ -3770,22 +3765,40 @@ int main(int argc, char **argv) + } + + fcm_fcoe_init(); +- fcm_fc_events_init(); +- fcm_link_init(); /* NETLINK_ROUTE protocol */ ++ rc = fcm_fc_events_init(); ++ if (rc != 0) ++ exit(1); ++ ++ rc = fcm_link_init(); /* NETLINK_ROUTE protocol */ ++ if (rc != 0) ++ goto err_cleanup; ++ + fcm_dcbd_init(); +- fcm_srv_create(&srv_info); ++ rc = fcm_srv_create(&srv_info); ++ if (rc != 0) ++ goto err_cleanup; ++ ++ if (!fcm_fg && daemon(0, !fcoe_config.use_syslog)) { ++ FCM_LOG("Starting daemon failed"); ++ goto err_cleanup; ++ } ++ + sa_select_set_callback(fcm_handle_changes); + + rc = sa_select_loop(); + if (rc < 0) { + FCM_LOG_ERR(rc, "select error\n"); +- exit(EXIT_FAILURE); ++ goto err_cleanup; + } + fcm_dcbd_shutdown(); + fcm_srv_destroy(&srv_info); + if (rc == SIGHUP) + fcm_cleanup(); + return 0; ++ ++err_cleanup: ++ fcm_cleanup(); ++ exit(1); + } + + /******************************************************* +-- +1.8.4.5 + diff --git a/0001-man-Fix-small-typo-regarding-fcf-option.patch b/0001-man-Fix-small-typo-regarding-fcf-option.patch deleted file mode 100644 index f25183f..0000000 --- a/0001-man-Fix-small-typo-regarding-fcf-option.patch +++ /dev/null @@ -1,95 +0,0 @@ -From fd085bc2188785859b9ab1f6d27d0fe061baf88c Mon Sep 17 00:00:00 2001 -From: Robert Love -Date: Tue, 15 Oct 2013 01:48:18 +0000 -Subject: man: Fix small typo regarding --fcf option - -The option is coded as '--fcf', so fix the documentation -to match the implementation. - -Reported-by: Xiaowei Li -Signed-off-by: Robert Love ---- - doc/fcoeadm.8 | 18 +++++++----------- - doc/fcoeadm.txt | 4 ++-- - 2 files changed, 9 insertions(+), 13 deletions(-) - -diff --git a/doc/fcoeadm.8 b/doc/fcoeadm.8 -index 11da6e3..2fefd70 100644 ---- a/doc/fcoeadm.8 -+++ b/doc/fcoeadm.8 -@@ -1,13 +1,13 @@ - '\" t - .\" Title: fcoeadm - .\" Author: [FIXME: author] [see http://docbook.sf.net/el/author] --.\" Generator: DocBook XSL Stylesheets v1.76.1 --.\" Date: 11/08/2012 -+.\" Generator: DocBook XSL Stylesheets v1.78.1 -+.\" Date: 10/14/2013 - .\" Manual: Open-FCoE Tools - .\" Source: Open-FCoE - .\" Language: English - .\" --.TH "FCOEADM" "8" "11/08/2012" "Open\-FCoE" "Open\-FCoE Tools" -+.TH "FCOEADM" "8" "10/14/2013" "Open\-FCoE" "Open\-FCoE Tools" - .\" ----------------------------------------------------------------- - .\" * Define some portability stuff - .\" ----------------------------------------------------------------- -@@ -39,7 +39,7 @@ fcoeadm \- The Open\-FCoE Administration Tool - .sp - \fBfcoeadm\fR \-i|\-\-interface [\fIethX\fR] - .sp --\fBfcoeadm\fR \-f|\-\-fcfs [\fIethX\fR] -+\fBfcoeadm\fR \-f|\-\-fcf [\fIethX\fR] - .sp - \fBfcoeadm\fR \-t|\-\-target [\fIethX\fR] - .sp -@@ -91,7 +91,7 @@ Rescan for new targets and LUNs on the provided instance\&. This command will no - Show information about the FCoE instance on the specified network interface, or all FCoE instances if no network interface is specified\&. - .RE - .PP --\fB\-f\fR, \fB\-\-fcfs\fR [\fIethX\fR] -+\fB\-f\fR, \fB\-\-fcf\fR [\fIethX\fR] - .RS 4 - Show information about the discovered Fibre Channel Forwarders (FCFs) on the specified network interface, or all discovered FCFs if no network interface is specified\&. - .RE -@@ -143,13 +143,9 @@ command\&. - .RE - .SH "INTERFACE NAMES" - .sp --The actual name for \fIethX\fR depends on the \fBAUTO_VLAN\fR setting in --the fcoemon interface configuration (/etc/fcoe/cfg-ethX, see \fBfcoemon\fR)\&. -+The actual name for \fIethX\fR depends on the \fBAUTO_VLAN\fR setting in the fcoemon interface configuration (/etc/fcoe/cfg\-ethX, see \fBfcoemon\fR)\&. - .sp --If \fBAUTO_VLAN\fR is set to \fIyes\fR, the interface name \fIethX\fR --references the network device itself. If \fBAUTO_VLAN\fR is set to --\fIno\fR, the interface name \fIethX\fR references the VLAN device\&. --.RE -+If \fBAUTO_VLAN\fR is set to \fIyes\fR, the interface name \fIethX\fR references the network device itself\&. If \fBAUTO_VLAN\fR is set to \fIno\fR, the interface name \fIethX\fR references the VLAN device\&. - .SH "EXAMPLES" - .sp - Creates an FCoE instance on eth2\&.101 -diff --git a/doc/fcoeadm.txt b/doc/fcoeadm.txt -index 788625c..28ed482 100644 ---- a/doc/fcoeadm.txt -+++ b/doc/fcoeadm.txt -@@ -29,7 +29,7 @@ SYNOPSIS - - *fcoeadm* -i|--interface [_ethX_] - --*fcoeadm* -f|--fcfs [_ethX_] -+*fcoeadm* -f|--fcf [_ethX_] - - *fcoeadm* -t|--target [_ethX_] - -@@ -89,7 +89,7 @@ OPERATIONS - Show information about the FCoE instance on the specified network - interface, or all FCoE instances if no network interface is specified. - --*-f*, *--fcfs* [_ethX_]:: -+*-f*, *--fcf* [_ethX_]:: - Show information about the discovered Fibre Channel Forwarders (FCFs) - on the specified network interface, or all discovered FCFs if no - network interface is specified. --- -1.8.1.4 - diff --git a/0002-Don-t-call-AM_INIT_AUTOMAKE-twice.patch b/0002-Don-t-call-AM_INIT_AUTOMAKE-twice.patch deleted file mode 100644 index bc9c4fe..0000000 --- a/0002-Don-t-call-AM_INIT_AUTOMAKE-twice.patch +++ /dev/null @@ -1,29 +0,0 @@ -From 0f63a3ed3a12b4f88f5dd49983cdf3f9b24e9fc8 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Petr=20=C5=A0abata?= -Date: Thu, 7 Nov 2013 11:31:11 +0000 -Subject: Don't call AM_INIT_AUTOMAKE twice -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -This fixes build issues with automake 1.14+. - -Signed-off-by: Petr Ĺ abata -Signed-off-by: Robert Love ---- - configure.ac | 1 - - 1 file changed, 1 deletion(-) - -diff --git a/configure.ac b/configure.ac -index 73c140f..bb1385b 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -1,5 +1,4 @@ - AC_INIT([fcoe-utils], [1.0.29], [fcoe-devel@open-fcoe.org]) --AM_INIT_AUTOMAKE([foreign]) - - m4_ifdef([AM_PROG_AR], [AM_PROG_AR]) - AM_INIT_AUTOMAKE([foreign]) --- -1.8.1.4 - diff --git a/0002-fcoemon-fix-IEEE-state-machine.patch b/0002-fcoemon-fix-IEEE-state-machine.patch new file mode 100644 index 0000000..cb593f1 --- /dev/null +++ b/0002-fcoemon-fix-IEEE-state-machine.patch @@ -0,0 +1,83 @@ +From 91c0c8c0a37af40b3fb4a37df6490a226348d152 Mon Sep 17 00:00:00 2001 +From: Vasu Dev +Date: Fri, 5 Jun 2015 14:52:10 -0700 +Subject: fcoemon: fix IEEE state machine + +Fix IEEE state machine for these issues:- + + - fcoeadm scan not working + - fcoeadm reset not working + - periodic fipvlan issuance even after fcoe instance created + +These issues are due to current IEEE states are not correctly +handled. The validate_ieee_info() return either activate or +wait actions and out of that only activate is really used to +enable fcoe instance and none other action are applicable in +IEEE state machine, so reduced to only activate and then +advance the state machine to new IEEE_ACTIVE state to allow +processing of scan & reset command once interface activated. + +This also fixes fipvlan issuance issue beside fixing scan and +reset fcoeadm commands. + +Signed-off-by: Vasu Dev +Tested-By: Jack Morgan +--- + fcoemon.c | 19 +++++++------------ + fcoemon.h | 1 + + 2 files changed, 8 insertions(+), 12 deletions(-) + +diff --git a/fcoemon.c b/fcoemon.c +index c5edd1b..c0af99b 100644 +--- a/fcoemon.c ++++ b/fcoemon.c +@@ -1341,6 +1341,7 @@ STR_ARR(ieee_states, "Unknown", "Out of range", + [IEEE_INIT] = "IEEE_INIT", + [IEEE_GET_STATE] = "IEEE_GET_STATE", + [IEEE_DONE] = "IEEE_DONE", ++ [IEEE_ACTIVE] = "IEEE_ACTIVE", + ); + + static void +@@ -3054,20 +3055,14 @@ static void fcm_netif_ieee_advance(struct fcm_netif *ff) + break; + case IEEE_DONE: + action = validate_ieee_info(ff); +- switch (action) { +- case FCP_DESTROY_IF: +- case FCP_ENABLE_IF: +- case FCP_ACTIVATE_IF: ++ if (action == FCP_ACTIVATE_IF) { + fcp_action_set(ff->ifname, action); +- break; +- case FCP_DISABLE_IF: +- case FCP_ERROR: +- fcp_action_set(ff->ifname, FCP_DISABLE_IF); +- break; +- case FCP_WAIT: +- default: +- break; ++ ieee_state_set(ff, IEEE_ACTIVE); + } ++ break; ++ case IEEE_ACTIVE: ++ /* TBD enable and disable if needed in IEEE mode */ ++ break; + default: + break; + } +diff --git a/fcoemon.h b/fcoemon.h +index c2ed7b1..3869bae 100644 +--- a/fcoemon.h ++++ b/fcoemon.h +@@ -80,6 +80,7 @@ enum ieee_state { + IEEE_INIT = 0, /* Starting state */ + IEEE_GET_STATE, /* Getting IEEE DCB state */ + IEEE_DONE, /* Received IEEE DCB state */ ++ IEEE_ACTIVE, /* IEEE is in ACTIVE state */ + IEEE_ERROR, /* Error receiving IEEE DCB state */ + }; + +-- +1.8.4.5 + diff --git a/0003-fipvlan-fails-on-powerpc.patch b/0003-fipvlan-fails-on-powerpc.patch deleted file mode 100644 index aa7d201..0000000 --- a/0003-fipvlan-fails-on-powerpc.patch +++ /dev/null @@ -1,52 +0,0 @@ -From 921a055f5ea6b68f16db585e985eb24b4c32be2c Mon Sep 17 00:00:00 2001 -From: Raju Chakraborty -Date: Mon, 18 Nov 2013 14:33:13 +0000 -Subject: fipvlan fails on powerpc - -fipvlan fails to execute properly on powerpc architecture. - -# fipvlan -a -Try 'fipvlan --help' for more information -# - -# fipvlan --create --start eth1 -Try 'fipvlan --help' for more information -# - -In power pc systems, when there are no more arguments to be parsed, getopt_long -should return -1. But gdb output shows that it c is 255 whereas in intel system -it shows -1 properly. - -"char" must not be trusted when signing is important! Different arches (and even -different gcc versions on the same arch) may default char to signed or unsigned. - -Ideally, a portable program should always use signed char or unsigned char when -it depends on the signedness of an object. But many programs have been written -to use plain char and expect it to be signed, or expect it to be unsigned, -depending on the machines they were written for. In this case the variable c -is expected to behave as signed and hence using signed would be the safe option. - -http://gcc.gnu.org/onlinedocs/gcc-4.8.1/gcc/C-Dialect-Options.html - -Signed-off-by: Raju Chakraborty -Signed-off-by: Robert Love ---- - fipvlan.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/fipvlan.c b/fipvlan.c -index 6f8cf39..e51358f 100644 ---- a/fipvlan.c -+++ b/fipvlan.c -@@ -471,7 +471,7 @@ static void help(int status) - - static void parse_cmdline(int argc, char **argv) - { -- char c; -+ signed char c; - - while (1) { - c = getopt_long(argc, argv, GETOPT_STR, long_options, NULL); --- -1.8.1.4 - diff --git a/0028-systemctl-cannot-start-fcoemon.socket.patch b/0003-systemctl-cannot-start-fcoemon.socket.patch similarity index 90% rename from 0028-systemctl-cannot-start-fcoemon.socket.patch rename to 0003-systemctl-cannot-start-fcoemon.socket.patch index c16c569..82caecb 100644 --- a/0028-systemctl-cannot-start-fcoemon.socket.patch +++ b/0003-systemctl-cannot-start-fcoemon.socket.patch @@ -1,4 +1,4 @@ -From 444f3c66ee5a2b59a563d78cb70db7da2326d446 Mon Sep 17 00:00:00 2001 +From 4cb4df057df03ce1ccc81b2778b5090d1443ae15 Mon Sep 17 00:00:00 2001 From: Hannes Reinecke Date: Fri, 21 Mar 2014 14:46:40 +0100 Subject: systemctl cannot start fcoemon.socket @@ -27,5 +27,5 @@ index 4de8715..fdf7141 100644 PassCredentials=true -- -1.8.1.4 +1.8.4.5 diff --git a/0029-fcoemon-Correctly-handle-options-in-the-service-file.patch b/0004-fcoemon-Correctly-handle-options-in-the-service-file.patch similarity index 94% rename from 0029-fcoemon-Correctly-handle-options-in-the-service-file.patch rename to 0004-fcoemon-Correctly-handle-options-in-the-service-file.patch index 2e21efa..6413748 100644 --- a/0029-fcoemon-Correctly-handle-options-in-the-service-file.patch +++ b/0004-fcoemon-Correctly-handle-options-in-the-service-file.patch @@ -1,4 +1,4 @@ -From 5216ae2ef4434d92ff3d49c4d5a7b73b438aee2d Mon Sep 17 00:00:00 2001 +From 1e3d735a5cd1edefaeff75c43aed68661b8cda7e Mon Sep 17 00:00:00 2001 From: Hannes Reinecke Date: Fri, 11 Apr 2014 15:38:26 +0200 Subject: fcoemon: Correctly handle options in the service file @@ -55,7 +55,7 @@ index 5e5c8a2..2e10bcd 100644 [Install] WantedBy=multi-user.target diff --git a/fcoemon.c b/fcoemon.c -index 5e4f8d7..23fc2f6 100644 +index c0af99b..3ccdd5f 100644 --- a/fcoemon.c +++ b/fcoemon.c @@ -336,9 +336,9 @@ static int fcoe_vid_from_ifname(const char *ifname); @@ -70,7 +70,7 @@ index 5e4f8d7..23fc2f6 100644 {"exec", 1, NULL, 'e'}, {"foreground", 0, NULL, 'f'}, {"version", 0, NULL, 'v'}, -@@ -3192,9 +3192,9 @@ static void fcm_usage(void) +@@ -3229,9 +3229,9 @@ static void fcm_usage(void) { printf("Usage: %s\n" "\t [-f|--foreground]\n" @@ -82,7 +82,7 @@ index 5e4f8d7..23fc2f6 100644 "\t [-v|--version]\n" "\t [-h|--help]\n\n", progname); exit(1); -@@ -3648,22 +3648,28 @@ int main(int argc, char **argv) +@@ -3685,22 +3685,28 @@ int main(int argc, char **argv) sa_log_flags = 0; openlog(sa_log_prefix, LOG_CONS, LOG_DAEMON); @@ -117,5 +117,5 @@ index 5e4f8d7..23fc2f6 100644 case 'v': printf("%s\n", FCOE_UTILS_VERSION); -- -1.8.1.4 +1.8.4.5 diff --git a/0004-fipvlan-Only-shutdown-interfaces-if-no-vlans-are-cre.patch b/0004-fipvlan-Only-shutdown-interfaces-if-no-vlans-are-cre.patch deleted file mode 100644 index 5ab9f95..0000000 --- a/0004-fipvlan-Only-shutdown-interfaces-if-no-vlans-are-cre.patch +++ /dev/null @@ -1,45 +0,0 @@ -From 29d172232050386b456da62bf873278bb90d4676 Mon Sep 17 00:00:00 2001 -From: Hannes Reinecke -Date: Tue, 19 Nov 2013 20:26:01 +0000 -Subject: fipvlan: Only shutdown interfaces if no vlans are created - -Instead of having to check the individual stages we can -easier just check if any vlans are created. Vlans are -only created if the user specified '--create', so if -no VLANs are created either the user has not specified -it or some error occured along the line. In either case -we can shutdown the interface. - -Signed-off-by: Hannes Reinecke -Signed-off-by: Robert Love ---- - fipvlan.c | 6 ++---- - 1 file changed, 2 insertions(+), 4 deletions(-) - -diff --git a/fipvlan.c b/fipvlan.c -index e51358f..4559e07 100644 ---- a/fipvlan.c -+++ b/fipvlan.c -@@ -857,8 +857,7 @@ static void cleanup_interfaces(void) - - if (config.automode) { - TAILQ_FOREACH(iff, &interfaces, list_node) { -- if (iff->linkup_sent && -- (!iff->running || !iff->req_sent || !iff->resp_recv)) { -+ if (iff->linkup_sent && TAILQ_EMPTY(&iff->vlans)) { - FIP_LOG_DBG("shutdown if %d", - iff->ifindex); - rtnl_set_iff_down(iff->ifindex, NULL); -@@ -872,8 +871,7 @@ static void cleanup_interfaces(void) - skipped++; - continue; - } -- if (iff->linkup_sent && -- (!iff->running || !iff->req_sent || !iff->resp_recv)) { -+ if (iff->linkup_sent && TAILQ_EMPTY(&iff->vlans)) { - FIP_LOG_DBG("shutdown if %d", - iff->ifindex); - rtnl_set_iff_down(iff->ifindex, NULL); --- -1.8.1.4 - diff --git a/0030-fcoe.service-Add-foreground-to-prevent-fcoemon-to-be.patch b/0005-fcoe.service-Add-foreground-to-prevent-fcoemon-to-be.patch similarity index 93% rename from 0030-fcoe.service-Add-foreground-to-prevent-fcoemon-to-be.patch rename to 0005-fcoe.service-Add-foreground-to-prevent-fcoemon-to-be.patch index 198c024..ed2f724 100644 --- a/0030-fcoe.service-Add-foreground-to-prevent-fcoemon-to-be.patch +++ b/0005-fcoe.service-Add-foreground-to-prevent-fcoemon-to-be.patch @@ -1,4 +1,4 @@ -From 1b7dc959d70679a3536ccbeb6b3a8d0905606537 Mon Sep 17 00:00:00 2001 +From 475d3e782f84beec9ce7b4557f2444df0e2f914f Mon Sep 17 00:00:00 2001 From: Hannes Reinecke Date: Wed, 16 Apr 2014 13:30:47 +0200 Subject: fcoe.service: Add '--foreground' to prevent fcoemon to be killed @@ -29,5 +29,5 @@ index 2e10bcd..b1d9567 100644 [Install] WantedBy=multi-user.target -- -1.7.12.4 +1.8.4.5 diff --git a/0005-fipvlan-start-VLAN-interface-from-netlink-handler.patch b/0005-fipvlan-start-VLAN-interface-from-netlink-handler.patch deleted file mode 100644 index eb82ebb..0000000 --- a/0005-fipvlan-start-VLAN-interface-from-netlink-handler.patch +++ /dev/null @@ -1,53 +0,0 @@ -From ef209fd4f68fb90f85f89612ebbf9c3e8843f33c Mon Sep 17 00:00:00 2001 -From: Hannes Reinecke -Date: Tue, 19 Nov 2013 20:26:02 +0000 -Subject: fipvlan: start VLAN interface from netlink handler - -Instead of starting the VLAN interface after the call to -vlan_create() we should rather start it after the netlink -message has been received. Otherwise we have a race window -as we might try to start a network interface which isn't -present yet. - -Signed-off-by: Hannes Reinecke -Signed-off-by: Robert Love ---- - fipvlan.c | 14 +++++++++----- - 1 file changed, 9 insertions(+), 5 deletions(-) - -diff --git a/fipvlan.c b/fipvlan.c -index 4559e07..148d823 100644 ---- a/fipvlan.c -+++ b/fipvlan.c -@@ -416,11 +416,16 @@ static void rtnl_recv_newlink(struct nlmsghdr *nh) - parse_vlaninfo(vlan, linkinfo[IFLA_INFO_DATA]); - iff->vid = *(int *)RTA_DATA(vlan[IFLA_VLAN_ID]); - real_dev = find_vlan_real_dev(iff); -- if (real_dev) -- TAILQ_INSERT_TAIL(&real_dev->vlans, -- iff, list_node); -- else -+ if (!real_dev) { - free(iff); -+ return; -+ } -+ TAILQ_INSERT_TAIL(&real_dev->vlans, iff, list_node); -+ if (!iff->running) { -+ FIP_LOG_DBG("vlan if %d not running, " -+ "starting", iff->ifindex); -+ rtnl_set_iff_up(iff->ifindex, NULL); -+ } - return; - } - /* ignore bonding interfaces */ -@@ -581,7 +586,6 @@ create_missing_vlans_list(struct fcf_list_head *list, const char *label) - vlan_name, strerror(-rc)); - else - printf("Created VLAN device %s\n", vlan_name); -- rtnl_set_iff_up(0, vlan_name); - } - printf("\n"); - } --- -1.8.1.4 - diff --git a/0006-fipvlan-Extract-create_missing_vlan-function-from-lo.patch b/0006-fipvlan-Extract-create_missing_vlan-function-from-lo.patch deleted file mode 100644 index a43f0d1..0000000 --- a/0006-fipvlan-Extract-create_missing_vlan-function-from-lo.patch +++ /dev/null @@ -1,110 +0,0 @@ -From 6ce709fd271ace5a549a43f11343638273684916 Mon Sep 17 00:00:00 2001 -From: Hannes Reinecke -Date: Tue, 19 Nov 2013 20:26:03 +0000 -Subject: fipvlan: Extract create_missing_vlan function from loop - -No functional change. - -Signed-off-by: Hannes Reinecke -Signed-off-by: Robert Love ---- - fipvlan.c | 74 +++++++++++++++++++++++++++++++++++---------------------------- - 1 file changed, 41 insertions(+), 33 deletions(-) - -diff --git a/fipvlan.c b/fipvlan.c -index 148d823..d91cc1c 100644 ---- a/fipvlan.c -+++ b/fipvlan.c -@@ -544,48 +544,56 @@ static int rtnl_listener_handler(struct nlmsghdr *nh, UNUSED void *arg) - return -1; - } - --static void --create_missing_vlans_list(struct fcf_list_head *list, const char *label) -+static int -+create_missing_vlan(struct fcf *fcf, const char *label) - { -- struct fcf *fcf; - struct iff *real_dev, *vlan; - char vlan_name[IFNAMSIZ]; - int rc; - -+ real_dev = lookup_iff(fcf->ifindex, NULL); -+ if (!real_dev) { -+ FIP_LOG_ERR(ENODEV, -+ "lost device %d with discovered %s?\n", -+ fcf->ifindex, label); -+ return -ENXIO; -+ } -+ if (!fcf->vlan) { -+ /* -+ * If the vlan notification has VLAN id 0, -+ * skip creating vlan interface, and FCoE is -+ * started on the physical interface itself. -+ */ -+ FIP_LOG_DBG("VLAN id is 0 for %s\n", real_dev->ifname); -+ return -EPERM; -+ } -+ vlan = lookup_vlan(fcf->ifindex, fcf->vlan); -+ if (vlan) { -+ FIP_LOG_DBG("VLAN %s.%d already exists as %s\n", -+ real_dev->ifname, fcf->vlan, vlan->ifname); -+ return -EEXIST; -+ } -+ snprintf(vlan_name, IFNAMSIZ, "%s.%d%s", -+ real_dev->ifname, fcf->vlan, config.suffix); -+ rc = vlan_create(fcf->ifindex, fcf->vlan, vlan_name); -+ if (rc < 0) -+ printf("Failed to create VLAN device %s\n\t%s\n", -+ vlan_name, strerror(-rc)); -+ else -+ printf("Created VLAN device %s\n", vlan_name); -+ return rc; -+} -+ -+static void -+create_missing_vlans_list(struct fcf_list_head *list, const char *label) -+{ -+ struct fcf *fcf; -+ - if (!config.create) - return; - - TAILQ_FOREACH(fcf, list, list_node) { -- real_dev = lookup_iff(fcf->ifindex, NULL); -- if (!real_dev) { -- FIP_LOG_ERR(ENODEV, -- "lost device %d with discovered %s?\n", -- fcf->ifindex, label); -- continue; -- } -- if (!fcf->vlan) { -- /* -- * If the vlan notification has VLAN id 0, -- * skip creating vlan interface, and FCoE is -- * started on the physical interface itself. -- */ -- FIP_LOG_DBG("VLAN id is 0 for %s\n", real_dev->ifname); -- continue; -- } -- vlan = lookup_vlan(fcf->ifindex, fcf->vlan); -- if (vlan) { -- FIP_LOG_DBG("VLAN %s.%d already exists as %s\n", -- real_dev->ifname, fcf->vlan, vlan->ifname); -- continue; -- } -- snprintf(vlan_name, IFNAMSIZ, "%s.%d%s", -- real_dev->ifname, fcf->vlan, config.suffix); -- rc = vlan_create(fcf->ifindex, fcf->vlan, vlan_name); -- if (rc < 0) -- printf("Failed to create VLAN device %s\n\t%s\n", -- vlan_name, strerror(-rc)); -- else -- printf("Created VLAN device %s\n", vlan_name); -+ create_missing_vlan(fcf, label); - } - printf("\n"); - } --- -1.8.1.4 - diff --git a/0035-fipvlan-fixup-return-value-on-error.patch b/0006-fipvlan-fixup-return-value-on-error.patch similarity index 76% rename from 0035-fipvlan-fixup-return-value-on-error.patch rename to 0006-fipvlan-fixup-return-value-on-error.patch index 209a662..34c47ba 100644 --- a/0035-fipvlan-fixup-return-value-on-error.patch +++ b/0006-fipvlan-fixup-return-value-on-error.patch @@ -1,4 +1,4 @@ -From 16765b7b091f8130ae001af7693895ffe0886a0e Mon Sep 17 00:00:00 2001 +From 311c26a073f4397f10408c288af28cf593f46336 Mon Sep 17 00:00:00 2001 From: Hannes Reinecke Date: Tue, 13 May 2014 09:44:17 +0200 Subject: fipvlan: fixup return value on error @@ -12,10 +12,10 @@ Signed-off-by: Hannes Reinecke 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/fipvlan.c b/fipvlan.c -index c5f3d3f..3300c68 100644 +index 288b011..9f3b07d 100644 --- a/fipvlan.c +++ b/fipvlan.c -@@ -982,7 +982,7 @@ int main(int argc, char **argv) +@@ -981,7 +981,7 @@ int main(int argc, char **argv) ns = rtnl_socket(); if (ns < 0) { @@ -24,7 +24,7 @@ index c5f3d3f..3300c68 100644 goto ns_err; } pfd_add(ns); -@@ -1002,7 +1002,7 @@ int main(int argc, char **argv) +@@ -1001,7 +1001,7 @@ int main(int argc, char **argv) "no interfaces to perform discovery on"); else FIP_LOG("no interfaces to perform discovery on"); @@ -34,5 +34,5 @@ index c5f3d3f..3300c68 100644 do_vlan_discovery(); -- -1.7.12.4 +1.8.4.5 diff --git a/0036-fipvlan-clean-up-state-machine-for-pfd_add.patch b/0007-fipvlan-clean-up-state-machine-for-pfd_add.patch similarity index 80% rename from 0036-fipvlan-clean-up-state-machine-for-pfd_add.patch rename to 0007-fipvlan-clean-up-state-machine-for-pfd_add.patch index 398461c..bba2d5c 100644 --- a/0036-fipvlan-clean-up-state-machine-for-pfd_add.patch +++ b/0007-fipvlan-clean-up-state-machine-for-pfd_add.patch @@ -1,4 +1,4 @@ -From b19353bfa3186334611109456b232e596335c15e Mon Sep 17 00:00:00 2001 +From 53a1a696c33fc64c76bd29831ed61c8e50fbc495 Mon Sep 17 00:00:00 2001 From: Hannes Reinecke Date: Wed, 14 May 2014 16:01:10 +0200 Subject: fipvlan: clean up state machine for pfd_add @@ -12,10 +12,10 @@ Signed-off-by: Hannes Reinecke 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/fipvlan.c b/fipvlan.c -index 3300c68..2211fd1 100644 +index 9f3b07d..a183233 100644 --- a/fipvlan.c +++ b/fipvlan.c -@@ -397,10 +397,17 @@ static void rtnl_recv_newlink(struct nlmsghdr *nh) +@@ -398,10 +398,17 @@ static void rtnl_recv_newlink(struct nlmsghdr *nh) /* already tracking, update operstate and return */ iff->running = running; if (!iff->running) { @@ -35,7 +35,7 @@ index 3300c68..2211fd1 100644 if (!config.start) return; -@@ -440,6 +447,7 @@ static void rtnl_recv_newlink(struct nlmsghdr *nh) +@@ -441,6 +448,7 @@ static void rtnl_recv_newlink(struct nlmsghdr *nh) iff->ifindex = ifm->ifi_index; iff->running = running; iff->fip_ready = false; @@ -43,7 +43,7 @@ index 3300c68..2211fd1 100644 if (ifla[IFLA_LINK]) iff->iflink = *(int *)RTA_DATA(ifla[IFLA_LINK]); else -@@ -827,7 +835,8 @@ static int probe_fip_interface(struct iff *iff) +@@ -814,7 +822,8 @@ static int probe_fip_interface(struct iff *iff) if (iff->req_sent) return 0; @@ -53,7 +53,7 @@ index 3300c68..2211fd1 100644 iff->ps = fip_socket(iff->ifindex, FIP_NONE); if (iff->ps < 0) { FIP_LOG_DBG("if %d not ready\n", iff->ifindex); -@@ -835,6 +844,8 @@ static int probe_fip_interface(struct iff *iff) +@@ -822,6 +831,8 @@ static int probe_fip_interface(struct iff *iff) } setsockopt(iff->ps, SOL_PACKET, PACKET_ORIGDEV, &origdev, sizeof(origdev)); @@ -63,5 +63,5 @@ index 3300c68..2211fd1 100644 iff->fip_ready = true; } -- -1.7.12.4 +1.8.4.5 diff --git a/0007-fipvlan-create-VLANs-from-netlink-handler.patch b/0007-fipvlan-create-VLANs-from-netlink-handler.patch deleted file mode 100644 index 8104028..0000000 --- a/0007-fipvlan-create-VLANs-from-netlink-handler.patch +++ /dev/null @@ -1,143 +0,0 @@ -From ac1fc202b5efda33df3445c2a60709264a0032e5 Mon Sep 17 00:00:00 2001 -From: Hannes Reinecke -Date: Tue, 19 Nov 2013 20:26:04 +0000 -Subject: fipvlan: create VLANs from netlink handler - -Instead of having its own loop we should better create VLANs -directly from the netlink handler. With this we can eliminate -the create_missing_vlans() loop. - -Signed-off-by: Hannes Reinecke -Signed-off-by: Robert Love ---- - fipvlan.c | 77 +++++++++++++++++++++++++-------------------------------------- - 1 file changed, 30 insertions(+), 47 deletions(-) - -diff --git a/fipvlan.c b/fipvlan.c -index d91cc1c..501f79c 100644 ---- a/fipvlan.c -+++ b/fipvlan.c -@@ -157,6 +157,8 @@ struct fcf { - struct fcf_list_head fcfs = TAILQ_HEAD_INITIALIZER(fcfs); - static struct fcf_list_head vn2vns = TAILQ_HEAD_INITIALIZER(vn2vns); - -+static int create_and_start_vlan(struct fcf *fcf, bool vn2vn); -+ - static struct fcf *lookup_fcf(struct fcf_list_head *head, int ifindex, - uint16_t vlan, unsigned char *mac) - { -@@ -316,6 +318,9 @@ static int fip_recv_vlan_note(struct fiphdr *fh, int ifindex, bool vn2vn) - fcf->vlan = vlan; - memcpy(fcf->mac_addr, tlvs.mac->mac_addr, ETHER_ADDR_LEN); - TAILQ_INSERT_TAIL(head, fcf, list_node); -+ if (!config.create) -+ continue; -+ create_and_start_vlan(fcf, vn2vn); - } - - return 0; -@@ -545,7 +550,7 @@ static int rtnl_listener_handler(struct nlmsghdr *nh, UNUSED void *arg) - } - - static int --create_missing_vlan(struct fcf *fcf, const char *label) -+create_and_start_vlan(struct fcf *fcf, bool vn2vn) - { - struct iff *real_dev, *vlan; - char vlan_name[IFNAMSIZ]; -@@ -555,7 +560,7 @@ create_missing_vlan(struct fcf *fcf, const char *label) - if (!real_dev) { - FIP_LOG_ERR(ENODEV, - "lost device %d with discovered %s?\n", -- fcf->ifindex, label); -+ fcf->ifindex, vn2vn ? "VN2VN" : "FCF"); - return -ENXIO; - } - if (!fcf->vlan) { -@@ -565,45 +570,31 @@ create_missing_vlan(struct fcf *fcf, const char *label) - * started on the physical interface itself. - */ - FIP_LOG_DBG("VLAN id is 0 for %s\n", real_dev->ifname); -- return -EPERM; -- } -- vlan = lookup_vlan(fcf->ifindex, fcf->vlan); -- if (vlan) { -- FIP_LOG_DBG("VLAN %s.%d already exists as %s\n", -- real_dev->ifname, fcf->vlan, vlan->ifname); -- return -EEXIST; -- } -- snprintf(vlan_name, IFNAMSIZ, "%s.%d%s", -- real_dev->ifname, fcf->vlan, config.suffix); -- rc = vlan_create(fcf->ifindex, fcf->vlan, vlan_name); -- if (rc < 0) -- printf("Failed to create VLAN device %s\n\t%s\n", -- vlan_name, strerror(-rc)); -- else -+ vlan = real_dev; -+ } else { -+ vlan = lookup_vlan(fcf->ifindex, fcf->vlan); -+ if (vlan) { -+ FIP_LOG_DBG("VLAN %s.%d already exists as %s\n", -+ real_dev->ifname, fcf->vlan, vlan->ifname); -+ return 0; -+ } -+ snprintf(vlan_name, IFNAMSIZ, "%s.%d%s", -+ real_dev->ifname, fcf->vlan, config.suffix); -+ rc = vlan_create(fcf->ifindex, fcf->vlan, vlan_name); -+ if (rc < 0) { -+ printf("Failed to create VLAN device %s\n\t%s\n", -+ vlan_name, strerror(-rc)); -+ return rc; -+ } - printf("Created VLAN device %s\n", vlan_name); -- return rc; --} -- --static void --create_missing_vlans_list(struct fcf_list_head *list, const char *label) --{ -- struct fcf *fcf; -- -- if (!config.create) -- return; -- -- TAILQ_FOREACH(fcf, list, list_node) { -- create_missing_vlan(fcf, label); - } -- printf("\n"); --} -- --static void create_missing_vlans(void) --{ -- if (!TAILQ_EMPTY(&fcfs)) -- create_missing_vlans_list(&fcfs, "FCF"); -- if (!TAILQ_EMPTY(&vn2vns)) -- create_missing_vlans_list(&vn2vns, "VN2VN"); -+ if (config.start && !vlan->running) { -+ FIP_LOG_DBG("%s if %d not running, " -+ "starting", vlan == real_dev ? "real" : "vlan", -+ vlan->ifindex); -+ rtnl_set_iff_up(vlan->ifindex, NULL); -+ } -+ return rc; - } - - static int fcoe_mod_instance_start(const char *ifname) -@@ -957,14 +948,6 @@ int main(int argc, char **argv) - do_vlan_discovery(); - - rc = print_results(); -- if (!rc && config.create) { -- create_missing_vlans(); -- /* -- * need to listen for the RTM_NETLINK messages -- * about the new VLAN devices -- */ -- recv_loop(500); -- } - if (!rc && config.start) - start_fcoe(); - --- -1.8.1.4 - diff --git a/0037-Use-correct-socket-for-fcoemon.socket.patch b/0008-Use-correct-socket-for-fcoemon.socket.patch similarity index 92% rename from 0037-Use-correct-socket-for-fcoemon.socket.patch rename to 0008-Use-correct-socket-for-fcoemon.socket.patch index 0b7134f..27d9f62 100644 --- a/0037-Use-correct-socket-for-fcoemon.socket.patch +++ b/0008-Use-correct-socket-for-fcoemon.socket.patch @@ -1,4 +1,4 @@ -From 348489108793c83ec6ebbdba87888888219ca59d Mon Sep 17 00:00:00 2001 +From 7f267031c30b6bc9fe708efac4d00060c583ae64 Mon Sep 17 00:00:00 2001 From: Hannes Reinecke Date: Mon, 28 Jul 2014 11:24:19 +0200 Subject: Use correct socket for fcoemon.socket diff --git a/0008-fipvlan-Start-FCoE-from-netlink-handler.patch b/0008-fipvlan-Start-FCoE-from-netlink-handler.patch deleted file mode 100644 index 2787d8e..0000000 --- a/0008-fipvlan-Start-FCoE-from-netlink-handler.patch +++ /dev/null @@ -1,154 +0,0 @@ -From 16e421a30caae0e2968941c7bde48f512d9ec106 Mon Sep 17 00:00:00 2001 -From: Hannes Reinecke -Date: Tue, 19 Nov 2013 20:26:05 +0000 -Subject: fipvlan: Start FCoE from netlink handler - -Whenever a VLAN or real device is found to have a FCF record -we can go ahead and start FCoE. With this change we can remove -the start_fcoe() loop. - -Signed-off-by: Hannes Reinecke -Signed-off-by: Robert Love ---- - fipvlan.c | 83 ++++++++++++++++++++++++++++++++++++--------------------------- - 1 file changed, 47 insertions(+), 36 deletions(-) - -diff --git a/fipvlan.c b/fipvlan.c -index 501f79c..9261b1d 100644 ---- a/fipvlan.c -+++ b/fipvlan.c -@@ -139,6 +139,7 @@ struct iff { - bool req_sent; - bool resp_recv; - bool fip_ready; -+ bool fcoe_started; - TAILQ_ENTRY(iff) list_node; - struct iff_list_head vlans; - }; -@@ -367,8 +368,14 @@ static void rtnl_recv_newlink(struct nlmsghdr *nh) - struct rtattr *linkinfo[__IFLA_INFO_MAX]; - struct rtattr *vlan[__IFLA_VLAN_MAX]; - struct iff *iff, *real_dev; -+ struct fcf_list_head *head; - bool running; - -+ if (config.vn2vn) -+ head = &vn2vns; -+ else -+ head = &fcfs; -+ - FIP_LOG_DBG("RTM_NEWLINK: ifindex %d, type %d, flags %x", - ifm->ifi_index, ifm->ifi_type, ifm->ifi_flags); - -@@ -383,12 +390,38 @@ static void rtnl_recv_newlink(struct nlmsghdr *nh) - running = !!(ifm->ifi_flags & (IFF_RUNNING | IFF_SLAVE)); - iff = lookup_iff(ifm->ifi_index, NULL); - if (iff) { -+ int ifindex; -+ - /* already tracking, update operstate and return */ - iff->running = running; -- if (iff->running) -- pfd_add(iff->ps); -- else -+ if (!iff->running) { - pfd_remove(iff->ps); -+ return; -+ } -+ pfd_add(iff->ps); -+ if (!config.start) -+ return; -+ -+ FIP_LOG_DBG("Checking for FCoE on %sif %d", -+ iff->is_vlan ? "VLAN " : "", iff->ifindex); -+ if (iff->is_vlan) { -+ real_dev = find_vlan_real_dev(iff); -+ if (!real_dev) { -+ FIP_LOG_ERR(ENODEV, "VLAN %d without a parent", -+ iff->ifindex); -+ return; -+ } -+ ifindex = real_dev->ifindex; -+ } else -+ ifindex = iff->ifindex; -+ -+ if (!iff->fcoe_started && -+ lookup_fcf(head, ifindex, iff->vid, NULL)) { -+ printf("Starting FCoE on interface %s\n", -+ iff->ifname); -+ fcoe_instance_start(iff->ifname); -+ iff->fcoe_started = true; -+ } - return; - } - -@@ -588,11 +621,19 @@ create_and_start_vlan(struct fcf *fcf, bool vn2vn) - } - printf("Created VLAN device %s\n", vlan_name); - } -- if (config.start && !vlan->running) { -- FIP_LOG_DBG("%s if %d not running, " -- "starting", vlan == real_dev ? "real" : "vlan", -+ if (!config.start) -+ return rc; -+ -+ if (!vlan->running) { -+ FIP_LOG_DBG("%s if %d not running, starting", -+ vlan == real_dev ? "real" : "vlan", - vlan->ifindex); - rtnl_set_iff_up(vlan->ifindex, NULL); -+ } else if (!vlan->fcoe_started) { -+ printf("Starting FCoE on interface %s\n", -+ vlan->ifname); -+ fcoe_instance_start(vlan->ifname); -+ vlan->fcoe_started = true; - } - return rc; - } -@@ -669,34 +710,6 @@ static void determine_libfcoe_interface(void) - } - } - --static void start_fcoe(void) --{ -- struct fcf_list_head *head; -- struct fcf *fcf; -- struct iff *iff; -- -- if (config.vn2vn) -- head = &vn2vns; -- else -- head = &fcfs; -- -- TAILQ_FOREACH(fcf, head, list_node) { -- if (fcf->vlan) -- iff = lookup_vlan(fcf->ifindex, fcf->vlan); -- else -- iff = lookup_iff(fcf->ifindex, NULL); -- if (!iff) { -- FIP_LOG_ERR(ENODEV, -- "Cannot start FCoE on VLAN %d, ifindex %d, " -- "because the VLAN device does not exist", -- fcf->vlan, fcf->ifindex); -- continue; -- } -- printf("Starting FCoE on interface %s\n", iff->ifname); -- fcoe_instance_start(iff->ifname); -- } --} -- - static void print_list(struct fcf_list_head *list, const char *label) - { - struct iff *iff; -@@ -948,8 +961,6 @@ int main(int argc, char **argv) - do_vlan_discovery(); - - rc = print_results(); -- if (!rc && config.start) -- start_fcoe(); - - cleanup_interfaces(); - --- -1.8.1.4 - diff --git a/0009-fipvlan-Update-wait-loop-to-wait-for-VLANs.patch b/0009-fipvlan-Update-wait-loop-to-wait-for-VLANs.patch deleted file mode 100644 index 2614d20..0000000 --- a/0009-fipvlan-Update-wait-loop-to-wait-for-VLANs.patch +++ /dev/null @@ -1,73 +0,0 @@ -From 9f5e376f3cf16bdd83d731fdc02a877e78a75c26 Mon Sep 17 00:00:00 2001 -From: Hannes Reinecke -Date: Tue, 19 Nov 2013 20:26:06 +0000 -Subject: fipvlan: Update wait loop to wait for VLANs - -The wait loop should be waiting for any VLAN to become activated, -otherwise we might fail too early. - -Signed-off-by: Hannes Reinecke -Signed-off-by: Robert Love ---- - fipvlan.c | 35 ++++++++++++++++++++++++++++++----- - 1 file changed, 30 insertions(+), 5 deletions(-) - -diff --git a/fipvlan.c b/fipvlan.c -index 9261b1d..e7a0016 100644 ---- a/fipvlan.c -+++ b/fipvlan.c -@@ -845,7 +845,7 @@ static void do_vlan_discovery(void) - struct iff *iff; - int retry_count = 0; - int skip_retry_count = 0; -- int skipped = 0; -+ int skipped = 0, retry_iff = 0; - retry: - skipped += send_vlan_requests(); - if (skipped && skip_retry_count++ < config.link_retry) { -@@ -856,13 +856,38 @@ retry: - goto retry; - } - recv_loop(200); -- TAILQ_FOREACH(iff, &interfaces, list_node) -+ TAILQ_FOREACH(iff, &interfaces, list_node) { -+ if (!iff->running && iff->linkup_sent) { -+ FIP_LOG_DBG("if %d: waiting for IFF_RUNNING [%d]\n", -+ iff->ifindex, retry_count); -+ retry_iff++; -+ continue; -+ } - /* if we did not receive a response, retry */ -- if (iff->req_sent && !iff->resp_recv && -- retry_count++ < MAX_VLAN_RETRIES) { -+ if (iff->req_sent && !iff->resp_recv) { - FIP_LOG_DBG("VLAN discovery RETRY [%d]", retry_count); -- goto retry; -+ retry_iff++; -+ continue; - } -+ if (config.create) { -+ struct iff *vlan; -+ -+ TAILQ_FOREACH(vlan, &iff->vlans, list_node) { -+ if (!vlan->running) { -+ FIP_LOG_DBG("vlan %d: waiting for " -+ "IFF_RUNNING [%d]", -+ vlan->ifindex, retry_count); -+ retry_iff++; -+ continue; -+ } -+ } -+ } -+ } -+ if (retry_iff && retry_count++ < config.link_retry) { -+ recv_loop(1000); -+ retry_iff = 0; -+ goto retry; -+ } - } - - static void cleanup_interfaces(void) --- -1.8.1.4 - diff --git a/0010-fipvlan-Re-send-VLAN-discovery.patch b/0010-fipvlan-Re-send-VLAN-discovery.patch deleted file mode 100644 index 960adf6..0000000 --- a/0010-fipvlan-Re-send-VLAN-discovery.patch +++ /dev/null @@ -1,34 +0,0 @@ -From 3ded1660f3e2eb79e4dd8155996b0802b6ee664b Mon Sep 17 00:00:00 2001 -From: Hannes Reinecke -Date: Tue, 19 Nov 2013 20:26:07 +0000 -Subject: fipvlan: Re-send VLAN discovery - -Some switches might decide to discard the VLAN discovery request, -so we should rather re-send it whenever we need to retry. -At worst we will be receiving several responses, but they'll be -discarded. - -Signed-off-by: Hannes Reinecke -Signed-off-by: Robert Love ---- - fipvlan.c | 4 +++- - 1 file changed, 3 insertions(+), 1 deletion(-) - -diff --git a/fipvlan.c b/fipvlan.c -index e7a0016..9ef4025 100644 ---- a/fipvlan.c -+++ b/fipvlan.c -@@ -865,7 +865,9 @@ retry: - } - /* if we did not receive a response, retry */ - if (iff->req_sent && !iff->resp_recv) { -- FIP_LOG_DBG("VLAN discovery RETRY [%d]", retry_count); -+ FIP_LOG_DBG("if %d: VLAN discovery RETRY [%d]", -+ iff->ifindex, retry_count); -+ iff->req_sent = false; - retry_iff++; - continue; - } --- -1.8.1.4 - diff --git a/0011-fipvlan-update-manpage.patch b/0011-fipvlan-update-manpage.patch deleted file mode 100644 index 4193a36..0000000 --- a/0011-fipvlan-update-manpage.patch +++ /dev/null @@ -1,61 +0,0 @@ -From 9ade5c67217915aaf38a9e239503d3c982ab6300 Mon Sep 17 00:00:00 2001 -From: Hannes Reinecke -Date: Tue, 19 Nov 2013 20:26:08 +0000 -Subject: fipvlan: update manpage - -'-d' was missing on one instance. - -Signed-off-by: Hannes Reinecke -Signed-off-by: Robert Love ---- - doc/fipvlan.8 | 8 ++++---- - doc/fipvlan.txt | 3 ++- - 2 files changed, 6 insertions(+), 5 deletions(-) - -diff --git a/doc/fipvlan.8 b/doc/fipvlan.8 -index f81cb3a..5eebfbf 100644 ---- a/doc/fipvlan.8 -+++ b/doc/fipvlan.8 -@@ -1,13 +1,13 @@ - '\" t - .\" Title: fipvlan - .\" Author: [FIXME: author] [see http://docbook.sf.net/el/author] --.\" Generator: DocBook XSL Stylesheets v1.76.1 --.\" Date: 03/18/2013 -+.\" Generator: DocBook XSL Stylesheets v1.78.1 -+.\" Date: 12/02/2013 - .\" Manual: Open-FCoE Tools - .\" Source: Open-FCoE - .\" Language: English - .\" --.TH "FIPVLAN" "8" "03/18/2013" "Open\-FCoE" "Open\-FCoE Tools" -+.TH "FIPVLAN" "8" "12/02/2013" "Open\-FCoE" "Open\-FCoE Tools" - .\" ----------------------------------------------------------------- - .\" * Define some portability stuff - .\" ----------------------------------------------------------------- -@@ -29,7 +29,7 @@ - fipvlan \- Fibre Channel over Ethernet VLAN Discovery - .SH "SYNOPSIS" - .sp --\fBfipvlan\fR [\-c|\-\-create] [\-s|\-\-start] [\-m|\-\-mode fabric|vn2vn] \fIinterfaces\fR -+\fBfipvlan\fR [\-c|\-\-create] [\-d|\-\-debug] [\-s|\-\-start] [\-m|\-\-mode fabric|vn2vn] \fIinterfaces\fR - .sp - \fBfipvlan\fR \-a|\-\-auto [\-c|\-\-create] [\-d|\-\-debug] [\-s|\-\-start] [\-m|\-\-mode fabric|vn2vn] [\-l|\-\-link\-retry \fIcount\fR] - .sp -diff --git a/doc/fipvlan.txt b/doc/fipvlan.txt -index 9699197..0f2151e 100644 ---- a/doc/fipvlan.txt -+++ b/doc/fipvlan.txt -@@ -19,7 +19,8 @@ fipvlan - Fibre Channel over Ethernet VLAN Discovery - - SYNOPSIS - -------- --*fipvlan* [-c|--create] [-s|--start] [-m|--mode fabric|vn2vn] _interfaces_ -+*fipvlan* [-c|--create] [-d|--debug] [-s|--start] -+ [-m|--mode fabric|vn2vn] _interfaces_ - - *fipvlan* -a|--auto [-c|--create] [-d|--debug] - [-s|--start] [-m|--mode fabric|vn2vn] [-l|--link-retry _count_] --- -1.8.1.4 - diff --git a/0012-fipvlan-Leave-link-up-if-requested.patch b/0012-fipvlan-Leave-link-up-if-requested.patch deleted file mode 100644 index 74bfd45..0000000 --- a/0012-fipvlan-Leave-link-up-if-requested.patch +++ /dev/null @@ -1,171 +0,0 @@ -From 0559d7dd7f3e1fff5a76d45bf4c0ca5944640af6 Mon Sep 17 00:00:00 2001 -From: Hannes Reinecke -Date: Tue, 19 Nov 2013 20:26:09 +0000 -Subject: fipvlan: Leave link up if requested - -This patch adds an option '-u' / '--link-up' to leave the network -interface running if a FIP response has been received. - -Signed-off-by: Hannes Reinecke -Signed-off-by: Robert Love ---- - doc/fipvlan.8 | 9 +++++++-- - doc/fipvlan.txt | 6 +++++- - fipvlan.c | 37 ++++++++++++++++++++++++++----------- - 3 files changed, 38 insertions(+), 14 deletions(-) - -diff --git a/doc/fipvlan.8 b/doc/fipvlan.8 -index 5eebfbf..927e557 100644 ---- a/doc/fipvlan.8 -+++ b/doc/fipvlan.8 -@@ -29,9 +29,9 @@ - fipvlan \- Fibre Channel over Ethernet VLAN Discovery - .SH "SYNOPSIS" - .sp --\fBfipvlan\fR [\-c|\-\-create] [\-d|\-\-debug] [\-s|\-\-start] [\-m|\-\-mode fabric|vn2vn] \fIinterfaces\fR -+\fBfipvlan\fR [\-c|\-\-create] [\-d|\-\-debug] [\-s|\-\-start] [\-m|\-\-mode fabric|vn2vn] [\-u|\-\-link\-up] \fIinterfaces\fR - .sp --\fBfipvlan\fR \-a|\-\-auto [\-c|\-\-create] [\-d|\-\-debug] [\-s|\-\-start] [\-m|\-\-mode fabric|vn2vn] [\-l|\-\-link\-retry \fIcount\fR] -+\fBfipvlan\fR \-a|\-\-auto [\-c|\-\-create] [\-d|\-\-debug] [\-s|\-\-start] [\-m|\-\-mode fabric|vn2vn] [\-l|\-\-link\-retry \fIcount\fR] [\-u|\-\-link\-up] - .sp - \fBfipvlan\fR \-h|\-\-help - .sp -@@ -86,6 +86,11 @@ Retry check for link up to - times\&. The link state is checked every 500 ms\&. The default number of retries is 20\&. - .RE - .PP -+\fB\-u\fR, \fB\-\-link\-up\fR -+.RS 4 -+Leave link up if a FIP response has been received\&. -+.RE -+.PP - \fB\-h\fR, \fB\-\-help\fR - .RS 4 - Display a help message with basic usage instructions -diff --git a/doc/fipvlan.txt b/doc/fipvlan.txt -index 0f2151e..cbed16f 100644 ---- a/doc/fipvlan.txt -+++ b/doc/fipvlan.txt -@@ -20,10 +20,11 @@ fipvlan - Fibre Channel over Ethernet VLAN Discovery - SYNOPSIS - -------- - *fipvlan* [-c|--create] [-d|--debug] [-s|--start] -- [-m|--mode fabric|vn2vn] _interfaces_ -+ [-m|--mode fabric|vn2vn] [-u|--link-up] _interfaces_ - - *fipvlan* -a|--auto [-c|--create] [-d|--debug] - [-s|--start] [-m|--mode fabric|vn2vn] [-l|--link-retry _count_] -+ [-u|--link-up] - - *fipvlan* -h|--help - -@@ -76,6 +77,9 @@ OPTIONS - Retry check for link up to _count_ times. The link state is - checked every 500 ms. The default number of retries is 20. - -+*-u*, *--link-up*:: -+ Leave link up if a FIP response has been received. -+ - *-h*, *--help*:: - Display a help message with basic usage instructions - -diff --git a/fipvlan.c b/fipvlan.c -index 9ef4025..a865481 100644 ---- a/fipvlan.c -+++ b/fipvlan.c -@@ -67,6 +67,7 @@ struct { - bool start; - bool vn2vn; - bool debug; -+ bool link_up; - int link_retry; - char suffix[256]; - } config = { -@@ -76,6 +77,7 @@ struct { - .create = false, - .vn2vn = false, - .debug = false, -+ .link_up = false, - .link_retry = 20, - .suffix = "", - }; -@@ -478,7 +480,7 @@ static void rtnl_recv_newlink(struct nlmsghdr *nh) - - /* command line arguments */ - --#define GETOPT_STR "acdf:l:m:shv" -+#define GETOPT_STR "acdf:l:m:suhv" - - static const struct option long_options[] = { - { "auto", no_argument, NULL, 'a' }, -@@ -488,6 +490,7 @@ static const struct option long_options[] = { - { "suffix", required_argument, NULL, 'f' }, - { "link-retry", required_argument, NULL, 'l' }, - { "mode", required_argument, NULL, 'm' }, -+ { "link-up", required_argument, NULL, 'u' }, - { "help", no_argument, NULL, 'h' }, - { "version", no_argument, NULL, 'v' }, - { NULL, 0, NULL, 0 } -@@ -505,6 +508,7 @@ static void help(int status) - " -f, --suffix Append the suffix to VLAN interface name\n" - " -l, --link-retry Number of retries for link up\n" - " -m, --mode Link mode, either fabric or vn2vn\n" -+ " -u, --link-up Leave link up after FIP response\n" - " -h, --help Display this help and exit\n" - " -v, --version Display version information and exit\n", - exe); -@@ -551,6 +555,9 @@ static void parse_cmdline(int argc, char **argv) - exit(1); - } - break; -+ case 'u': -+ config.link_up = true; -+ break; - case 'h': - help(0); - break; -@@ -900,11 +907,15 @@ static void cleanup_interfaces(void) - - if (config.automode) { - TAILQ_FOREACH(iff, &interfaces, list_node) { -- if (iff->linkup_sent && TAILQ_EMPTY(&iff->vlans)) { -- FIP_LOG_DBG("shutdown if %d", -- iff->ifindex); -- rtnl_set_iff_down(iff->ifindex, NULL); -- iff->linkup_sent = false; -+ if (iff->linkup_sent) { -+ if (config.link_up && iff->resp_recv) -+ continue; -+ if (TAILQ_EMPTY(&iff->vlans)) { -+ FIP_LOG_DBG("shutdown if %d", -+ iff->ifindex); -+ rtnl_set_iff_down(iff->ifindex, NULL); -+ iff->linkup_sent = false; -+ } - } - } - } else { -@@ -914,11 +925,15 @@ static void cleanup_interfaces(void) - skipped++; - continue; - } -- if (iff->linkup_sent && TAILQ_EMPTY(&iff->vlans)) { -- FIP_LOG_DBG("shutdown if %d", -- iff->ifindex); -- rtnl_set_iff_down(iff->ifindex, NULL); -- iff->linkup_sent = false; -+ if (iff->linkup_sent) { -+ if (config.link_up && iff->resp_recv) -+ continue; -+ if (TAILQ_EMPTY(&iff->vlans)) { -+ FIP_LOG_DBG("shutdown if %d", -+ iff->ifindex); -+ rtnl_set_iff_down(iff->ifindex, NULL); -+ iff->linkup_sent = false; -+ } - } - } - } --- -1.8.1.4 - diff --git a/0013-fipvlan-Update-manpage-to-reflect-correct-timeout.patch b/0013-fipvlan-Update-manpage-to-reflect-correct-timeout.patch deleted file mode 100644 index 59d44c4..0000000 --- a/0013-fipvlan-Update-manpage-to-reflect-correct-timeout.patch +++ /dev/null @@ -1,43 +0,0 @@ -From 08d9872fb579c0764115beadf588cc52c9f7d97a Mon Sep 17 00:00:00 2001 -From: Hannes Reinecke -Date: Tue, 19 Nov 2013 20:26:10 +0000 -Subject: fipvlan: Update manpage to reflect correct timeout - -The timeout per loop is 1000ms, not 500ms. - -Signed-off-by: Lee Duncan -Signed-off-by: Robert Love ---- - doc/fipvlan.8 | 2 +- - doc/fipvlan.txt | 2 +- - 2 files changed, 2 insertions(+), 2 deletions(-) - -diff --git a/doc/fipvlan.8 b/doc/fipvlan.8 -index 927e557..1d2b707 100644 ---- a/doc/fipvlan.8 -+++ b/doc/fipvlan.8 -@@ -83,7 +83,7 @@ to VLAN interface names\&. - .RS 4 - Retry check for link up to - \fIcount\fR --times\&. The link state is checked every 500 ms\&. The default number of retries is 20\&. -+times\&. The link state is checked every 1000 ms\&. The default number of retries is 20\&. - .RE - .PP - \fB\-u\fR, \fB\-\-link\-up\fR -diff --git a/doc/fipvlan.txt b/doc/fipvlan.txt -index cbed16f..5ba0324 100644 ---- a/doc/fipvlan.txt -+++ b/doc/fipvlan.txt -@@ -75,7 +75,7 @@ OPTIONS - - *-l*, *--link-retry* _count_:: - Retry check for link up to _count_ times. The link state is -- checked every 500 ms. The default number of retries is 20. -+ checked every 1000 ms. The default number of retries is 20. - - *-u*, *--link-up*:: - Leave link up if a FIP response has been received. --- -1.8.1.4 - diff --git a/0014-fipvlan-Do-not-shut-down-FCoE-connections-on-physica.patch b/0014-fipvlan-Do-not-shut-down-FCoE-connections-on-physica.patch deleted file mode 100644 index ea59f47..0000000 --- a/0014-fipvlan-Do-not-shut-down-FCoE-connections-on-physica.patch +++ /dev/null @@ -1,41 +0,0 @@ -From 86928f2be78cfb80ff61856e1b7189ed88c836c1 Mon Sep 17 00:00:00 2001 -From: Hannes Reinecke -Date: Tue, 19 Nov 2013 20:26:11 +0000 -Subject: fipvlan: Do not shut down FCoE connections on physical interface - -When FCoE is started on the physical interface fipvlan will -shutdown the interface upon exit. - -References: bnc#814151 - -Signed-off-by: Hannes Reinecke -Signed-off-by: Robert Love ---- - fipvlan.c | 4 ++++ - 1 file changed, 4 insertions(+) - -diff --git a/fipvlan.c b/fipvlan.c -index a865481..3c91930 100644 ---- a/fipvlan.c -+++ b/fipvlan.c -@@ -910,6 +910,8 @@ static void cleanup_interfaces(void) - if (iff->linkup_sent) { - if (config.link_up && iff->resp_recv) - continue; -+ if (iff->fcoe_started) -+ continue; - if (TAILQ_EMPTY(&iff->vlans)) { - FIP_LOG_DBG("shutdown if %d", - iff->ifindex); -@@ -928,6 +930,8 @@ static void cleanup_interfaces(void) - if (iff->linkup_sent) { - if (config.link_up && iff->resp_recv) - continue; -+ if (iff->fcoe_started) -+ continue; - if (TAILQ_EMPTY(&iff->vlans)) { - FIP_LOG_DBG("shutdown if %d", - iff->ifindex); --- -1.8.1.4 - diff --git a/0015-fipvlan-break-out-of-receive-loop-on-error.patch b/0015-fipvlan-break-out-of-receive-loop-on-error.patch deleted file mode 100644 index e8b5d83..0000000 --- a/0015-fipvlan-break-out-of-receive-loop-on-error.patch +++ /dev/null @@ -1,36 +0,0 @@ -From 78ea81aaef57b5b40fdc86335a7e6a432a72ad48 Mon Sep 17 00:00:00 2001 -From: Hannes Reinecke -Date: Tue, 19 Nov 2013 20:26:12 +0000 -Subject: fipvlan: break out of receive loop on error - -When fip_recv() returns an error we need to break out of the -receive loop; otherwise we might be stuck in there forever. - -Signed-off-by: Hannes Reinecke -Signed-off-by: Robert Love ---- - fipvlan.c | 8 ++++++-- - 1 file changed, 6 insertions(+), 2 deletions(-) - -diff --git a/fipvlan.c b/fipvlan.c -index 3c91930..198f0ee 100644 ---- a/fipvlan.c -+++ b/fipvlan.c -@@ -772,8 +772,12 @@ static void recv_loop(int timeout) - rtnl_recv(pfd[0].fd, rtnl_listener_handler, NULL); - /* everything else should be FIP packet sockets */ - for (i = 1; i < pfd_len; i++) { -- if (pfd[i].revents & POLLIN) -- fip_recv(pfd[i].fd, fip_vlan_handler, NULL); -+ if (pfd[i].revents & POLLIN) { -+ rc = fip_recv(pfd[i].fd, fip_vlan_handler, -+ NULL); -+ if (rc < 0) -+ break; -+ } - } - } - } --- -1.8.1.4 - diff --git a/0016-fipvlan-handle-errors-from-fip-socket-creation.patch b/0016-fipvlan-handle-errors-from-fip-socket-creation.patch deleted file mode 100644 index 9a4866b..0000000 --- a/0016-fipvlan-handle-errors-from-fip-socket-creation.patch +++ /dev/null @@ -1,129 +0,0 @@ -From 45d0e704e82b1c00d3e45745ac3d466fce4c953c Mon Sep 17 00:00:00 2001 -From: Hannes Reinecke -Date: Tue, 19 Nov 2013 20:26:13 +0000 -Subject: fipvlan: handle errors from fip socket creation - -If we don't receive a SAN MAC address it's pointless to try -to create a socket, as FCoE itself cannot continue. So we -should be handling errors from socket creation and abort -VLAN discovery early. - -Signed-off-by: Hannes Reinecke -Signed-off-by: Robert Love ---- - fipvlan.c | 19 ++++++++++++------- - lib/fip.c | 20 ++++++++++++++------ - 2 files changed, 26 insertions(+), 13 deletions(-) - -diff --git a/fipvlan.c b/fipvlan.c -index 198f0ee..5bedea1 100644 ---- a/fipvlan.c -+++ b/fipvlan.c -@@ -790,7 +790,7 @@ static void find_interfaces(int ns) - - static int probe_fip_interface(struct iff *iff) - { -- int origdev = 1; -+ int origdev = 1, rc; - - if (iff->resp_recv) - return 0; -@@ -812,6 +812,10 @@ static int probe_fip_interface(struct iff *iff) - - if (!iff->fip_ready) { - iff->ps = fip_socket(iff->ifindex, FIP_NONE); -+ if (iff->ps < 0) { -+ FIP_LOG_DBG("if %d not ready\n", iff->ifindex); -+ return 0; -+ } - setsockopt(iff->ps, SOL_PACKET, PACKET_ORIGDEV, - &origdev, sizeof(origdev)); - pfd_add(iff->ps); -@@ -819,13 +823,14 @@ static int probe_fip_interface(struct iff *iff) - } - - if (config.vn2vn) -- fip_send_vlan_request(iff->ps, iff->ifindex, iff->mac_addr, -- FIP_ALL_VN2VN); -+ rc = fip_send_vlan_request(iff->ps, iff->ifindex, -+ iff->mac_addr, FIP_ALL_VN2VN); - else -- fip_send_vlan_request(iff->ps, iff->ifindex, iff->mac_addr, -- FIP_ALL_FCF); -- iff->req_sent = true; -- return 0; -+ rc = fip_send_vlan_request(iff->ps, iff->ifindex, -+ iff->mac_addr, FIP_ALL_FCF); -+ if (rc == 0) -+ iff->req_sent = true; -+ return rc == 0 ? 0 : 1; - } - - static int send_vlan_requests(void) -diff --git a/lib/fip.c b/lib/fip.c -index 73bf03e..6657b61 100644 ---- a/lib/fip.c -+++ b/lib/fip.c -@@ -95,10 +95,11 @@ static int fip_get_sanmac(int ifindex, unsigned char *addr) - * @mac: MAC address to add or delete - * @multi: false if unicast, true if multicast address - */ --static void -+static int - fip_socket_add_addr(int s, int ifindex, bool add, const __u8 *mac, bool multi) - { - struct packet_mreq mr; -+ int rc = 0; - - memset(&mr, 0, sizeof(mr)); - mr.mr_ifindex = ifindex; -@@ -107,9 +108,12 @@ fip_socket_add_addr(int s, int ifindex, bool add, const __u8 *mac, bool multi) - memcpy(mr.mr_address, mac, ETHER_ADDR_LEN); - if (setsockopt(s, SOL_PACKET, - add ? PACKET_ADD_MEMBERSHIP : PACKET_DROP_MEMBERSHIP, -- &mr, sizeof(mr)) < 0) -+ &mr, sizeof(mr)) < 0) { - FIP_LOG_DBG("PACKET_%s_MEMBERSHIP:failed\n", - add ? "ADD" : "DROP"); -+ rc = -errno; -+ } -+ return rc; - } - - /** -@@ -118,16 +122,16 @@ fip_socket_add_addr(int s, int ifindex, bool add, const __u8 *mac, bool multi) - * @ifindex: network interface index to send on - * @add: 1 to add 0 to del - */ --static void fip_socket_sanmac(int s, int ifindex, int add) -+static int fip_socket_sanmac(int s, int ifindex, int add) - { - unsigned char smac[ETHER_ADDR_LEN]; - - if (fip_get_sanmac(ifindex, smac)) { - FIP_LOG_DBG("%s: no sanmac, ifindex %d\n", __func__, ifindex); -- return; -+ return -ENXIO; - } - -- fip_socket_add_addr(s, ifindex, add, smac, false); -+ return fip_socket_add_addr(s, ifindex, add, smac, false); - } - - /** -@@ -210,7 +214,11 @@ int fip_socket(int ifindex, enum fip_multi multi) - if (s < 0) - return s; - -- fip_socket_sanmac(s, ifindex, 1); -+ rc = fip_socket_sanmac(s, ifindex, 1); -+ if (rc < 0) { -+ close(s); -+ return rc; -+ } - if (multi != FIP_NONE) - fip_socket_multi(s, ifindex, true, multi); - --- -1.8.1.4 - diff --git a/0017-fipvlan-filter-interfaces-from-rtnl_getlink.patch b/0017-fipvlan-filter-interfaces-from-rtnl_getlink.patch deleted file mode 100644 index dd64c16..0000000 --- a/0017-fipvlan-filter-interfaces-from-rtnl_getlink.patch +++ /dev/null @@ -1,174 +0,0 @@ -From 6bde8d1b9f63a7d110fab53e3791040cbe9b101f Mon Sep 17 00:00:00 2001 -From: Hannes Reinecke -Date: Tue, 19 Nov 2013 20:26:14 +0000 -Subject: fipvlan: filter interfaces from rtnl_getlink - -Instead of carrying around two different ways on selecting -interfaces we should be filter the list of possible interfaces -during RTM_GETLINK / RTM_NEWLINK and use only one list. -This safes us from having implement two codepaths for doing -the same thing. - -Signed-off-by: Hannes Reinecke -Signed-off-by: Robert Love ---- - fipvlan.c | 98 ++++++++++++++++++++++++++++----------------------------------- - 1 file changed, 43 insertions(+), 55 deletions(-) - -diff --git a/fipvlan.c b/fipvlan.c -index 5bedea1..1b8492d 100644 ---- a/fipvlan.c -+++ b/fipvlan.c -@@ -447,6 +447,19 @@ static void rtnl_recv_newlink(struct nlmsghdr *nh) - memcpy(iff->mac_addr, RTA_DATA(ifla[IFLA_ADDRESS]), ETHER_ADDR_LEN); - strncpy(iff->ifname, RTA_DATA(ifla[IFLA_IFNAME]), IFNAMSIZ); - -+ if (!config.automode) { -+ int i, iff_selected = 0; -+ -+ for (i = 0; i < config.namec; i++) { -+ if (!strcmp(iff->ifname, config.namev[i])) -+ iff_selected = 1; -+ } -+ if (!iff_selected) { -+ FIP_LOG_DBG("ignoring if %s\n", iff->ifname); -+ free(iff); -+ return; -+ } -+ } - if (ifla[IFLA_LINKINFO]) { - parse_linkinfo(linkinfo, ifla[IFLA_LINKINFO]); - /* Track VLAN devices separately */ -@@ -836,22 +849,10 @@ static int probe_fip_interface(struct iff *iff) - static int send_vlan_requests(void) - { - struct iff *iff; -- int i; - int skipped = 0; - -- if (config.automode) { -- TAILQ_FOREACH(iff, &interfaces, list_node) { -- skipped += probe_fip_interface(iff); -- } -- } else { -- for (i = 0; i < config.namec; i++) { -- iff = lookup_iff(0, config.namev[i]); -- if (!iff) { -- skipped++; -- continue; -- } -- skipped += probe_fip_interface(iff); -- } -+ TAILQ_FOREACH(iff, &interfaces, list_node) { -+ skipped += probe_fip_interface(iff); - } - return skipped; - } -@@ -865,7 +866,8 @@ static void do_vlan_discovery(void) - retry: - skipped += send_vlan_requests(); - if (skipped && skip_retry_count++ < config.link_retry) { -- FIP_LOG_DBG("waiting for IFF_RUNNING [%d]\n", skip_retry_count); -+ FIP_LOG_DBG("waiting for IFF_RUNNING [%d/%d]\n", -+ skip_retry_count, config.link_retry); - recv_loop(500); - skipped = 0; - retry_count = 0; -@@ -873,6 +875,11 @@ retry: - } - recv_loop(200); - TAILQ_FOREACH(iff, &interfaces, list_node) { -+ if (!iff->fip_ready) { -+ FIP_LOG_DBG("if %d: skipping, FIP not ready\n", -+ iff->ifindex); -+ continue; -+ } - if (!iff->running && iff->linkup_sent) { - FIP_LOG_DBG("if %d: waiting for IFF_RUNNING [%d]\n", - iff->ifindex, retry_count); -@@ -911,47 +918,23 @@ retry: - static void cleanup_interfaces(void) - { - struct iff *iff; -- int i; -- int skipped = 0; - -- if (config.automode) { -- TAILQ_FOREACH(iff, &interfaces, list_node) { -- if (iff->linkup_sent) { -- if (config.link_up && iff->resp_recv) -- continue; -- if (iff->fcoe_started) -- continue; -- if (TAILQ_EMPTY(&iff->vlans)) { -- FIP_LOG_DBG("shutdown if %d", -- iff->ifindex); -- rtnl_set_iff_down(iff->ifindex, NULL); -- iff->linkup_sent = false; -- } -- } -- } -- } else { -- for (i = 0; i < config.namec; i++) { -- iff = lookup_iff(0, config.namev[i]); -- if (!iff) { -- skipped++; -+ TAILQ_FOREACH(iff, &interfaces, list_node) { -+ if (iff->linkup_sent) { -+ if (config.link_up && iff->resp_recv) - continue; -- } -- if (iff->linkup_sent) { -- if (config.link_up && iff->resp_recv) -- continue; -- if (iff->fcoe_started) -- continue; -- if (TAILQ_EMPTY(&iff->vlans)) { -- FIP_LOG_DBG("shutdown if %d", -- iff->ifindex); -- rtnl_set_iff_down(iff->ifindex, NULL); -- iff->linkup_sent = false; -- } -+ if (iff->fcoe_started) -+ continue; -+ if (TAILQ_EMPTY(&iff->vlans)) { -+ FIP_LOG_DBG("shutdown if %d", -+ iff->ifindex); -+ rtnl_set_iff_down(iff->ifindex, NULL); -+ iff->linkup_sent = false; - } - } - } -- - } -+ - /* this is to not require headers from libcap */ - static inline int capget(cap_user_header_t hdrp, cap_user_data_t datap) - { -@@ -1003,13 +986,18 @@ int main(int argc, char **argv) - determine_libfcoe_interface(); - - find_interfaces(ns); -- while ((TAILQ_EMPTY(&interfaces)) && ++find_cnt < 5) { -- FIP_LOG_DBG("no interfaces found, trying again"); -- find_interfaces(ns); -- } -+ if (config.automode) -+ while ((TAILQ_EMPTY(&interfaces)) && ++find_cnt < 5) { -+ FIP_LOG_DBG("no interfaces found, trying again"); -+ find_interfaces(ns); -+ } - - if (TAILQ_EMPTY(&interfaces)) { -- FIP_LOG_ERR(ENODEV, "no interfaces to perform discovery on"); -+ if (config.automode) -+ FIP_LOG_ERR(ENODEV, -+ "no interfaces to perform discovery on"); -+ else -+ FIP_LOG("no interfaces to perform discovery on"); - exit(1); - } - --- -1.8.1.4 - diff --git a/0018-Add-missing-DESTDIR-when-installing-bash-completion.patch b/0018-Add-missing-DESTDIR-when-installing-bash-completion.patch deleted file mode 100644 index c528751..0000000 --- a/0018-Add-missing-DESTDIR-when-installing-bash-completion.patch +++ /dev/null @@ -1,27 +0,0 @@ -From 0e5d536b20ed481d5a057e9bfee772b4c53bdb0f Mon Sep 17 00:00:00 2001 -From: Hannes Reinecke -Date: Fri, 6 Dec 2013 19:51:51 +0000 -Subject: build: Add missing 'DESTDIR' when installing bash completion - -Signed-off-by: Hannes Reinecke -Signed-off-by: Robert Love ---- - Makefile.am | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/Makefile.am b/Makefile.am -index 5cbc15f..e93aa8f 100644 ---- a/Makefile.am -+++ b/Makefile.am -@@ -67,7 +67,7 @@ init_d_SCRIPTS = etc/initd/fcoe - - dist_noinst_DATA = README COPYING INSTALL fcoe-utils.spec etc/config - --BASH_COMPLETION_DIR=/etc/bash_completion.d/ -+BASH_COMPLETION_DIR=$(DESTDIR)/etc/bash_completion.d/ - - install-data-hook: - if [ ! -f ${DESTDIR}${fcoe_configdir}/config ] ; then \ --- -1.8.1.4 - diff --git a/0019-Fix-build-with-Wl-as-needed.patch b/0019-Fix-build-with-Wl-as-needed.patch deleted file mode 100644 index 91ef804..0000000 --- a/0019-Fix-build-with-Wl-as-needed.patch +++ /dev/null @@ -1,46 +0,0 @@ -From 9869390ff1a6ecca1e6599e37128a07d237655e6 Mon Sep 17 00:00:00 2001 -From: Hannes Reinecke -Date: Fri, 6 Dec 2013 19:51:52 +0000 -Subject: build: Fix build with '-Wl,--as-needed' - -The libraries need to be specified correctly to get '--as-needed' -to work. - -Signed-off-by: Hannes Reinecke -Signed-off-by: Robert Love ---- - Makefile.am | 9 +++------ - 1 file changed, 3 insertions(+), 6 deletions(-) - -diff --git a/Makefile.am b/Makefile.am -index e93aa8f..ba08924 100644 ---- a/Makefile.am -+++ b/Makefile.am -@@ -9,21 +9,18 @@ AM_CFLAGS = -Wall -Wformat=2 -Werror -Wmissing-prototypes -Wstrict-prototypes - - ## rules for building fcoeadm - fcoeadm_SOURCES = fcoeadm.c fcoeadm_display.c --fcoeadm_LDADD = lib/libutil.a libopenfcoe.a -+fcoeadm_LDADD = lib/libutil.a libopenfcoe.a $(HBAAPI_LIBS) - fcoeadm_CFLAGS = $(AM_CFLAGS) $(HBAAPI_CFLAGS) --fcoeadm_LDFLAGS = $(AM_LDFLAGS) $(HBAAPI_LIBS) - - ## rules for building fcoemon - fcoemon_SOURCES = fcoemon.c --fcoemon_LDADD = lib/libutil.a -+fcoemon_LDADD = lib/libutil.a -lrt - fcoemon_CFLAGS = $(AM_CFLAGS) $(DCBD_CFLAGS) --fcoemon_LDFLAGS = $(AM_LDFLAGS) -lrt - - ## rules for building fcping - fcping_SOURCES = fcping.c --fcping_LDADD = lib/libutil.a -+fcping_LDADD = lib/libutil.a $(HBAAPI_LIBS) -lrt - fcping_CFLAGS = $(AM_CFLAGS) $(HBAAPI_CFLAGS) --fcping_LDFLAGS = $(AM_LDFLAGS) $(HBAAPI_LIBS) -lrt - - ## rules for building fipvlan - fipvlan_SOURCES = fipvlan.c --- -1.8.1.4 - diff --git a/0020-Fix-integer-formatting.patch b/0020-Fix-integer-formatting.patch deleted file mode 100644 index 64e43bf..0000000 --- a/0020-Fix-integer-formatting.patch +++ /dev/null @@ -1,81 +0,0 @@ -From e566b3ecac367cf59a1d3995b32591bba2ad2972 Mon Sep 17 00:00:00 2001 -From: Hannes Reinecke -Date: Fri, 6 Dec 2013 19:51:53 +0000 -Subject: Fix integer formatting - -Properly use inttypes when printing 64bit values. - -Signed-off-by: Hannes Reinecke -Signed-off-by: Robert Love ---- - fcoeadm_display.c | 4 ++-- - fcoemon.c | 2 +- - fcping.c | 11 ++++++----- - 3 files changed, 9 insertions(+), 8 deletions(-) - -diff --git a/fcoeadm_display.c b/fcoeadm_display.c -index 287e370..9b96aa7 100644 ---- a/fcoeadm_display.c -+++ b/fcoeadm_display.c -@@ -1417,8 +1417,8 @@ static void print_fcoe_fcf_device(void *ep, UNUSED void *arg) - if (!buf) - buf = temp; - printf(" Connection Mode: %s\n", buf); -- printf(" Fabric Name: 0x%016lx\n", fcf->fabric_name); -- printf(" Switch Name 0x%016lx\n", fcf->switch_name); -+ printf(" Fabric Name: 0x%016" PRIx64 "\n", fcf->fabric_name); -+ printf(" Switch Name 0x%016" PRIx64 "\n", fcf->switch_name); - mac2str(fcf->mac, mac, MAX_STR_LEN); - printf(" MAC Address: %s\n", mac); - printf(" FCF Priority: %u\n", fcf->priority); -diff --git a/fcoemon.c b/fcoemon.c -index a5babfa..be4c74d 100644 ---- a/fcoemon.c -+++ b/fcoemon.c -@@ -2637,7 +2637,7 @@ static void fcm_dcbd_get_oper(struct fcm_netif *ff, char *resp, char *cp) - - if (ep) { - FCM_LOG_DEV(ff, "Invalid get oper response " -- "parse error byte %ld, resp %s", ep - cp, cp); -+ "parse error byte %td, resp %s", ep - cp, cp); - fcm_dcbd_state_set(ff, FCD_ERROR); - } else { - if (val && fcoe_config.debug) -diff --git a/fcping.c b/fcping.c -index c6f74a6..399b778 100644 ---- a/fcping.c -+++ b/fcping.c -@@ -25,6 +25,7 @@ - #include - #include - #include -+#include - #include - #include - #include -@@ -810,17 +811,17 @@ static void fp_check_data_len(void) - printf("Maximum ECHO data allowed by the Fabric (0x%06x) : %d bytes.\n" - "Maximum ECHO data allowed by the Source (0x%06x) : %d bytes.\n" - "Maximum ECHO data allowed by the Target (0x%06x) : %d bytes.\n" -- "Maximum ECHO data requested from user input (-s) : %lu " -+ "Maximum ECHO data requested from user input (-s) : %" PRIu32 " " - "(default %d) bytes.\n", - FC_WKA_FABRIC_CONTROLLER, flen, sid, slen, fp_did, dlen, -- fp_len - FP_LEN_ECHO, FP_LEN_DEF); -+ (uint32_t)(fp_len - FP_LEN_ECHO), FP_LEN_DEF); - - /* fp_len is the total payload, including 4 bytes for ECHO command */ - fp_len = MIN(fp_len, plen + FP_LEN_ECHO); -- printf("Actual FC ELS ECHO data size used : %lu bytes.\n" -+ printf("Actual FC ELS ECHO data size used : %" PRIu32 " bytes.\n" - "Actual FC ELS ECHO payload size used : %d bytes " -- "(including %ld bytes ECHO command).\n", -- fp_len - FP_LEN_ECHO, fp_len, FP_LEN_ECHO); -+ "(including %zu bytes ECHO command).\n", -+ (uint32_t)(fp_len - FP_LEN_ECHO), fp_len, FP_LEN_ECHO); - } - - /* --- -1.8.1.4 - diff --git a/0021-fcnsq-Fixup-help-text.patch b/0021-fcnsq-Fixup-help-text.patch deleted file mode 100644 index 8543652..0000000 --- a/0021-fcnsq-Fixup-help-text.patch +++ /dev/null @@ -1,29 +0,0 @@ -From 6750b2abc6d39867954437fd58e8a593613b9c37 Mon Sep 17 00:00:00 2001 -From: Hannes Reinecke -Date: Fri, 6 Dec 2013 19:51:54 +0000 -Subject: fcnsq: Fixup help text - -The help text was missing the '-q' short option. - -Signed-off-by: Hannes Reinecke -Signed-off-by: Robert Love ---- - fcnsq.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/fcnsq.c b/fcnsq.c -index 7b45a32..2510f1c 100644 ---- a/fcnsq.c -+++ b/fcnsq.c -@@ -365,7 +365,7 @@ static void help(int status) - " --gspn \n" - " --gsnn \n" - "Options:\n" -- " --quiet print minimal results on success, and no error messages\n" -+ " --quiet|-q print minimal results on success, and no error messages\n" - "\n" - "Port IDs and World Wide Names must be specified in hexadecimal.\n" - ); --- -1.8.1.4 - diff --git a/0022-fcnsq-Fixup-64bit-integer-handling.patch b/0022-fcnsq-Fixup-64bit-integer-handling.patch deleted file mode 100644 index 83a67a5..0000000 --- a/0022-fcnsq-Fixup-64bit-integer-handling.patch +++ /dev/null @@ -1,79 +0,0 @@ -From d8deef20a4a427dfa866398047e00cd3e28c0545 Mon Sep 17 00:00:00 2001 -From: Hannes Reinecke -Date: Fri, 6 Dec 2013 19:51:55 +0000 -Subject: fcnsq: Fixup 64bit integer handling - -Signed-off-by: Hannes Reinecke -Signed-off-by: Robert Love ---- - fcnsq.c | 18 ++++++++++++------ - 1 file changed, 12 insertions(+), 6 deletions(-) - -diff --git a/fcnsq.c b/fcnsq.c -index 2510f1c..1597cd5 100644 ---- a/fcnsq.c -+++ b/fcnsq.c -@@ -24,6 +24,7 @@ - #include - #include - #include -+#include - #include - #include - #include -@@ -228,7 +229,7 @@ static int gpn_id(int bsg, u32 fcid) - rjt = gn_id(bsg, fcid, FC_NS_GPN_ID, &wwpn); - if (rjt) - goto fail; -- print_result("Port Name", "%16.16llx\n", wwpn); -+ print_result("Port Name", "%16.16jx\n", (uintmax_t)wwpn); - return 0; - fail: - if (rjt == (u16) ~0) -@@ -249,7 +250,7 @@ static int gnn_id(int bsg, u32 fcid) - rjt = gn_id(bsg, fcid, FC_NS_GNN_ID, &wwnn); - if (rjt) - goto fail; -- print_result("Node Name", "%16.16llx\n", wwnn); -+ print_result("Node Name", "%16.16jx\n", (uintmax_t)wwnn); - return 0; - fail: - if (rjt == (u16) ~0) -@@ -376,11 +377,12 @@ int main(int argc, char *argv[]) - { - char *bsg; - int bsg_dev; -- u32 port_id; -- u64 wwnn; -+ u32 port_id = 0; -+ u64 wwnn = 0; - int rc = 0; - enum commands cmd = 0; - char c; -+ uintmax_t wwnn_tmp = 0; - - while(1) { - c = getopt_long_only(argc, argv, "", options, NULL); -@@ -399,13 +401,17 @@ int main(int argc, char *argv[]) - if (cmd) - help(-1); - cmd = c; -- sscanf(optarg, "%x", &port_id); -+ if (sscanf(optarg, "%x", &port_id) != 1) -+ help(-1); - break; - case GSNN_NN: - if (cmd) - help(-1); - cmd = c; -- sscanf(optarg, "%llx", &wwnn); -+ if (sscanf(optarg, "%jx", &wwnn_tmp) == 1) -+ wwnn = (u64)wwnn_tmp; -+ else -+ help(-1); - break; - } - } --- -1.8.1.4 - diff --git a/0023-fcoemon-add-systemd-service-file.patch b/0023-fcoemon-add-systemd-service-file.patch deleted file mode 100644 index 51fb69a..0000000 --- a/0023-fcoemon-add-systemd-service-file.patch +++ /dev/null @@ -1,100 +0,0 @@ -From 41e9d79bd4bf9af4aa422615453333e860acabcd Mon Sep 17 00:00:00 2001 -From: Hannes Reinecke -Date: Fri, 6 Dec 2013 19:51:56 +0000 -Subject: fcoemon: add systemd service file - -Add fcoe.service file to start fcoemon from systemd - -Signed-off-by: Hannes Reinecke -Signed-off-by: Robert Love ---- - Makefile.am | 5 +++++ - configure.ac | 8 ++++++++ - doc/fcoemon.8 | 2 +- - doc/fcoemon.txt | 1 + - etc/systemd/fcoe.service | 13 +++++++++++++ - 5 files changed, 28 insertions(+), 1 deletion(-) - create mode 100644 etc/systemd/fcoe.service - -diff --git a/Makefile.am b/Makefile.am -index ba08924..012b560 100644 ---- a/Makefile.am -+++ b/Makefile.am -@@ -41,6 +41,11 @@ noinst_HEADERS = fcoeadm_display.h fcoe_clif.h fcoemon.h \ - fcoe_configdir = ${sysconfdir}/fcoe - dist_fcoe_config_DATA = etc/cfg-ethx - -+## install systemd service files -+if HAVE_SYSTEMD -+systemdsystemunit_DATA = etc/systemd/fcoe.service -+endif -+ - ## man pages for fcoeadm and fcoemon - dist_man_MANS = doc/fcoeadm.8 doc/fcoemon.8 doc/fipvlan.8 doc/fcrls.8 \ - doc/fcnsq.8 doc/fcping.8 -diff --git a/configure.ac b/configure.ac -index bb1385b..107d039 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -17,6 +17,14 @@ AC_SUBST([LLDPAD_CFLAGS]) - PKG_CHECK_MODULES([LIBHBALINUX], [libhbalinux >= 1.0.13]) - AC_SUBST([LIBHBALINUX_CFLAGS]) - -+PKG_PROG_PKG_CONFIG -+AC_ARG_WITH([systemdsystemunitdir], -+ AS_HELP_STRING([--with-systemdsystemunitdir=DIR], -+ [Directory for systemd service files]), [], -+ [with_systemdsystemunitdir=$($PKG_CONFIG --variable=systemdsystemunitdir systemd)]) -+AC_SUBST([systemdsystemunitdir], [$with_systemdsystemunitdir]) -+AM_CONDITIONAL(HAVE_SYSTEMD, [test -n "$with_systemdsystemunitdir"]) -+ - AC_CONFIG_FILES([Makefile fcoe-utils.spec include/fcoe_utils_version.h]) - AC_OUTPUT - -diff --git a/doc/fcoemon.8 b/doc/fcoemon.8 -index e9a045b..020394e 100644 ---- a/doc/fcoemon.8 -+++ b/doc/fcoemon.8 -@@ -358,7 +358,7 @@ indicates whether a FIP responder should be activated on this device to support - Note that the attached Ethernet peer device (e\&.g\&. FCoE capable switch port) must have compatible settings For DCB and FCoE to function properly\&. - .SS "/etc/init\&.d/fcoe" - .sp --This is the \fBfcoe\fR system service script\&. This script is invoked by the init process or by the service command to start and stop the \fBfcoemon\fR\&. -+This is the \fBfcoe\fR system service script\&. This script is invoked by the init process or by the service command to start and stop the \fBfcoemon\fR\&. On systemd-enabled systems, \fBfcoemon\fR is controlled via the \fBfcoe.service\fR unit. - .SH "VLAN NAMING CONVENTIONS" - .sp - If a new VLAN device is created (see the description of the \fIAUTO_VLAN\fR setting above), it will have the name \fIdev\fR\&.\fIvlan\fR\-fcoe; where \fIdev\fR is the name of the Ethernet parent device and \fIvlan\fR is the discovered VLAN ID number\&. -diff --git a/doc/fcoemon.txt b/doc/fcoemon.txt -index ec15197..09ee5a2 100644 ---- a/doc/fcoemon.txt -+++ b/doc/fcoemon.txt -@@ -214,6 +214,7 @@ must have compatible settings For DCB and FCoE to function properly. - ~~~~~~~~~~~~~~~~ - This is the *fcoe* system service script. This script is invoked by the - init process or by the service command to start and stop the *fcoemon*. -+On systemd-enabled systems, *fcoemon* is controlled via the *fcoe.service* unit. - - VLAN NAMING CONVENTIONS - ----------------------- -diff --git a/etc/systemd/fcoe.service b/etc/systemd/fcoe.service -new file mode 100644 -index 0000000..4834e43 ---- /dev/null -+++ b/etc/systemd/fcoe.service -@@ -0,0 +1,13 @@ -+[Unit] -+Description=Open-FCoE initiator daemon -+After=syslog.target network.target -+ -+[Service] -+Type=forking -+EnvironmentFile=/etc/sysconfig/fcoe -+ExecStartPre=/sbin/modprobe -qa $SUPPORTED_DRIVERS -+ExecStart=/usr/sbin/fcoemon $FCOEMON_OPTS -+ -+[Install] -+WantedBy=multi-user.target -+Also=lldpad.socket --- -1.8.1.4 - diff --git a/0024-fcoemon-systemd-socket-activation.patch b/0024-fcoemon-systemd-socket-activation.patch deleted file mode 100644 index e777b8b..0000000 --- a/0024-fcoemon-systemd-socket-activation.patch +++ /dev/null @@ -1,131 +0,0 @@ -From 09caead4ae14c868cee0ad71f8bb8648746a81a0 Mon Sep 17 00:00:00 2001 -From: Hannes Reinecke -Date: Fri, 6 Dec 2013 19:51:57 +0000 -Subject: fcoemon: systemd socket activation - -Implement systemd socket activation on the CLIF socket. - -Signed-off-by: Hannes Reinecke -Signed-off-by: Robert Love ---- - Makefile.am | 2 +- - etc/systemd/fcoe.service | 3 ++- - etc/systemd/fcoemon.socket | 6 ++++++ - fcoemon.c | 44 +++++++++++++++++++++++++++++++++++++++++++- - 4 files changed, 52 insertions(+), 3 deletions(-) - create mode 100644 etc/systemd/fcoemon.socket - -diff --git a/Makefile.am b/Makefile.am -index 012b560..e7df6f5 100644 ---- a/Makefile.am -+++ b/Makefile.am -@@ -43,7 +43,7 @@ dist_fcoe_config_DATA = etc/cfg-ethx - - ## install systemd service files - if HAVE_SYSTEMD --systemdsystemunit_DATA = etc/systemd/fcoe.service -+systemdsystemunit_DATA = etc/systemd/fcoe.service etc/systemd/fcoemon.socket - endif - - ## man pages for fcoeadm and fcoemon -diff --git a/etc/systemd/fcoe.service b/etc/systemd/fcoe.service -index 4834e43..5e5c8a2 100644 ---- a/etc/systemd/fcoe.service -+++ b/etc/systemd/fcoe.service -@@ -3,7 +3,7 @@ Description=Open-FCoE initiator daemon - After=syslog.target network.target - - [Service] --Type=forking -+Type=simple - EnvironmentFile=/etc/sysconfig/fcoe - ExecStartPre=/sbin/modprobe -qa $SUPPORTED_DRIVERS - ExecStart=/usr/sbin/fcoemon $FCOEMON_OPTS -@@ -11,3 +11,4 @@ ExecStart=/usr/sbin/fcoemon $FCOEMON_OPTS - [Install] - WantedBy=multi-user.target - Also=lldpad.socket -+Also=fcoemon.socket -diff --git a/etc/systemd/fcoemon.socket b/etc/systemd/fcoemon.socket -new file mode 100644 -index 0000000..4de8715 ---- /dev/null -+++ b/etc/systemd/fcoemon.socket -@@ -0,0 +1,6 @@ -+[Socket] -+ListenDatagram=@/com/intel/fcoemon -+PassCredentials=true -+ -+[Install] -+WantedBy=sockets.target -diff --git a/fcoemon.c b/fcoemon.c -index be4c74d..5e4f8d7 100644 ---- a/fcoemon.c -+++ b/fcoemon.c -@@ -3546,12 +3546,54 @@ err: - sendto(snum, rbuf, MSG_RBUF, 0, (struct sockaddr *)&from, fromlen); - } - -+static int fcm_systemd_socket(void) -+{ -+ char *env, *ptr; -+ unsigned int p, l; -+ -+ env = getenv("LISTEN_PID"); -+ if (!env) -+ return -1; -+ -+ p = strtoul(env, &ptr, 10); -+ if (ptr && ptr == env) { -+ FCM_LOG_DBG("Invalid value '%s' for LISTEN_PID\n", env); -+ return -1; -+ } -+ if ((pid_t)p != getpid()) { -+ FCM_LOG_DBG("Invalid PID '%d' from LISTEN_PID\n", p); -+ return -1; -+ } -+ env = getenv("LISTEN_FDS"); -+ if (!env) { -+ FCM_LOG_DBG("LISTEN_FDS is not set\n"); -+ return -1; -+ } -+ l = strtoul(env, &ptr, 10); -+ if (ptr && ptr == env) { -+ FCM_LOG_DBG("Invalid value '%s' for LISTEN_FDS\n", env); -+ return -1; -+ } -+ if (l != 1) { -+ FCM_LOG_DBG("LISTEN_FDS specified %d fds\n", l); -+ return -1; -+ } -+ /* systemd returns fds with an offset of '3' */ -+ return 3; -+} -+ - static int fcm_srv_create(struct fcm_srv_info *srv_info) - { - socklen_t addrlen; - struct sockaddr_un addr; - int rc = 0; - -+ srv_info->srv_sock = fcm_systemd_socket(); -+ if (srv_info->srv_sock > 0) { -+ FCM_LOG_DBG("Using systemd socket\n"); -+ goto out_done; -+ } -+ - srv_info->srv_sock = socket(AF_LOCAL, SOCK_DGRAM, 0); - if (srv_info->srv_sock < 0) { - FCM_LOG_ERR(errno, "Failed to create socket\n"); -@@ -3570,7 +3612,7 @@ static int fcm_srv_create(struct fcm_srv_info *srv_info) - rc = errno; - goto err_close; - } -- -+out_done: - sa_select_add_fd(srv_info->srv_sock, fcm_srv_receive, - NULL, NULL, srv_info); - --- -1.8.1.4 - diff --git a/0025-doc-Update-QUICKSTART-INSTALL-docs-for-systemd-init-.patch b/0025-doc-Update-QUICKSTART-INSTALL-docs-for-systemd-init-.patch deleted file mode 100644 index 700cd46..0000000 --- a/0025-doc-Update-QUICKSTART-INSTALL-docs-for-systemd-init-.patch +++ /dev/null @@ -1,46 +0,0 @@ -From fa308a68bda455d7305fc194d716ebc06b6f26c7 Mon Sep 17 00:00:00 2001 -From: Robert Love -Date: Wed, 18 Dec 2013 11:51:35 -0800 -Subject: doc: Update QUICKSTART/INSTALL docs for systemd init file install - -Update installation instructions so that systemd init files -may be installed. - -Signed-off-by: Robert Love ---- - INSTALL | 3 +++ - QUICKSTART | 3 +++ - 2 files changed, 6 insertions(+) - -diff --git a/INSTALL b/INSTALL -index 3abdf07..ea8c95e 100644 ---- a/INSTALL -+++ b/INSTALL -@@ -19,6 +19,9 @@ DEPENDENCIES - - 1) Bootstrap, configure, make and make install - # ./bootstrap.sh -+ Either execute the next line for System V init script install - # rpm --eval "%configure" | sh -+ or the following line to install systemd unit scripts -+ # rpm --eval "%configure --with-systemdsystemunitdir=/" | sh - # make - # make install -diff --git a/QUICKSTART b/QUICKSTART -index 6fc82b3..c001bc1 100644 ---- a/QUICKSTART -+++ b/QUICKSTART -@@ -201,7 +201,10 @@ PROCESS - 2) Bootstrap, configure, make and make install - # cd fcoe-utils - # ./bootstrap.sh -+ Either execute the next line for System V init script install - # rpm --eval "%configure" | sh -+ or the following line to install systemd unit scripts -+ # rpm --eval "%configure --with-systemdsystemunitdir=/" | sh - # make - # make install - --- -1.8.1.4 - diff --git a/0026-FIPVLAN-Really-break-out-of-the-recv_loop-upon-fip_r.patch b/0026-FIPVLAN-Really-break-out-of-the-recv_loop-upon-fip_r.patch deleted file mode 100644 index b141307..0000000 --- a/0026-FIPVLAN-Really-break-out-of-the-recv_loop-upon-fip_r.patch +++ /dev/null @@ -1,34 +0,0 @@ -From f90bbd76499b71a62f1e7c4ec68a62008031ee8e Mon Sep 17 00:00:00 2001 -From: Eddie Wai -Date: Wed, 5 Mar 2014 14:42:28 +0000 -Subject: FIPVLAN: Really break out of the recv_loop upon fip_recv error - -This patch adds additional code to break out of the recv_loop's while -loop upon fip_recv error. This completes the fix from -commit 78ea81aaef57b5b40fdc86335a7e6a432a72ad48. - -Without this, we have seen cases where the recv_loop gets -stuck looping indefinitely. - -Signed-off-by: Eddie Wai -Signed-off-by: Robert Love ---- - fipvlan.c | 2 ++ - 1 file changed, 2 insertions(+) - -diff --git a/fipvlan.c b/fipvlan.c -index 1b8492d..cc71412 100644 ---- a/fipvlan.c -+++ b/fipvlan.c -@@ -792,6 +792,8 @@ static void recv_loop(int timeout) - break; - } - } -+ if (i < pfd_len) -+ break; - } - } - --- -1.8.1.4 - diff --git a/0027-man-Fix-typo-in-fcoemon-documentation.patch b/0027-man-Fix-typo-in-fcoemon-documentation.patch deleted file mode 100644 index a7d7877..0000000 --- a/0027-man-Fix-typo-in-fcoemon-documentation.patch +++ /dev/null @@ -1,28 +0,0 @@ -From 4982e604dab3f350f3a3ca20b3c001f8ee66fdc2 Mon Sep 17 00:00:00 2001 -From: Robert Love -Date: Sat, 25 Jan 2014 03:10:21 +0000 -Subject: man: Fix typo in fcoemon documentation - -"module" was misspelled "modlue." This patch fixes it. - -Signed-off-by: Robert Love ---- - doc/fcoemon.txt | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/doc/fcoemon.txt b/doc/fcoemon.txt -index 09ee5a2..7ccf892 100644 ---- a/doc/fcoemon.txt -+++ b/doc/fcoemon.txt -@@ -56,7 +56,7 @@ OPTIONS - *-d*, *--debug*:: - Enable debugging messages. - *-l*, *--legacy*:: -- Force fcoemon to use the legacy /sys/modlue/libfcoe/parameters/ -+ Force fcoemon to use the legacy /sys/module/libfcoe/parameters/ - interface. The default is to use the newer /sys/bus/fcoe/ interfaces - if they are available. - *-s*, *--syslog*:: --- -1.8.1.4 - diff --git a/0031-fcoemon-Fix-IEEE-state-machine.patch b/0031-fcoemon-Fix-IEEE-state-machine.patch deleted file mode 100644 index 23c7fb7..0000000 --- a/0031-fcoemon-Fix-IEEE-state-machine.patch +++ /dev/null @@ -1,107 +0,0 @@ -From 95f4a92799627e791dc68eb49922f169409b5cd8 Mon Sep 17 00:00:00 2001 -From: Neerav Parikh -Date: Tue, 18 Mar 2014 08:34:18 +0000 -Subject: fcoemon: Fix IEEE state machine - -fcoemon on adapters that support only IEEE DCBX mode -doesn't enter into a state where it can proceed -doing FIP VLAN discovery or creating an FCoE instance. -This is because the current IEEE state machine is tied -with the CEE based state machine. It relies on some -CEE specific DCB netlink calls viz. getstate() to -proceed; which may not be available on drivers that -only support IEEE specific DCBNL calls. - -Hence, this patch aims to separate out the IEEE DCBX -mode specific state machine from the CEE one. - -Signed-off-by: Neerav Parikh -Tested-by: Jack Morgan ---- - fcoemon.c | 54 ++++++++++++++++++++++++++++++++++++++++++++++++------ - 1 file changed, 48 insertions(+), 6 deletions(-) - -diff --git a/fcoemon.c b/fcoemon.c -index 23fc2f6..3ab1a98 100644 ---- a/fcoemon.c -+++ b/fcoemon.c -@@ -1357,12 +1357,8 @@ ieee_state_set(struct fcm_netif *ff, enum ieee_state new_state) - getstr(&ieee_states, new_state)); - } - -- if (new_state == IEEE_GET_STATE) { -- ff->ieee_state = new_state; -+ if (new_state == IEEE_GET_STATE) - clear_ieee_info(ff); -- ieee_get_req(ff); -- return; -- } - - ff->ieee_state = new_state; - ff->ieee_resp_pending = 0; -@@ -3035,6 +3031,50 @@ static void fcm_fcoe_action(struct fcoe_port *p) - - /* - * Called for all ports. For FCoE ports and candidates, -+ * get IEEE DCBX information and set the next action. -+ */ -+static void fcm_netif_ieee_advance(struct fcm_netif *ff) -+{ -+ enum fcp_action action; -+ -+ ASSERT(ff); -+ ASSERT(fcm_clif); -+ -+ if (fcm_clif->cl_busy) -+ return; -+ -+ if (ff->ieee_resp_pending) -+ return; -+ -+ switch (ff->ieee_state) { -+ case IEEE_INIT: -+ break; -+ case IEEE_GET_STATE: -+ ieee_get_req(ff); -+ break; -+ case IEEE_DONE: -+ action = validate_ieee_info(ff); -+ switch (action) { -+ case FCP_DESTROY_IF: -+ case FCP_ENABLE_IF: -+ case FCP_ACTIVATE_IF: -+ fcp_action_set(ff->ifname, action); -+ break; -+ case FCP_DISABLE_IF: -+ case FCP_ERROR: -+ fcp_action_set(ff->ifname, FCP_DISABLE_IF); -+ break; -+ case FCP_WAIT: -+ default: -+ break; -+ } -+ default: -+ break; -+ } -+} -+ -+/* -+ * Called for all ports. For FCoE ports and candidates, - * get information and send to dcbd. - */ - static void fcm_netif_advance(struct fcm_netif *ff) -@@ -3161,8 +3201,10 @@ static void fcm_handle_changes(void) - /* - * Perform pending actions (dcbd queries) on network interfaces. - */ -- TAILQ_FOREACH(ff, &fcm_netif_head, ff_list) -+ TAILQ_FOREACH(ff, &fcm_netif_head, ff_list) { - fcm_netif_advance(ff); -+ fcm_netif_ieee_advance(ff); -+ } - - /* - * Perform actions on FCoE ports --- -1.7.12.4 - diff --git a/0032-fipvlan-Fix-crash-in-create_and_start_vlan.patch b/0032-fipvlan-Fix-crash-in-create_and_start_vlan.patch deleted file mode 100644 index d50b487..0000000 --- a/0032-fipvlan-Fix-crash-in-create_and_start_vlan.patch +++ /dev/null @@ -1,58 +0,0 @@ -From 0d006642c34e360fb7d3c3adbbb1295e784c03bf Mon Sep 17 00:00:00 2001 -From: Hannes Reinecke -Date: Mon, 12 May 2014 14:55:50 +0200 -Subject: fipvlan: Fix crash in create_and_start_vlan() - -create_and_start_vlan() will issue a netlink command to create -a new VLAN device. As this device isn't present yet we need -to exit here and retry the vlan configuration once we get the -appropriate message from netlink. - -References: bnc#877275 - -Signed-off-by: Hannes Reinecke ---- - fipvlan.c | 25 +++++++++++++------------ - 1 file changed, 13 insertions(+), 12 deletions(-) - -diff --git a/fipvlan.c b/fipvlan.c -index cc71412..7202f03 100644 ---- a/fipvlan.c -+++ b/fipvlan.c -@@ -626,20 +626,21 @@ create_and_start_vlan(struct fcf *fcf, bool vn2vn) - vlan = real_dev; - } else { - vlan = lookup_vlan(fcf->ifindex, fcf->vlan); -- if (vlan) { -- FIP_LOG_DBG("VLAN %s.%d already exists as %s\n", -- real_dev->ifname, fcf->vlan, vlan->ifname); -+ if (!vlan) { -+ snprintf(vlan_name, IFNAMSIZ, "%s.%d%s", -+ real_dev->ifname, fcf->vlan, config.suffix); -+ rc = vlan_create(fcf->ifindex, fcf->vlan, vlan_name); -+ if (rc < 0) { -+ printf("Failed to create VLAN device %s\n" -+ "\t%s\n", -+ vlan_name, strerror(-rc)); -+ return rc; -+ } -+ printf("Created VLAN device %s\n", vlan_name); - return 0; - } -- snprintf(vlan_name, IFNAMSIZ, "%s.%d%s", -- real_dev->ifname, fcf->vlan, config.suffix); -- rc = vlan_create(fcf->ifindex, fcf->vlan, vlan_name); -- if (rc < 0) { -- printf("Failed to create VLAN device %s\n\t%s\n", -- vlan_name, strerror(-rc)); -- return rc; -- } -- printf("Created VLAN device %s\n", vlan_name); -+ FIP_LOG_DBG("VLAN %s.%d already exists as %s\n", -+ real_dev->ifname, fcf->vlan, vlan->ifname); - } - if (!config.start) - return rc; --- -1.7.12.4 - diff --git a/0033-fipvlan-suppress-warning-interface-already-exists.patch b/0033-fipvlan-suppress-warning-interface-already-exists.patch deleted file mode 100644 index 81f10c3..0000000 --- a/0033-fipvlan-suppress-warning-interface-already-exists.patch +++ /dev/null @@ -1,31 +0,0 @@ -From 798a5ff4a205fa26d37447ff77fc27861103440a Mon Sep 17 00:00:00 2001 -From: Hannes Reinecke -Date: Mon, 12 May 2014 14:59:13 +0200 -Subject: fipvlan: suppress warning 'interface already exists' - -When fipvlan is called for just the parent interface we should -not select the vlan interface, too, otherwise we'll be getting -those annoying warning messages. - -Signed-off-by: Hannes Reinecke ---- - fipvlan.c | 3 ++- - 1 file changed, 2 insertions(+), 1 deletion(-) - -diff --git a/fipvlan.c b/fipvlan.c -index 7202f03..163d21e 100644 ---- a/fipvlan.c -+++ b/fipvlan.c -@@ -451,7 +451,8 @@ static void rtnl_recv_newlink(struct nlmsghdr *nh) - int i, iff_selected = 0; - - for (i = 0; i < config.namec; i++) { -- if (!strcmp(iff->ifname, config.namev[i])) -+ if (!strncmp(iff->ifname, config.namev[i], -+ strlen(config.namev[i]))) - iff_selected = 1; - } - if (!iff_selected) { --- -1.7.12.4 - diff --git a/0034-fipvlan-do-not-crash-on-empty-MAC-address-in-lookup_.patch b/0034-fipvlan-do-not-crash-on-empty-MAC-address-in-lookup_.patch deleted file mode 100644 index f3acd97..0000000 --- a/0034-fipvlan-do-not-crash-on-empty-MAC-address-in-lookup_.patch +++ /dev/null @@ -1,31 +0,0 @@ -From eb7451d0dcffb1c247e2b070b6101c2c878faee4 Mon Sep 17 00:00:00 2001 -From: Hannes Reinecke -Date: Mon, 12 May 2014 15:24:48 +0200 -Subject: fipvlan: do not crash on empty MAC address in lookup_fcf() - -We're calling lookup_fcf() with a NULL macaddress, so we need -to ensure we don't crash here. - -References: bnc#877275 - -Signed-off-by: Hannes Reinecke ---- - fipvlan.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/fipvlan.c b/fipvlan.c -index 163d21e..c5f3d3f 100644 ---- a/fipvlan.c -+++ b/fipvlan.c -@@ -169,7 +169,7 @@ static struct fcf *lookup_fcf(struct fcf_list_head *head, int ifindex, - - TAILQ_FOREACH(fcf, head, list_node) - if ((ifindex == fcf->ifindex) && (vlan == fcf->vlan) && -- (memcmp(mac, fcf->mac_addr, ETHER_ADDR_LEN) == 0)) -+ (!mac || memcmp(mac, fcf->mac_addr, ETHER_ADDR_LEN) == 0)) - return fcf; - return NULL; - } --- -1.7.12.4 - diff --git a/fcoe-utils-1.0.29.tar.xz b/fcoe-utils-1.0.29.tar.xz deleted file mode 100644 index 977512c..0000000 --- a/fcoe-utils-1.0.29.tar.xz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:d13fe5d755258109812751aa8788087d33a5cc54f4f43a50b93664dad38968af -size 120340 diff --git a/fcoe-utils-1.0.30.tar.xz b/fcoe-utils-1.0.30.tar.xz new file mode 100644 index 0000000..56a0e54 --- /dev/null +++ b/fcoe-utils-1.0.30.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a525e256f02f4cb95ff231b7e239d2ff21bcbde4c659fa12cea61e5a53464567 +size 121480 diff --git a/fcoe-utils.changes b/fcoe-utils.changes index a09fa2e..e5f431f 100644 --- a/fcoe-utils.changes +++ b/fcoe-utils.changes @@ -1,3 +1,49 @@ +------------------------------------------------------------------- +Mon Aug 3 12:35:16 CEST 2015 - hare@suse.de + +- Update to version 1.0.30 (FATE#318849) + * Remove merged patches: + + 0001-man-Fix-small-typo-regarding-fcf-option.patch + + 0002-Don-t-call-AM_INIT_AUTOMAKE-twice.patch + + 0003-fipvlan-fails-on-powerpc.patch + + 0004-fipvlan-Only-shutdown-interfaces-if-no-vlans-are-cre.patch + + 0005-fipvlan-start-VLAN-interface-from-netlink-handler.patch + + 0006-fipvlan-Extract-create_missing_vlan-function-from-lo.patch + + 0007-fipvlan-create-VLANs-from-netlink-handler.patch + + 0008-fipvlan-Start-FCoE-from-netlink-handler.patch + + 0009-fipvlan-Update-wait-loop-to-wait-for-VLANs.patch + + 0010-fipvlan-Re-send-VLAN-discovery.patch + + 0011-fipvlan-update-manpage.patch + + 0012-fipvlan-Leave-link-up-if-requested.patch + + 0013-fipvlan-Update-manpage-to-reflect-correct-timeout.patch + + 0014-fipvlan-Do-not-shut-down-FCoE-connections-on-physica.patch + + 0015-fipvlan-break-out-of-receive-loop-on-error.patch + + 0016-fipvlan-handle-errors-from-fip-socket-creation.patch + + 0017-fipvlan-filter-interfaces-from-rtnl_getlink.patch + + 0018-Add-missing-DESTDIR-when-installing-bash-completion.patch + + 0019-Fix-build-with-Wl-as-needed.patch + + 0020-Fix-integer-formatting.patch + + 0021-fcnsq-Fixup-help-text.patch + + 0022-fcnsq-Fixup-64bit-integer-handling.patch + + 0023-fcoemon-add-systemd-service-file.patch + + 0024-fcoemon-systemd-socket-activation.patch + + 0025-doc-Update-QUICKSTART-INSTALL-docs-for-systemd-init-.patch + + 0026-FIPVLAN-Really-break-out-of-the-recv_loop-upon-fip_r.patch + + 0027-man-Fix-typo-in-fcoemon-documentation.patch + + 0032-fipvlan-Fix-crash-in-create_and_start_vlan.patch + + 0033-fipvlan-suppress-warning-interface-already-exists.patch + + 0034-fipvlan-do-not-crash-on-empty-MAC-address-in-lookup_.patch + * Add new patches from upstream: + + 0001-fcoemon-Rework-daemonizing-and-error-handling.patch + * Rename patches: + + 0002-fcoemon-fix-IEEE-state-machine.patch + + 0003-systemctl-cannot-start-fcoemon.socket.patch + + 0004-fcoemon-Correctly-handle-options-in-the-service-file.patch + + 0005-fcoe.service-Add-foreground-to-prevent-fcoemon-to-be.patch + + 0006-fipvlan-fixup-return-value-on-error.patch + + 0007-fipvlan-clean-up-state-machine-for-pfd_add.patch + + 0008-Use-correct-socket-for-fcoemon.socket.patch + ------------------------------------------------------------------- Mon Jul 28 11:28:12 CEST 2014 - hare@suse.de diff --git a/fcoe-utils.spec b/fcoe-utils.spec index 990ea61..b474a08 100644 --- a/fcoe-utils.spec +++ b/fcoe-utils.spec @@ -1,7 +1,7 @@ # # spec file for package fcoe-utils # -# Copyright (c) 2014 SUSE LINUX Products GmbH, Nuernberg, Germany. +# Copyright (c) 2015 SUSE LINUX Products GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -20,8 +20,8 @@ Name: fcoe-utils Url: http://www.open-fcoe.org BuildRequires: autoconf BuildRequires: automake -BuildRequires: libHBAAPI2-devel -BuildRequires: libhbalinux2-devel +BuildRequires: libHBAAPI2-devel >= 2.2.10 +BuildRequires: libhbalinux2-devel >= 1.0.17 BuildRequires: libtool BuildRequires: open-lldp-devel BuildRequires: systemd-devel @@ -30,7 +30,7 @@ Requires: iproute Requires: libhbalinux2 Requires: open-lldp %systemd_requires -Version: 1.0.29 +Version: 1.0.30 Release: 0 Summary: FCoE userspace management tools License: GPL-2.0 @@ -38,45 +38,16 @@ Group: System/Daemons # git://open-fcoe.org/fcoe/fcoe-utils.git Source0: %{name}-%{version}.tar.xz # Patches from git repository -Patch1: 0001-man-Fix-small-typo-regarding-fcf-option.patch -Patch2: 0002-Don-t-call-AM_INIT_AUTOMAKE-twice.patch -Patch3: 0003-fipvlan-fails-on-powerpc.patch -Patch4: 0004-fipvlan-Only-shutdown-interfaces-if-no-vlans-are-cre.patch -Patch5: 0005-fipvlan-start-VLAN-interface-from-netlink-handler.patch -Patch6: 0006-fipvlan-Extract-create_missing_vlan-function-from-lo.patch -Patch7: 0007-fipvlan-create-VLANs-from-netlink-handler.patch -Patch8: 0008-fipvlan-Start-FCoE-from-netlink-handler.patch -Patch9: 0009-fipvlan-Update-wait-loop-to-wait-for-VLANs.patch -Patch10: 0010-fipvlan-Re-send-VLAN-discovery.patch -Patch11: 0011-fipvlan-update-manpage.patch -Patch12: 0012-fipvlan-Leave-link-up-if-requested.patch -Patch13: 0013-fipvlan-Update-manpage-to-reflect-correct-timeout.patch -Patch14: 0014-fipvlan-Do-not-shut-down-FCoE-connections-on-physica.patch -Patch15: 0015-fipvlan-break-out-of-receive-loop-on-error.patch -Patch16: 0016-fipvlan-handle-errors-from-fip-socket-creation.patch -Patch17: 0017-fipvlan-filter-interfaces-from-rtnl_getlink.patch -Patch18: 0018-Add-missing-DESTDIR-when-installing-bash-completion.patch -Patch19: 0019-Fix-build-with-Wl-as-needed.patch -Patch20: 0020-Fix-integer-formatting.patch -Patch21: 0021-fcnsq-Fixup-help-text.patch -Patch22: 0022-fcnsq-Fixup-64bit-integer-handling.patch -Patch23: 0023-fcoemon-add-systemd-service-file.patch -Patch24: 0024-fcoemon-systemd-socket-activation.patch -Patch25: 0025-doc-Update-QUICKSTART-INSTALL-docs-for-systemd-init-.patch -Patch26: 0026-FIPVLAN-Really-break-out-of-the-recv_loop-upon-fip_r.patch -Patch27: 0027-man-Fix-typo-in-fcoemon-documentation.patch +Patch1: 0001-fcoemon-Rework-daemonizing-and-error-handling.patch +Patch2: 0002-fcoemon-fix-IEEE-state-machine.patch # Patches to be upstreamed -Patch28: 0028-systemctl-cannot-start-fcoemon.socket.patch -Patch29: 0029-fcoemon-Correctly-handle-options-in-the-service-file.patch -Patch30: 0030-fcoe.service-Add-foreground-to-prevent-fcoemon-to-be.patch -Patch31: 0031-fcoemon-Fix-IEEE-state-machine.patch -Patch32: 0032-fipvlan-Fix-crash-in-create_and_start_vlan.patch -Patch33: 0033-fipvlan-suppress-warning-interface-already-exists.patch -Patch34: 0034-fipvlan-do-not-crash-on-empty-MAC-address-in-lookup_.patch -Patch35: 0035-fipvlan-fixup-return-value-on-error.patch -Patch36: 0036-fipvlan-clean-up-state-machine-for-pfd_add.patch -Patch37: 0037-Use-correct-socket-for-fcoemon.socket.patch +Patch3: 0003-systemctl-cannot-start-fcoemon.socket.patch +Patch4: 0004-fcoemon-Correctly-handle-options-in-the-service-file.patch +Patch5: 0005-fcoe.service-Add-foreground-to-prevent-fcoemon-to-be.patch +Patch6: 0006-fipvlan-fixup-return-value-on-error.patch +Patch7: 0007-fipvlan-clean-up-state-machine-for-pfd_add.patch +Patch8: 0008-Use-correct-socket-for-fcoemon.socket.patch # Patches from Fedora Patch101: fcoe-utils-1.0.29-make.patch @@ -97,35 +68,6 @@ connections. %patch6 -p1 %patch7 -p1 %patch8 -p1 -%patch9 -p1 -%patch10 -p1 -%patch11 -p1 -%patch12 -p1 -%patch13 -p1 -%patch14 -p1 -%patch15 -p1 -%patch16 -p1 -%patch17 -p1 -%patch18 -p1 -%patch19 -p1 -%patch20 -p1 -%patch21 -p1 -%patch22 -p1 -%patch23 -p1 -%patch24 -p1 -%patch25 -p1 -%patch26 -p1 -%patch27 -p1 -%patch28 -p1 -%patch29 -p1 -%patch30 -p1 -%patch31 -p1 -%patch32 -p1 -%patch33 -p1 -%patch34 -p1 -%patch35 -p1 -%patch36 -p1 -%patch37 -p1 %patch101 -p1 %build