On Wed, Nov 26, 2014 at 02:49:12PM +0800, WANG Chao wrote:
On 11/25/14 at 02:59pm, Chris Leech wrote:
> On Tue, Nov 25, 2014 at 03:06:43PM +0800, WANG Chao wrote:
> > On 11/24/14 at 04:54pm, Chris Leech wrote:
> > > On Mon, Nov 24, 2014 at 03:02:05PM -0800, Andy Grover wrote:
> > > > iBFT-fu = you. Or I can take a stab.. -A
> > >
> > > Hi, jumping in here without full context but ...
> > >
> > > You can check the iSCSI node records node.discovery_type value for
> > > (iBFT being the most common type of firmware discovery). Non-firmware
> > > records will be set to something else like send_targets, static, isns.
> > Thanks Chris.
> > What about hardware iscsi connection, is it right to determine this by
> > its transport class?
> In open-iscsi terms a session is an activated node record, and a node
> record is tied to an iface record. The transport in use is found in the
> node record as iface.transport_name and can be tcp, iser (for iSCSI over
> RDMA) or a vendor specific hardware driver.
> > Is it possible (or common) to manually start a connection using a
> > specific offload driver w/o configurations in HBA's firmware?
> Yes, firmware records are generally only used if booting off of iSCSI.
> Offloaded sessions are created by specifying an offload iface during the
> discovery command (which is also used to create static entries). And
> firmware discovery does not always imply offload, as network cards that
> only have boot ROM support expose iBFT information and use the tcp
> transport once the OS is up.
Thanks! These are very useful.
I have a couple of followup questions:
Will offload iface be created automatically? I mean if firmware has
configurations, I don't have to create offload iface by hand and
iscsiadm (or something else) will automatically create for me?
Yes, when iscsiadm is asked to list ifaces it will check sysfs for any
new offload iface exposed by kernel drivers and create the records.
"iscsiadm -m iface" should generate and show everything. There are
reasons to create iface records manually, but it's mostly to bind
software iSCSI to specific network interfaces.
I know that /sys/firmware/ibft/ is provided by iBFT and
/sys/firmware/iscsi_bootX is provided by vender specific driver.
If there's an iscsi session using the configuration in
/sys/firmware/iscsi_bootX, is it hardware iscsi?
I'd have to double check the details, but I'm pretty sure the following
These use the same underlying sysfs code to expose the same type of
information. The ibft version is created by a generic module that looks
for the firmware table in memory from any boot firmware that supports
iBFT, while the iscsi_bootX ones are generated directly by offload iSCSI
drivers from device specific information.
What's the different of terms "iBFT" and "hardware
iscsi"? Are these two
orthogonal terms? Is iBFT software iscsi?
iBFT is an ACPI table to pass information about iSCSI connections to the
OS, it can be used by both software and offloaded iSCSI drivers.