<feed xmlns='http://www.w3.org/2005/Atom'>
<title>openslx-ng/ipxe.git/src/drivers/block, branch master</title>
<subtitle>Fork of ipxe; additional commands and features</subtitle>
<id>https://git.openslx.org/openslx-ng/ipxe.git/atom/src/drivers/block?h=master</id>
<link rel='self' href='https://git.openslx.org/openslx-ng/ipxe.git/atom/src/drivers/block?h=master'/>
<link rel='alternate' type='text/html' href='https://git.openslx.org/openslx-ng/ipxe.git/'/>
<updated>2017-05-10T15:01:47+00:00</updated>
<entry>
<title>[iscsi] Fix iBFT when no explicit initiator name setting exists</title>
<updated>2017-05-10T15:01:47+00:00</updated>
<author>
<name>Michael Brown</name>
</author>
<published>2017-05-10T14:30:51+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/openslx-ng/ipxe.git/commit/?id=a19ac24971214e6b14b9c50b377c24079523dbb5'/>
<id>urn:sha1:a19ac24971214e6b14b9c50b377c24079523dbb5</id>
<content type='text'>
Commit 7cfdd76 ("[block] Describe all SAN devices via ACPI tables")
changed the definition of the iSCSI initiator IQN in the iBFT to
represent a common initiator IQN used for all iSCSI sessions, and
attempted to calculate this common initiator IQN by fetching the
common ${initiator-iqn} setting.

This fails when no explicit ${initiator-iqn} has been specified
(i.e. when an initiator IQN has instead been constructed from either
the hostname or system UUID), and results in an empty initiator IQN in
the iBFT.

Fix by using the initiator IQN of an arbitrary iSCSI session
present in the iBFT.

Debugged-by: Tal Aloni &lt;tal.aloni.il@gmail.com&gt;
Signed-off-by: Michael Brown &lt;mcb30@ipxe.org&gt;
</content>
</entry>
<entry>
<title>[scsi] Retry TEST UNIT READY command</title>
<updated>2017-03-29T09:42:36+00:00</updated>
<author>
<name>Michael Brown</name>
</author>
<published>2017-03-29T09:29:44+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/openslx-ng/ipxe.git/commit/?id=a66ac07165855d8144f69a68d5c0ab0eb36e97e2'/>
<id>urn:sha1:a66ac07165855d8144f69a68d5c0ab0eb36e97e2</id>
<content type='text'>
The TEST UNIT READY command is issued automatically when the device is
opened, and is not the result of a command being issued by the caller.
This is required in order that a permanent TEST UNIT READY failure can
be used to identify unusable paths in a multipath SAN device.

Since the TEST UNIT READY command is not part of the caller's command
issuing process, it is not covered by any external retry loops (such
as the main retry loop in sandev_command()).

We must therefore be prepared to retry the TEST UNIT READY command
within the SCSI layer itself.  We retry only the TEST UNIT READY
command so as not to multiply the number of potential retries for
normal commands (which are already retried by sandev_command()).

Signed-off-by: Michael Brown &lt;mcb30@ipxe.org&gt;
</content>
</entry>
<entry>
<title>[iscsi] Do not install iBFT when no iSCSI targets exist</title>
<updated>2017-03-28T17:45:23+00:00</updated>
<author>
<name>Michael Brown</name>
</author>
<published>2017-03-28T17:45:23+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/openslx-ng/ipxe.git/commit/?id=2ace5196e5580810ea3aa53352a4a7331f442e58'/>
<id>urn:sha1:2ace5196e5580810ea3aa53352a4a7331f442e58</id>
<content type='text'>
Signed-off-by: Michael Brown &lt;mcb30@ipxe.org&gt;
</content>
</entry>
<entry>
<title>[block] Describe all SAN devices via ACPI tables</title>
<updated>2017-03-28T16:12:48+00:00</updated>
<author>
<name>Michael Brown</name>
</author>
<published>2017-03-27T15:20:34+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/openslx-ng/ipxe.git/commit/?id=7cfdd769aac76d605aa31146c69ba518b194bea7'/>
<id>urn:sha1:7cfdd769aac76d605aa31146c69ba518b194bea7</id>
<content type='text'>
Describe all SAN devices via ACPI tables such as the iBFT.  For tables
that can describe only a single device (i.e. the aBFT and sBFT), one
table is installed per device.  For multi-device tables (i.e. the
iBFT), all devices are described in a single table.

An underlying SAN device connection may be closed at the time that we
need to construct an ACPI table.  We therefore introduce the concept
of an "ACPI descriptor" which enables the SAN boot code to maintain an
opaque pointer to the underlying object, and an "ACPI model" which can
build tables from a list of such descriptors.  This separates the
lifecycles of ACPI descriptions from the lifecycles of the block
device interfaces, and allows for construction of the ACPI tables even
if the block device interface has been closed.

For a multipath SAN device, iPXE will wait until sufficient
information is available to describe all devices but will not wait for
all paths to connect successfully.  For example: with a multipath
iSCSI boot iPXE will wait until at least one path has become available
and name resolution has completed on all other paths.  We do this
since the iBFT has to include IP addresses rather than DNS names.  We
will commence booting without waiting for the inactive paths to either
become available or close; this avoids unnecessary boot delays.

