Browse Source

fcoe-utils package update

Signed-off-by: basebuilder_pel7ppc64bebuilder0 <basebuilder@powerel.org>
master
basebuilder_pel7ppc64bebuilder0 3 years ago
parent
commit
26099585c7
  1. 107
      SOURCES/0001-fcoemon-link-buffer-resize-fix.patch
  2. 21
      SOURCES/README.redhat
  3. 5
      SOURCES/fcoe.config
  4. 12
      SOURCES/fcoe.service
  5. 25
      SOURCES/quickstart.txt
  6. 333
      SPECS/fcoe-utils.spec

107
SOURCES/0001-fcoemon-link-buffer-resize-fix.patch

@ -0,0 +1,107 @@ @@ -0,0 +1,107 @@
From 47c1f956e7f212aec0eec174c3fb5801eae5d5bc Mon Sep 17 00:00:00 2001
From: Chris Leech <cleech@redhat.com>
Date: Thu, 24 Jan 2019 18:16:47 -0800
Subject: [PATCH 1/1] fcoemon: link buffer resize fix

---
fcoemon.c | 54 ++++++++++++++++++------------------------------------
1 file changed, 18 insertions(+), 36 deletions(-)

diff --git a/fcoemon.c b/fcoemon.c
index bf73a0d4c89e..ff8a8b869ba4 100644
--- a/fcoemon.c
+++ b/fcoemon.c
@@ -328,7 +328,6 @@ static int fcm_link_socket;
static int fcm_link_seq;
static void fcm_link_recv(void *);
static void fcm_link_getlink(void);
-static int fcm_link_buf_check(size_t);
static void clear_dcbd_info(struct fcm_netif *ff);
static int fcoe_vid_from_ifname(const char *ifname);
@@ -354,8 +353,7 @@ char progname[20];
* large enough to fit and expand it if we ever do a read that almost fills it.
*/
static char *fcm_link_buf;
-static size_t fcm_link_buf_size = 4096; /* initial size */
-static const size_t fcm_link_buf_fuzz = 300; /* "almost full" remainder */
+static size_t fcm_link_buf_size = 8192; /* initial size */
/*
* A value must be surrounded by quates, e.g. "x".
@@ -1856,8 +1854,22 @@ static void fcm_link_recv(UNUSED void *arg)
size_t plen;
size_t rlen;
+ /* check to make sure our receive buffer is large enough,
+ * or scale it up as needed */
+ rc = recv(fcm_link_socket, NULL, 0, MSG_PEEK | MSG_TRUNC);
+ if (rc > fcm_link_buf_size) {
+ FCM_LOG_DBG("resizing link buf to %d bytes\n", rc);
+ void *resize = realloc(fcm_link_buf, rc);
+ if (resize) {
+ fcm_link_buf = resize;
+ fcm_link_buf_size = rc;
+ } else {
+ FCM_LOG_ERR(errno, "Failed to allocate link buffer");
+ }
+ }
+
buf = fcm_link_buf;
- rc = read(fcm_link_socket, buf, fcm_link_buf_size);
+ rc = recv(fcm_link_socket, buf, fcm_link_buf_size, 0);
if (rc <= 0) {
if (rc < 0)
FCM_LOG_ERR(errno, "Error reading from "
@@ -1866,11 +1878,6 @@ static void fcm_link_recv(UNUSED void *arg)
return;
}
- if (fcm_link_buf_check(rc)) {
- fcm_link_getlink();
- return;
- }
-
hp = (struct nlmsghdr *)buf;
rlen = rc;
for (hp = (struct nlmsghdr *)buf; NLMSG_OK(hp, rlen);
@@ -1935,34 +1942,9 @@ static void fcm_link_getlink(void)
msg.nl.nlmsg_pid = getpid();
msg.ifi.ifi_family = AF_UNSPEC;
msg.ifi.ifi_type = ARPHRD_ETHER;
- rc = write(fcm_link_socket, &msg, sizeof(msg));
+ rc = send(fcm_link_socket, &msg, sizeof(msg), 0);
if (rc < 0)
- FCM_LOG_ERR(errno, "write error");
-}
-
-/*
- * Check for whether buffer needs to grow based on amount read.
- * Free's the old buffer so don't use that after this returns non-zero.
- */
-static int fcm_link_buf_check(size_t read_len)
-{
- char *buf;
- size_t len = read_len;
-
- if (len > fcm_link_buf_size - fcm_link_buf_fuzz) {
- len = fcm_link_buf_size;
- len = len + len / 2; /* grow by 50% */
- buf = malloc(len);
- if (buf != NULL) {
- free(fcm_link_buf);
- fcm_link_buf = buf;
- fcm_link_buf_size = len;
- return 1;
- } else {
- FCM_LOG_ERR(errno, "failed to allocate link buffer");
- }
- }
- return 0;
+ FCM_LOG_ERR(errno, "send error");
}
static void fcm_fcoe_init(void)
--
2.17.2

21
SOURCES/README.redhat

@ -0,0 +1,21 @@ @@ -0,0 +1,21 @@
FCoE Management Tools
=====================

The FCoE Management Tools included in this package are

fcoeadm - program to create, reset, destroy, and display FCoE interfaces
fcoemon - program to monitor the events from the DCB daemon

Requirements:

The HBAAPI library and the HBAAPI vendor library are required for the
management tools. They should be installed as dependancies of the fcoe-utils
RPM, and are provided by the libhbaapi and libhbalinux RPMs.

Best Practices :

The FCoE systemd services should be properly ordered against networking and
filesystem units. But, in order to work properly any filesystems that reside
on FCoE attached storage should have the _netdev flag set in the mount options
field of their /etc/fstab entry.

5
SOURCES/fcoe.config

@ -0,0 +1,5 @@ @@ -0,0 +1,5 @@
# All supported drivers listed here are loaded when service starts
SUPPORTED_DRIVERS="libfc fcoe bnx2fc"

# Add --debug to enable debug messages
FCOEMON_OPTS="--syslog"

12
SOURCES/fcoe.service

@ -0,0 +1,12 @@ @@ -0,0 +1,12 @@
[Unit]
Description=Open-FCoE Inititator.
After=syslog.target network.target lldpad.service

[Service]
Type=forking
EnvironmentFile=/etc/sysconfig/fcoe
ExecStartPre=/sbin/modprobe -qa $SUPPORTED_DRIVERS
ExecStart=/usr/sbin/fcoemon $FCOEMON_OPTS

[Install]
WantedBy=multi-user.target

25
SOURCES/quickstart.txt

@ -0,0 +1,25 @@ @@ -0,0 +1,25 @@
Quick Start guide for Open-FCoE
===============================

1. Install fcoe-utils package. This should also install dcbd, libhbaapi and
libhbalinux as dependencies.

2. Rename /etc/fcoe/cfg-ethx so it corresponds with name of your network
interface (e.g. /etc/fcoe/cfg-eth0). Copy and rename this file accordingly
if you have more interfaces, which should be fcoe-enabled

3. Modify configuration files to enable FCoE. Set FCOE_ENABLE="yes" and
DCB_REQUIRED="yes".

3. Run 'systemctl enable fcoe.service' to start FCoE per run level. This
will setup FCoE to start on reboot.

4. Run 'systemctl enable lldpad.service' to start LLDP agent per run
level. This will setup DCB to start on reboot.

5. Run 'systemctl start lldpad.service' to start LLDP agent.

6. Run 'dcbtool sc ethX dcb on; dcbtool sc ethX app:0 e:1;' for each fcoe-enabled
interface to setup DCB for FCoE.

7. Run 'systemctl start fcoe.sertvice' to start FCoE.

333
SPECS/fcoe-utils.spec

@ -0,0 +1,333 @@ @@ -0,0 +1,333 @@
# https://fedoraproject.org/wiki/Packaging:Guidelines#Compiler_flags
%define _hardened_build 1

%global checkout f5cbb9a

Name: fcoe-utils
Version: 1.0.32
Release: 2%{?dist}
Summary: Fibre Channel over Ethernet utilities
Group: Applications/System
License: GPLv2
URL: http://www.open-fcoe.org
Source0: https://github.com/morbidrsa/fcoe-utils/archive/v%{version}.tar.gz#/%{name}-%{version}.tar.gz
Source1: quickstart.txt
Source2: fcoe.service
Source3: fcoe.config
Source4: README.redhat
Patch0: 0001-fcoemon-link-buffer-resize-fix.patch
ExcludeArch: ppc s390
BuildRequires: autoconf
BuildRequires: automake
BuildRequires: libpciaccess-devel
BuildRequires: libtool
BuildRequires: lldpad-devel >= 0.9.43
BuildRequires: systemd
Requires: lldpad >= 0.9.43
Requires: iproute
Requires: device-mapper-multipath
Requires(post): systemd
Requires(preun): systemd
Requires(postun): systemd

%description
Fibre Channel over Ethernet utilities
fcoeadm - command line tool for configuring FCoE interfaces
fcoemon - service to configure DCB Ethernet QOS filters, works with lldpad

%prep
%autosetup -p1

cp -v %{SOURCE1} quickstart.txt
cp -v %{SOURCE4} README.redhat

%build
./bootstrap.sh
%configure
make %{?_smp_mflags}

%install
make install DESTDIR=%{buildroot}
rm -rf %{buildroot}/etc/init.d
mkdir -p %{buildroot}%{_sysconfdir}/sysconfig %{buildroot}%{_unitdir}
rm -f %{buildroot}%{_unitdir}/*
install -m 644 %{SOURCE2} %{buildroot}%{_unitdir}
install -m 644 %{SOURCE3} %{buildroot}%{_sysconfdir}/sysconfig/fcoe
mkdir -p %{buildroot}%{_libexecdir}/fcoe
for file in \
contrib/*.sh \
debug/*sh
do install -m 755 ${file} %{buildroot}%{_libexecdir}/fcoe/
done
# We supply our own config for fcoe.service
rm -f %{buildroot}/%{_sysconfdir}/fcoe/config
%ifarch s390x
# bnx2fc is not available on s390x (#1056371)
sed -i -e 's/SUPPORTED_DRIVERS="libfc fcoe bnx2fc"/SUPPORTED_DRIVERS="libfc fcoe"/' \
%{buildroot}/%{_sysconfdir}/sysconfig/fcoe
%endif

%post
%systemd_post fcoe.service

%preun
%systemd_preun fcoe.service

%postun
%systemd_postun_with_restart fcoe.service

%files
%doc README.redhat COPYING QUICKSTART quickstart.txt
%{_sbindir}/*
%{_mandir}/man8/*
%{_unitdir}/fcoe.service
%{_sysconfdir}/fcoe/
%config(noreplace) %{_sysconfdir}/fcoe/cfg-ethx
%config(noreplace) %{_sysconfdir}/sysconfig/fcoe
%{_sysconfdir}/bash_completion.d/
%{_libexecdir}/fcoe/

%changelog
* Fri Jan 25 2019 Chris Leech <cleech@redhat.com> - 1.0.32-2
- 1656720 fcoemon fix ignored devices from recv buffer resize bug

* Wed Feb 22 2017 Chris Leech <cleech@redhat.com> - 1.0.32-1
- 1384707 fcoeadm --target segfaults if non-FCoE FC targets are present
- 1321611 fcoemon should only try to connect to lldpad when required

* Fri Aug 19 2016 Chris Leech <cleech@redhat.com> - 1.0.31-1.git5dfd3e4
- 1274530 rebase to upstream 1.0.31+
- no longer requires libhbaapi/libhbalinux
- no longer attempts to connect to lldpad if DC_REQUIRED is configured off
for all interfaces

* Wed Jul 06 2016 Chris Leech <cleech@redhat.com> - 1.0.30-4.git91c0c8c
- 1039779 replace README that contained mostly build instructions with
README.redhat containing better distro-specific information

* Mon Jul 06 2015 Chris Leech <cleech@redhat.com> - 1.0.30-3.git91c0c8c
- 1056367 remove s390x from ExcludeArch

* Mon Jul 06 2015 Chris Leech <cleech@redhat.com> - 1.0.30-2.git91c0c8c
- 1056367 fix display when libhbalinux includes hosts without a serial number

* Thu Jun 18 2015 Chris Leech <cleech@redhat.com> - 1.0.30-1.git91c0c8c
- 1175802 rebase to upstream v1.0.30-2-g91c0c8c

* Wed Jan 21 2015 Chris Leech <cleech@redhat.com> - 1.0.29-9
- 1184386 fix segfault on fipvlan create

* Mon Oct 27 2014 Chris Leech <cleech@redhat.com> - 1.0.29-8
- 1049200 fix fcoeadm VN2VN mode create

* Fri Oct 03 2014 Chris Leech <cleech@redhat.com> - 1.0.29-7
- 1087095 update to upstream v1.0.29-29-g9267509

* Mon Mar 10 2014 Petr Šabata <contyk@redhat.com> - 1.0.29-6
- Break out of recv_loop() (#1049018)

* Thu Mar 06 2014 Petr Šabata <contyk@redhat.com> - 1.0.29-5
- Don't build on s390x again (#1073060)
- Drop bnx2fc from SUPPORTED_DRIVERS on s390x, for future (#1056371)
- Update fcoemon(8) with more systemd changes (#1049162)

* Fri Jan 17 2014 Petr Šabata <contyk@redhat.com> - 1.0.29-4
- Build on s390x again (#1052999)

* Fri Dec 27 2013 Daniel Mach <dmach@redhat.com> - 1.0.29-3
- Mass rebuild 2013-12-27

* Thu Nov 07 2013 Petr Šabata <contyk@redhat.com> - 1.0.29-2
- Bug #1024124:
- Don't install the old configuration file alongside the new one
- Add bnx2fc to the SUPPORTED_DRIVERS for consistency with previous configuration

* Thu Aug 29 2013 Petr Šabata <contyk@redhat.com> - 1.0.29-1
- 1.0.29 bump

* Wed Jul 31 2013 Petr Šabata <contyk@redhat.com> - 1.0.28-4
- Drop the initscript-specific config patch

* Wed Jul 31 2013 Petr Šabata <contyk@redhat.com> - 1.0.28-3
- Require just 'systemd' instead of 'systemd-units'
- Patch the fcoemon manpage with a note for systemd users

* Mon Jun 10 2013 Petr Šabata <contyk@redhat.com> - 1.0.28-2
- Enhance the format strings patch to fix ppc64 build failures too

* Tue Jun 04 2013 Petr Šabata <contyk@redhat.com> - 1.0.28-1
- 1.0.28 bump

* Wed Mar 06 2013 Petr Šabata <contyk@redhat.com> - 1.0.27-1
- 1.0.27 bump

* Wed Feb 13 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.0.25-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild

* Wed Jan 09 2013 Petr Šabata <contyk@redhat.com> - 1.0.25-2
- Don't build for s390x since it's not supported by kernel either

* Tue Nov 27 2012 Petr Šabata <contyk@redhat.com> - 1.0.25-1
- 1.0.25 (with latest fixes)
- Simplify the spec a bit
- Fix bogus dates in changelog

* Thu Nov 01 2012 Petr Šabata <contyk@redhat.com> - 1.0.25-1

* Tue Aug 28 2012 Petr Šabata <contyk@redhat.com> - 1.0.24-2
- Migrate to systemd scriptlets (#850104)

* Wed Aug 15 2012 Petr Šabata <contyk@redhat.com> - 1.0.24-1
- 1.0.24 bump

* Mon Jul 23 2012 Petr Šabata <contyk@redhat.com> - 1.0.23-3
- Don't exclude s390x.
- Add AM_PROG_AR to configure.ac.

* Thu Jul 19 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.0.23-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild

* Mon Jun 25 2012 Petr Šabata <contyk@redhat.com> - 1.0.23-1
- Update to 1.0.23
- Re-introduce ExcludeArch to be in line with EL.

* Thu Feb 16 2012 Petr Šabata <contyk@redhat.com> - 1.0.22-2
- Fix the incorrect libhbalinux runtime dependency

* Mon Jan 23 2012 Petr Šabata <contyk@redhat.com> - 1.0.22-1
- 1.0.22 bump
- Remove dcbd from Description

* Fri Jan 13 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.0.21-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild

* Thu Nov 24 2011 Petr Šabata <contyk@redhat.com> - 1.0.21-1
- 1.0.21 bump

* Mon Oct 31 2011 Petr Sabata <contyk@redhat.com> - 1.0.20-5
- Remove useless PIDFile from fcoe.service unit file

* Thu Oct 06 2011 Petr Sabata <contyk@redhat.com> - 1.0.20-4
- Do not enable fcoemon by default (#701999)
- Silence systemctl output

* Fri Sep 23 2011 Petr Sabata <contyk@redhat.com> - 1.0.20-3
- Enable hardened build

* Mon Jul 18 2011 Petr Sabata <contyk@redhat.com> - 1.0.20-2
- Drop SysV support in favor of systemd (#714683)
- Remove ancient scriptlets (pre-1.0.7 era)
- Update quickstart.txt to reflect new changes

* Thu Jul 07 2011 Petr Sabata <contyk@redhat.com> - 1.0.20-1
- 1.0.20 bump

* Thu Jun 02 2011 Petr Sabata <contyk@redhat.com> - 1.0.19-1
- 1.0.19 bump

* Tue May 3 2011 Petr Sabata <psabata@redhat.com> - 1.0.18-2
- fcoemon: Do not create a world and group writable PID file

* Wed Apr 20 2011 Petr Sabata <psabata@redhat.com> - 1.0.18-1
- 1.0.18 bump with latest bugfixes
- Removing ExcludeArch completely; not related for Fedora
- Buildroot cleanup

* Tue Apr 19 2011 Karsten Hopp <karsten@redhat.com> 1.0.17-1.1
- remove excludearch ppc, required by anaconda.ppc

* Thu Feb 24 2011 Fabio M. Di Nitto <fdinitto@redhat.com> - 1.0.17-1
- Pull in new upstream release (required to build)
- Fix git clone URL in comments
- Drop fcoe-utils-1.0.7-init.patch, fcoe-utils-1.0.7-init-condrestart.patch
and fcoe-utils-1.0.8-init-LSB.patch that are now upstream
- Drop fcoe-utils-1.0.8-includes.patch and use a copy of kernel headers
for all architectures (rename fcoe-sparc.patch to fcoe-include-headers.patch)
Upstream added detection to avoid inclusion of kernel headers in the build
and it expects to find the userland headers installed. Those have not
yet propagated in Fedora.
Use temporary this workaround, since fcoe is a requiment for anaconda
and it failed to build for a while
- Drop BuildRequires on kernel-devel
- Add BuildRequires on autoconf (it is used and not installed by default
on all build chroots)

* Wed Feb 23 2011 Dennis Gilmore <dennis@ausil.us> - 1.0.14-5
- patch in headers used from kernel-devel on 32 bit sparc

* Tue Feb 08 2011 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.0.14-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild

* Tue Nov 30 2010 Petr Sabata <psabata@redhat.com> - 1.0.14-3
- Removing dependency on vconfig, rhbz#658525

* Mon Jun 28 2010 Jan Zeleny <jzeleny@redhat.com> - 1.0.14-2
- added device-mapper-multipath to requires (#603242)
- added missing man pages for fcrls, fcnsq and fcping
- update of init script - added condrestart, try-restart
and force-reload options
- added vconfig to requires (#589608)

* Mon May 24 2010 Jan Zeleny <jzeleny@redhat.com> - 1.0.14-1
- rebased to 1.0.14, see bug #593824 for complete changelog

* Mon Apr 12 2010 Jan Zeleny <jzeleny@redhat.com> - 1.0.13-1
- rebased to v1.0.13, some bugfixes, new fcoe related scripts

* Tue Mar 30 2010 Jan Zeleny <jzeleny@redhat.com> - 1.0.12-2.20100323git
- some upstream updates
- better fipvlan support
- added fcoe_edd.sh script

* Tue Mar 16 2010 Jan Zeleny <jzeleny@redhat.com> - 1.0.12-1
- rebased to version 1.0.12, improved functionality with lldpad
and dcbd
- removed /etc/fcoe/scripts/fcoeplumb

* Thu Dec 10 2009 Jan Zeleny <jzeleny@redhat.com> - 1.0.9-2.20091204git
- excluded s390 and ppc

* Fri Dec 04 2009 Jan Zeleny <jzeleny@redhat.com> - 1.0.9-1.20091204git
- rebase to latest version of fcoe-utils

* Mon Sep 14 2009 Jan Zeleny <jzeleny@redhat.com> - 1.0.8-3
- update of init script to be LSB-compliant

* Fri Jul 31 2009 Jan Zeleny <jzeleny@redhat.com> - 1.0.8-2
- patch for clean compilation without usage of upstream's ugly hack

* Thu Jul 30 2009 Jan Zeleny <jzeleny@redhat.com> - 1.0.8-1
- rebase of fcoe-utils to 1.0.8, adjusted spec file

* Fri Jul 24 2009 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.0.7-8
- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild

* Tue Jun 9 2009 Jan Zeleny <jzeleny@redhat.com> - 1.0.7-7
- added quickstart file to doc (#500759)

* Thu May 14 2009 Jan Zeleny <jzeleny@redhat.com> - 1.0.7-6
- renamed init script to fcoe, changed lock filename to fcoe
(#497604)
- init script modified to do condrestart properly
- some modifications in spec file to apply previous change
to older versions od init script during update
- fixed issue with accepting long options (#498551)

* Mon May 4 2009 Jan Zeleny <jzeleny@redhat.com> - 1.0.7-5
- fixed SIGSEGV when fcoe module isn't loaded (#498550)

* Mon Apr 27 2009 Jan Zeleny <jzeleny@redhat.com> - 1.0.7-4
- added libhbalinux to Requires (#497605)
- correction of spec file (_initddir -> _initrddir)

* Wed Apr 8 2009 Jan Zeleny <jzeleny@redhat.com> - 1.0.7-3
- more minor corrections in spec file

* Thu Apr 2 2009 Jan Zeleny <jzeleny@redhat.com> - 1.0.7-2
- minor corrections in spec file
- moved init script to correct location
- correction in the init script (chkconfig directives)

* Mon Mar 2 2009 Chris Leech <christopher.leech@intel.com> - 1.0.7-1
- initial rpm build of fcoe tools

Loading…
Cancel
Save