summaryrefslogtreecommitdiff
path: root/utils
Commit message (Collapse)AuthorAgeFilesLines
* Update GPLv2 License information.Lee Duncan2018-10-091-11/+11
| | | | | | Update the COPYING file, with the whole GPLv2.0 license, and a script that seems to have a notice, as well. Both were outdated and had incorrect FSF addresses.
* Fix qsort() comparator function call.Lee Duncan2018-09-271-2/+2
| | | | | | | | | The compare function is supposed to match the prototype: int (*compar)(const void *, const void *) so the function nic_cmp() was declared incorrectly, which makes gcc much happier.
* Remove unused file fwparam_ibft_sysfs.c.Lee Duncan2018-05-311-394/+0
| | | | | I believe it was, at one time, used instead of fwparam_sysfs.c? But it is not used at all now.
* iscsiadm: get transport_name correctly for offload ifaceNilesh Javali2018-04-231-4/+6
| | | | | | | | | The qedi offload iface does not have netdev associated with it. Correctly get the transport_name from boot context. iBFT and offload iface can rely on this method to get the transport name. Signed-off-by: Nilesh Javali <nilesh.javali@cavium.com>
* fwparam_ppc.c: Do not use __compar_fn_tKhem Raj2018-03-211-1/+1
| | | | | | __compar_fn_t is not defined in musl Signed-off-by: Khem Raj <raj.khem@gmail.com>
* libopeniscsiusr: Use libopeniscsiusr in iscsiadmGris Ge2018-01-221-2/+10
| | | | | | | | | | | * Use libopeniscsiusr for `iscsiadm -m session -P <0-3>` command. * Use libopeniscsiusr for iSCSI session information used by `iscsiadm -m node -H <host_no> -P <2 - 4>`command. * Since `/sys/class/iscsi_session/session1/username` require root permission, this patch require `iscsiadm` been ran with root privilege. Signed-off-by: Gris Ge <fge@redhat.com>
* Add in tracking IP prefix length, in addition to mask.Lee Duncan2018-01-182-0/+3
| | | | | The modern IP standard stresses the IP prefix length rather than the mask, so track the IP prefix length.
* Automate logging into iSCSI FW targets.Lee Duncan2018-01-162-0/+27
| | | | | | | Add a script that logs into all iSCSI firmware targets, and add a udev rule to call that script when new targets are detected. Also, add a man page for the script.
* Fix compiler warnings about string overflows in prom_parseLee Duncan2017-12-024-1065/+1057
| | | | | | | | | | | | | | Gcc compiler version 7.2.1 complains about possible string overflow from prom_parse.y: > prom_parse.tab.c: In function ‘yyparse’: > prom_parse.y:98:25: warning: ‘%s’ directive writing up to 255 bytes into a region of size between 0 and 255 [-Wformat-overflow=] > sprintf($$, "%s/%s", $<str>1, $<str>3); > ^~~~~~~ So make the string buffer larger. Also, tell the compiler it is ok if we truncate strings, since our buffer is very large. Lastly, ensure we use strncpy() when copying strings.
* Replace deprecated _SVID_SOURCE with _DEFAULT_SOURCELee Duncan2017-12-022-2/+2
| | | | | | | | | | | | | Gcc version 7.2.1 and linux-glibc-devel version 4.14 complain about _SVID_SOURCE, which is deprecated, so use the replacement of _DEFAULT_SOURCE. The error message looks like: > In file included from /usr/include/ftw.h:25:0, > from fwparam_sysfs.c:23: > /usr/include/features.h:183:3: warning: #warning "_BSD_SOURCE and _SVID_SOURCE are deprecated, use _DEFAULT_SOURCE" [-Wcpp] > # warning "_BSD_SOURCE and _SVID_SOURCE are deprecated, use _DEFAULT_SOURCE" > ^~~~~~~
* Fix compiler warning: possible string truncationLee Duncan2017-12-022-2/+2
| | | | | | | | | | | Gcc version 7.2.1 complains about string formatting that may be truncated, generating messages such as: > fwparam_sysfs.c: In function ‘fwparam_sysfs_boot_info’: > fwparam_sysfs.c:45:25: warning: ‘%s’ directive output may be truncated writing up to 255 bytes into a region of size 242 [-Wformat-truncation=] > #define ISCSI_LLD_ROOT "/sys/firmware/" Making the destination strings longer fixes this issue.
* Merge pull request #55 from apatters/bnx2-software-ibft-supportLee Duncan2017-08-301-24/+36
|\ | | | | Add bnx2{,x} software initiator IBFT support
| * iscsistart: move offload discovery/setup to fw_get_targets()Andrew Patterson2017-06-021-24/+36
| | | | | | | | | | Move iscsistart offload discovery/setup from dump_targets() (--fwparam_print) to fw_get_targets() (--fwparam_network).
* | Fixed typo for spelling of 'default'Neal Wise2017-06-091-4/+4
|/
* iBFT 'origin' is an enum, not a stringLee Duncan2016-11-181-2/+1
| | | | | | A recent change, commit 4959a89f421fdebc, modified open-iscsi to treat the "origin" field as an enum, not a character string. But one spot was missed.
* fixed typo in iscsi_discovery usage()Mark Karpeles2016-09-181-1/+1
| | | | quick fix changing trasnpot into transport
* iscsistart: support booting over a VLANChris Leech2016-04-121-2/+1
| | | | | | | Adds code to check for VLAN devices if the boot configuration specifies a VLAN ID. Does not create VLANs, they need to already be in place.
* Build system: sort object file listsChristian Seiler2016-04-121-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Hi, Debian is currently working on making the entire archive build reproducibly. <https://reproducible-builds.org/> is a good resource describing the motivation behind this effort. There was one problem that was found in the open-iscsi package build system that prevented builds from being reproducible: the list of object files generated by the wildcard Makefile function are not in a deterministic order, causing changes in the output depending on the order in the underlying filesystem. I've attached a patch against the current git master that sorts the list of object files within the Makefile, making the order deterministic and allowing reproducible builds to be made. See also: <https://reproducible-builds.org/docs/stable-inputs/> It would be great if you could apply this patch upstream, so we don't have to carry it in Debian. Thanks! Regards, Christian -- You received this message because you are subscribed to the Google Groups "open-iscsi" group. To unsubscribe from this group and stop receiving emails from it, send an email to open-iscsi+unsubscribe@googlegroups.com. To post to this group, send email to open-iscsi@googlegroups.com. Visit this group at https://groups.google.com/group/open-iscsi. For more options, visit https://groups.google.com/d/optout. From a919d214d10870a54c6a5e383a19a6e82e5f8a54 Mon Sep 17 00:00:00 2001 From: Christian Seiler <christian@iwakd.de> Date: Sat, 13 Feb 2016 00:56:19 +0100 Subject: [PATCH] Build system: sort object file lists The object file list generated by the wildcard Makefile function is not deterministic, because it may change depending on the underlying file system. Use the sort function to make the list deterministic in these cases, to be able to build open-iscsi deterministically. See <https://reproducible-builds.org/> for further details. Signed-off-by: Christian Seiler <christian@iwakd.de>
* iscsi: remove local copy of open-isnsMike Christie2015-08-24161-44191/+0
| | | | | | | | | | This has open-iscsi stop shipping a copy of open-isns. You can get the open-isns from the new isns maintainer, Lee Duncan, from his github tree here: https://github.com/gonzoleeman/open-isns/releases Thanks to Lee and SUSE for taking this work on!
* buildsys: respect CFLAGS and LDFLAGS from the outsideChristian Seiler2015-06-053-5/+7
| | | | | | | | | | | | Make the build systsem respect CFLAGS and LDFLAGS set from the outside. Previously, OPTFLAGS could be set to alter CFLAGS (which were overridden completely), but that is non-standard, so also check for user-set CFLAGS. This will make life easier when packaging this for distributions. If OPTFLAGS is set, prefer that to CFLAGS to retain the old behavior in that case (and not break current builds). Additionally, also use LDFLAGS for linking the binaries, which was not respected at all previously.
* Fix iBFT target flags check.Lee Duncan2015-04-031-1/+1
| | | | | | When filling in the target context for an iBFT target, we were putting "flags" in target_flags, but then checking nic_flags.
* fwparam_ibft: Check iBFT target and NIC flagsHannes Reinecke2014-11-141-0/+24
| | | | | | | | Check the iBFT NIC and Target flags for valid boot. Since some adapters correctly set Bit 0 and others set Bit 1 for NICs, allow either value there. Signed-off-by: Lee Duncan <lduncan@suse.com>
* Represent DHCP "origin" as an enum, not a string.Hannes Reinecke2014-11-142-4/+4
| | | | | | | | | | | | | | | See IBFT standard for location of "origin" field in iBFT table, and see MS document: http://msdn.microsoft.com/en-us/library/aa366281.aspx for description of enums, duplicated here in part: typedef enum { IpPrefixOriginOther = 0, IpPrefixOriginManual, IpPrefixOriginWellKnown, IpPrefixOriginDhcp, IpPrefixOriginRouterAdvertisement, IpPrefixOriginUnchanged = 16 } IP_PREFIX_ORIGIN;
* Code cleanup: no functional changesHannes Reinecke2014-11-142-6/+6
|
* Fix bad sizeof in memsetAndy Grover2014-11-111-1/+1
| | | | Signed-off-by: Andy Grover <agrover@redhat.com>
* Fix build warnings for unused variablesAndy Grover2014-11-112-11/+7
| | | | Signed-off-by: Andy Grover <agrover@redhat.com>
* Added new util script to aid in CNA setupHannes Reinecke2014-09-211-0/+378
| | | | Signed-off-by: Lee Duncan <lduncan@suse.com>
* Added new utility script to generate initiator nameHannes Reinecke2014-09-211-0/+73
| | | | Signed-off-by: Lee Duncan <lduncan@suse.com>
* isns: Add docs for deregistering discovery domains.Lee Duncan2014-09-212-0/+18
| | | | | | Without this update to the isnsadm help message and man page, it can be difficult to figure out how to deregister a registered discovery domain.
* Parse 'origin' value from iBFTHannes Reinecke2014-09-043-3/+9
| | | | | | | | | | | iBFT has an 'origin' field which indicates the origin of the network address. If that is set to '3' it indicates that DHCP has been used; there is no need to evaluate the 'dhcp' field here. In fact. latest iPXE sets the 'origin' field, but not the 'dhcp' field. Signed-off-by: Hannes Reinecke <hare@suse.de>
* [PATCH v5 1/3] ISCSISTART: Saved ibft boot info to the sessionMike Christie2013-09-111-0/+8
| | | | | | | | | | | | | | | Patch and description from Eddie Wai: Three new session sysfs parameters are introduced: boot_root - holds the ibft boot root folder name boot_nic - holds the ibft boot ethernetN name boot_target - holds the ibft boot targetN name This patch copies over the /sys/firmware/<boot_root>/ethernetN/targetN info from the boot context to the node_rec. Signed-off-by: Eddie Wai <eddie.wai@broadcom.com>
* iscsi tools: print and load boot transportMike Christie2012-03-221-0/+10
| | | | | | | This patch makes sure that when bnx2i/cxgb*i type of offload engines are used for boot that the offload module gets loaded and that we print the transport type when running iscsistart -f or iscsiadm -m fw.
* isns: remove rfc files.Mike Christie2011-11-016-27570/+0
| | | | | | | | | The iSNS RFC files licenses are not compatible with some distros. The files are also not needed since you can find these on the internet in places like the IETF's website. They do not cost money so it is just a matter of searching. This patch removes the files.
* iscsi tools: fix ipv6 ibft/firmware bootMike Christie2011-10-121-1/+1
| | | | | | | The address buffers are too short for many ipv6 addresses and if ibft/firmware gives us a hostname. As a result iscsistart and iscsiadm were printing/getting a truncated address which would cause login and network startup to fail.
* iscsi tools: don't build with opensslMike Christie2011-09-013-2/+10
| | | | | | | We were still trying to bring in some openssl headers for isns even though we are not using that code. This adds some ugly ifdef code around it so we do not need openssl at all.
* iscsiadm: add netconfig supportLalit Chandivade2011-08-141-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 1. Current status: Using iscsiadm one cannot do any network configuration for qla4xxx adapters. However an iface is created for the qla4xxx ports using the hwaddress. \# ls /etc/iscsi/ifaces/ iface.example iface0 qla4xxx.00:0e:1e:04:8b:2a qla4xxx.00:0e:1e:04:8b:2e This allows user to issue sendtargets via the qla4xxx iscsi offload. 2. Current Proposal: Current proposal is to allow iscsiadm to configure the network settings for qla4xxx ports. This implementation is based on discussions at - http://marc.info/?l=linux-scsi&m=127066184916180&w=2 - http://groups.google.com/group/open-iscsi/browse_thread/thread/d8e8c2df71c95d69/8f731d95d46141a0?lnk=gst&q=iscsi+hba# 2.1 Changes in iscsiadm/iscsid 2.1.1 Add a new event: ISCSI_UEVENT_SET_IFACE_PARAMS 2.1.2 New structure/enum to represent a single network parameter - enum iscsi_net_param; - struct iscsi_iface_param_info; 2.1.3 Added new parameters in iface 2.1.4 Change in operations Add two new operations to iscsiadm apply: Apply the single iface settings applyall: Apply the iface settings of all iface having the same MAC address 2.2 Changes in sysfs network representation The new sysfs directory would look like this:- /sys/class/iscsi_iface/-| _______________________| | |- ipv4-iface-<host_no>-<iface_no>/ <-- for ipv4 |- bootproto |- enabled |- ipaddress |- subnet |- gateway |- mtu |- port |- vlan |- vlan_enabled |- vlan_priority |- ipv6-iface-<host_no>-<iface_no>/ <-- for ipv6 |- enabled |- ipaddr_autocfg |- ipaddress |- link_local_addr |- linklocal_autocfg |- mtu |- port |- router_addr |- vlan |- vlan_enabled |- vlan_priority 3. Flow: 3.1 User space code: - If user specify --op=update, then just update the iface config file - If use specify --op=applyall then ifaces for the host passed in. and build up the net config buffer. - Note: If --op is "apply" then only settings for single iface is read, the iface provided with -I option is only read. - The net config buffer will look like this. ----------------------------------------------------------------| | iscsi_net_param { | | iface_num = 0; | | len = 4; | | param = ISCSI_NET_PARAM_IPV4_ADDR; | | iface_type = ISCSI_IFACE_TYPE_IPV4; | | param_type = ISCSI_NET_PARAM; | | value[0] = ipaddress[0]; | | value[1] = ipaddress[1]; | | value[2] = ipaddress[2]; | | value[3] = ipaddress[3]; | | } | ----------------------------------------------------------------| | iscsi_net_param { | | iface_num = 0; | | len = 4; | | param = ISCSI_NET_PARAM_IPV4_GW; | | iface_type = ISCSI_IFACE_TYPE_IPV4; | | param_type = ISCSI_NET_PARAM; | | value[0] = ipgateway[0]; | | value[1] = ipgateway[1]; | | value[2] = ipgateway[2]; | | value[3] = ipgateway[3]; | | } | ----------------------------------------------------------------- | | | iscsi_net_param { | | iface_num = 1; | | len = 4; | | param = ISCSI_NET_PARAM_IPV4_ADDR; | | iface_type = ISCSI_IFACE_TYPE_IPV4; | | param_type = ISCSI_NET_PARAM; | | value[0] = ipaddress[0]; | | value[1] = ipaddress[1]; | | value[2] = ipaddress[2]; | | value[3] = ipaddress[3]; | | } | ----------------------------------------------------------------- ----------------------------------------------------------------- | iscsi_net_param { | | iface_num = 0; | | len = 4; | | param = ISCSI_NET_PARAM_IPV4_GW; | | iface_type = ISCSI_IFACE_TYPE_IPV4; | | param_type = ISCSI_NET_PARAM; | | value[0] = ipgateway[0]; | | value[1] = ipgateway[1]; | | value[2] = ipgateway[2]; | | value[3] = ipgateway[3]; | | } | ----------------------------------------------------------------- | iscsi_net_param { | | iface_num = 1; | | len = 1; | | param = ISCSI_NET_PARAM_IFACE_ENABLED; | | iface_type = ISCSI_IFACE_TYPE_IPV4; | | param_type = ISCSI_NET_PARAM; | | offset = 0; | | value[0] = 0; /* 0 = disable, default = 1 = enable */ | | } | ----------------------------------------------------------------- Each netconfig parameter has different size requirement for value field. e.g.: IPv4 address requires 4 bytes, IPv6 address requires 16 bytes etc. The memory allocated for each netconfig parameter is size of iscsi_net_param + length required for that parameter. The multiple IO Vector mechanism is used to send netconfig parameter from user space to kernel using Netlink interface. IO Vector 0 is used for Netlink message header. IO Vector 1 is used for iSCSI User Event (ev). - The ev will be sent down with event type = ISCSI_UEVENT_SET_NET_CONFIG IO Vector 2 onwards, each vector consists of the struct iscsi_net_param with parameter name followed by its value. The total size will be addition of all the IO vector sizes. 3.2 Kernel space code: - Once event is received, the buffer will look like struct iscsi_net_param with parameter name followed by its value, then next parameter and its value and so on. - the scsi_transport_iscsi would call the adapter's transport->set_net_config - In set_net_config each individual param can be decoded and set into the hardware. 4. qla4xxx configuration: iscsid, creates the iface for qla4xxx, based on the hwaddress. To display the iface related to qla4xxx execute following \# iscsiadm -m iface qla4xxx.00:0e:1e:04:8b:2e qla4xxx,00:0e:1e:04:8b:2e,<empty>,<empty>,<empty> qla4xxx.00:0e:1e:04:8b:2e.ipv6 qla4xxx,00:0e:1e:04:8b:2e,<empty>,<empty>,<e mpty> qla4xxx.00:0e:1e:04:8b:2a qla4xxx,00:0e:1e:04:8b:2a,20.15.0.66,<empty>,<emp ty> qla4xxx.00:0e:1e:04:8b:2a.ipv6 qla4xxx,00:0e:1e:04:8b:2a,2001:DB8:1111:2222::8888,<empty>,<empty> qla4xxx.00:0e:1e:04:8b:2a.ipv6.1 qla4xxx,00:0e:1e:04:8b:2a,2001:DB8:4444:5555::9999,<empty>,<empty> To setup network configuration there can be two methods 4. 1. User can manually modify the iface file, and issue an "apply" command. --------------------------------------------------------------------------- \#cat /etc/iscsi/ifaces/ iface.example iface0 qla4xxx.00:0e:1e:04:8b:2a qla4xxx.00:0e:1e:04:8b:2e Example: \# cat qla4xxx.00:0e:1e:04:8b:2a iface.iscsi_ifacename = qla4xxx.00:0e:1e:04:8b:2a iface.transport_name = qla4xxx iface.hwaddress = 00:0e:1e:04:8b:2a iface.state = enable iface.iface_num = 0 (default) iface.bootproto = static iface.ipaddress = 192.168.2.2 (decimal) iface.subnetmask = 255.255.255.0 (decimal) \# vi qla4xxx.00:0e:1e:04:8b:2a.ipv6 (If file does not exist, the one can create it) iface.iscsi_ifacename = qla4xxx.00:0e:1e:04:8b:2a.ipv6 iface.transport_name = qla4xxx iface.hwaddress = 00:0e:1e:04:8b:2a iface.ipaddress = 1111:2222::7777:8888 (hex) iface.iface_num = 0 \# iscsiadm -m iface -H 00:0e:1e:04:8b:2a --op=applyall This will find the ifaces on the host with MAC address 00:0e:1e:04:8b:2a and apply the settings to the hardware.. Note, this will read all the iface belonging to the same MAC address. Note2, Instead of a MAC address the host number can be passed in. 4.2. User can use iscsiadm to specify the values and then apply -------------------------------------------------------------- \# ls /etc/iscsi/ifaces/ iface.example iface0 qla4xxx.00:0e:1e:04:8b:2a qla4xxx.00:0e:1e:04:8b:2e \# iscsiadm -m iface -I qla4xxx.00:0e:1e:04:8b:2a -o update \ -n iface.ipaddress -v 192.168.1.2 \# iscsiadm -m iface -I qla4xxx.00:0e:1e:04:8b:2a -o update \ -n iface.gateway -v 192.168.1.1 \# iscsiadm -m iface -I qla4xxx.00:0e:1e:04:8b:2a -o update \ -n iface.subnet_mask -v 255.255.255.0 \# iscsiadm -m iface -H 00:0e:1e:04:8b:2a -o applyall Setting up multiple IP: First interface (default, no need to set iface_num, it is 0 by default) \# iscsiadm -m iface -I qla4xxx.00:0e:1e:04:8b:2a -o update \ -n iface.ipaddress -v 192.168.1.2 Create the second one if it does not exist \# iscsiadm -m iface -I qla4xxx.00:0e:1e:04:8b:2a.1 -op=new \# iscsiadm -m iface -I qla4xxx.00:0e:1e:04:8b:2a -o update \ -n iface.iface_num -v 1 (Mandatory) \# iscsiadm -m iface -I qla4xxx.00:0e:1e:04:8b:2a -o update \ -n iface.ipaddress -v 192.168.1.3 \# iscsiadm -m iface -H 00:0e:1e:04:8b:2a --op=applyall Note: If there are common settings for multiple interfaces then the settings from 0th iface would be considered valid. Note: To apply settings for a single iface, just say --op=apply Signed-off-by: Lalit Chandivade <lalit.chandivade@qlogic.com> Signed-off-by: Harish Zunjarrao <harish.zunjarrao@qlogic.com> [formatting fixes and addition of host param for applyall] Signed-off-by: Mike Christie <michaelc@cs.wisc.edu> Signed-off-by: Vikas Chaudhary <vikas.chaudhary@qlogic.com>
* open-isns: Fix warnings reported by gcc-4.5.2Jim Ramsay2011-08-024-3/+6
| | | | | | Unused symbols and type mis-matches. Signed-off-by: Jim Ramsay <jim_ramsay@dell.com>
* fwparam_ibft: Fix warnings reported by gcc-4.5.2Jim Ramsay2011-08-023-81/+96
| | | | | | | A simple cast for the qsort comparison parameter, and an updated prom_lex.c generated by flex-2.5.35 Signed-off-by: Jim Ramsay <jim_ramsay@dell.com>
* fwparam_sysfs: fix pathname manipulation error in fwparam_sysfs_boot_info.Ales Kozumplik2011-02-081-1/+1
| | | | | | A slash was missing in the pathname producing nonexistent filenames starting with "/sys/firmwareiscsi_boot5" instead of "/sys/firmware/iscsi_boot5". Also see fwparam_sysfs_get_targets().
* iscsi tools: disable isns dsa codeMike Christie2011-01-311-1/+0
| | | | | | For discovery we do not use the isns dsa code but still build against libcrypto. This disables the code until we add support.
* iscsi tools: fix iscsiadm exit codesMike Christie2011-01-313-16/+22
| | | | | | | | | iscsiadm/iscsistart return a mix of type of returns codes. Sometimes -1 and sometimes a EXYZ type of error code. This patch has them return a ISCSI_ERR value. See iscsiadm man page EXIT STATUS section for error code definitions.
* iscsi boot: fix iscsi_boot sysfs parsingMike Christie2011-01-011-7/+16
| | | | | | | | | | | | | This fixes 2 bugs: 1. Some implementations will create boot sysfs dirs, but not put anything in them or partially setup the boot sysfs tree. In those cases, if there are other boot dirs with valid info then we do not want to fail the entire operation. 2. The iscsi_boot dir was not getting processed correctly, because of a missing "/" in the path name.
* isns: Fix endless loop when pollhup is returnedMike Christie2010-08-311-1/+1
| | | | | | | | | | | | | | | | | | | | | | | From: Mike Christie <mchristi@redhat.com> If we are trying to send data, but get a POLLHUP we get stuck in a endless loop. The problem is that the isns socket handling for POLLHUP only clears the POLLIN bit, so when we do this check: /* No more input and output means closed&dead */ if (sock->is_state == ISNS_SOCK_IDLE && !(sock->is_poll_mask & (POLLIN|POLLOUT))) { isns_debug_socket("connection closed by peer, killing socket\n"); isns_net_close(sock, ISNS_SOCK_FAILED); } the POLLOUT bit is still set and we never are able to close the old socket and reconnect a new one or fail or pass the status to the caller. This patch has the pollhup callout clear the POLLOUT bit.
* iscsiadm: fix boot code compile errorMike Christie2010-07-111-0/+484
| | | | | Rookie mistake. Forgot to git add the utils/fwparam_ibft/fwparam_sysfs.c file for commit fe5cca505d6509dd67cefe85a96e0a4db6cedb4d
* iscsi boot: add support for iscsi boot sysfs moduleMike Christie2010-07-103-7/+5
| | | | | | This patch modifies the ibft sysfs code to support the iscsi boot sysfs module which is used by be2iscsi to export be2iscsi boot info.
* Fix CVE-2009-1297Ritesh Raj Sarraf2010-04-061-6/+4
| | | | | | | | | | | | | The MITRE CVE dictionary describes this issue as: iscsi_discovery in open-iscsi in SUSE openSUSE 10.3 through 11.1 and SUSE Linux Enterprise (SLE) 10 SP2 and 11 allows local users to overwrite arbitrary files via a symlink attack on an unspecified temporary file that has a predictable name. Thanks to Colin Watson Signed-off-by: Ritesh Raj Sarraf <rsarraf@netapp.com>
* isns: fix compilationMike Christie2010-03-221-0/+0
| | | | | | Make configure script executable. Signed-off-by: Mike Christie <michaelc@cs.wisc.edu>
* iscsid: add isns discovery daemon and SCN supportMike Christie2010-03-227-21/+97
| | | | | | | | | | | | | | | | | | | | | | | | | | This adds the following params to iscsid.conf discovery.daemon.isns.addresses discovery.daemon.isns.poll_interval These work like SendTargets where if you the param iscsid will do discovery and log into the portals found. This also adds iSNS SCN support. Like the other code it only supports login of new targets. Some notes: - It does not appear to work with the Microsoft iSNS server shipping with Windows 2008 rc. I have not tested 2003. The server does not seem to be sending any SCNs and at the same time when we register for SCNs it tells us the operation was successful. From the Microsoft docs it appears that the server does not support SCN events. - Linux-isns is not working with our code. The Linux-isns code appears to be sending iSNS SCN pdus with an incorrect format. - It is working with open-isns.git.
* iscsi tools: use open-isns servicesMike Christie2010-03-22167-0/+71661
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This replaces the native isns code with open-isns's libisns. I included the open-isns code in the open-iscsi tarball to make distribution easier since some distros use different isns clients and may not want to carry open-isns. This is based on open-isns commit 5e09f36d3446e41de0b8361601ffec4cd140d513. Changes in iSNS behavior/use: - To do discovery you must pass the ip and optionally the port to iscsiadm: iscsiadm -m discovery -t st -p 10.15.0.9 This command accepts the same ops as sendtargets so you can add/remove/update the node records that are created. It also supports ifaces properly now. - isns.address and isns.port in iscsid.conf are no longer used. - ESI is temporarily not supported. This will be fixed in the next patch when SCNs support is added. - The iscsiadm isns discovery command is not marked as stable. Signed-off-by: Mike Christie <michaelc@cs.wisc.edu>
* iscsi tools: nic setup cleanupMike Christie2010-01-152-117/+12
| | | | | | This just breaks up the network part of the nic setup code to a new function that lives in the net utils code, so it can be used by other callers one day.