Note that the Linux kernel will refuse to accept an iBFT with more
than two NIC or target structures.  We therefore describe only the
NICs that are actually required in order to reach the described
targets.  Any iBFT with at most two targets is therefore guaranteed to
describe at most two NICs.

Signed-off-by: Michael Brown &lt;mcb30@ipxe.org&gt;
</content>
</entry>
<entry>
<title>[scsi] Avoid duplicate call to scsicmd_close() on TEST UNIT READY failure</title>
<updated>2017-03-26T08:29:18+00:00</updated>
<author>
<name>Michael Brown</name>
</author>
<published>2017-03-26T08:21:14+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/openslx-ng/ipxe.git/commit/?id=6bc4a8ac918b2dc5a460b3d2032055d8f7a478ff'/>
<id>urn:sha1:6bc4a8ac918b2dc5a460b3d2032055d8f7a478ff</id>
<content type='text'>
When the TEST UNIT READY command receives an error response, the
shutdown of the command's block data interface will result in
scsidev_ready() closing the SCSI device.  This will subsequently
result in a duplicate call to scsicmd_close(), leading to an assertion
failure when list_del() is called for the second time.

Fix by removing the command from the list of outstanding commands
before shutting down the command's interfaces.

Signed-off-by: Michael Brown &lt;mcb30@ipxe.org&gt;
</content>
</entry>
<entry>
<title>[scsi] Avoid duplicate calls to scsicmd_close()</title>
<updated>2017-03-09T13:07:57+00:00</updated>
<author>
<name>Michael Brown</name>
</author>
<published>2017-03-09T12:45:45+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/openslx-ng/ipxe.git/commit/?id=9db9221ea0e3a7a4b32cf7fbdb17a46af474ce2b'/>
<id>urn:sha1:9db9221ea0e3a7a4b32cf7fbdb17a46af474ce2b</id>
<content type='text'>
When a SCSI device is closed in error, the shutdown of the device's
block data interface will probably lead to any outstanding commands
being closed (by whichever object is currently connected to the block
data interface).  However, commands remain in the list of outstanding
commands until the final reference is dropped.  The result is that
scsidev_close() will make a second call to scsicmd_close() for each
command.  This is harmless, but produces confusing debug messages.

Fix by treating the outstanding command list as holding an explicit
reference to each command, and removing the command from the list of
outstanding commands in scsicmd_close().

Signed-off-by: Michael Brown &lt;mcb30@ipxe.org&gt;
</content>
</entry>
<entry>
<title>[scsi] Use intfs_shutdown() when shutting down multiple interfaces</title>
<updated>2017-03-09T12:16:35+00:00</updated>
<author>
<name>Michael Brown</name>
</author>
<published>2017-03-09T12:16:35+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/openslx-ng/ipxe.git/commit/?id=7ff3fc7c72effe730cc8ee0a2964efbd7fc58d2a'/>
<id>urn:sha1:7ff3fc7c72effe730cc8ee0a2964efbd7fc58d2a</id>
<content type='text'>
Signed-off-by: Michael Brown &lt;mcb30@ipxe.org&gt;
</content>
</entry>
<entry>
<title>[block] Retry any SAN device operation</title>
<updated>2017-03-07T16:11:22+00:00</updated>
<author>
<name>Michael Brown</name>
</author>
<published>2017-03-07T16:11:22+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/openslx-ng/ipxe.git/commit/?id=d9886f1961f9970b4354442e84b98727b69cd73a'/>
<id>urn:sha1:d9886f1961f9970b4354442e84b98727b69cd73a</id>
<content type='text'>
The SCSI layer currently implements a retry loop in order to retry
commands that fail due to spurious "error" conditions such as "power
on occurred".  Move this retry loop to the generic SAN device layer:
this allow for retries due to other transient error conditions such as
an iSCSI target having dropped the connection due to inactivity.

Signed-off-by: Michael Brown &lt;mcb30@ipxe.org&gt;
</content>
</entry>
<entry>
<title>[iscsi] Include DHCP server address in iBFT</title>
<updated>2016-03-29T18:38:18+00:00</updated>
<author>
<name>Michael Brown</name>
</author>
<published>2016-03-29T18:38:18+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/openslx-ng/ipxe.git/commit/?id=97c3f6e55a941a3caf3a0a36346d2e89f5a7b283'/>
<id>urn:sha1:97c3f6e55a941a3caf3a0a36346d2e89f5a7b283</id>
<content type='text'>
Signed-off-by: Michael Brown &lt;mcb30@ipxe.org&gt;
</content>
</entry>
<entry>
<title>[legal] Relicense files under GPL2_OR_LATER_OR_UBDL</title>
<updated>2015-03-02T14:17:31+00:00</updated>
<author>
<name>Michael Brown</name>
</author>
<published>2015-03-02T11:54:40+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/openslx-ng/ipxe.git/commit/?id=b6ee89ffb5029d02cb1d8668757fa2b74b11e0a3'/>
<id>urn:sha1:b6ee89ffb5029d02cb1d8668757fa2b74b11e0a3</id>
<content type='text'>
Relicense files for which I am the sole author (as identified by
util/relicense.pl).

Signed-off-by: Michael Brown &lt;mcb30@ipxe.org&gt;
</content>
</entry>
</feed>
