[Pkg-iscsi-maintainers] Bug#877949: Package description: do you really mean "offload"?

Christian Seiler christian at iwakd.de
Sat Oct 7 22:33:21 UTC 2017


Hi,

On 10/07/2017 10:56 PM, Martin Eberhard Schauer wrote:
> Package: iscsiuio
> Version: 2.0.874-3~deb9u1
> Severity: wishlist
> X-Debbugs-CC: debian-l10n-english at lists.debian.org
> 
> the last paragraph of the package description [1] and its short
> description sound strange to me.
> 
>   "This package is required to offload iSCSI onto these devices."
> 
> Not being a native English speaker, I found [2]. Thus I believe that
> "offload" and "onto" don't fit together.

I'm not a native speaker either, but the link you mentioned does
actually use "offload onto" in the example. To quote your link [2]
<http://dictionary.cambridge.org/de/worterbuch/englisch/offload#translations>:

   [Definition]
      get rid of something that you do not want by giving it to someone
      else

   [Example]
      I managed to offload some of our old furniture onto a friend who
      just bought a house.

This does fit the package; iscsiuio enables offloading of the work
required to process and generate iSCSI packets onto the network card
itself. (Some network cards capable of iSCSI offloading don't require
iscsiuio for that functionality to work, but those in the package
description do.)

The term "offload" is also used widely in similar contexts in the
network stack, for example when it comes to calculating TCP checksums:
https://en.wikipedia.org/wiki/TCP_offload_engine

That said, I am open to wording improvements to help clarify this, but:

> Perhaps
>   "You need this package|software to make these devices work with iSCSI"?

Sorry, but this is completely wrong on a technical level. The devices
we are talking about here are network cards (NICs). There have been
drivers in the Linux kernel for these network cards for years now, you
don't need iscsiuio to make them work at all.

You also don't need iscsiuio to make iSCSI work over them: the standard
software iSCSI stack on Linux will work perfectly fine over any network
card.

What iscsiuio does here is that it provides a part of the functionality
required to have the network cards take over the processing of the
iSCSI sessions. This means that the processing of data packets (reading
and writing from/to iSCSI disks) is now not done by the kernel on the
CPU, but done by the network card itself. This reduces the CPU load on
the host system and improves performance with iSCSI. But you don't
actually need to use those features of your network card if you just
want to get iSCSI to work.

If you want to go further into more detail, iscsiuio is actually a
really ironic thing. The QLogic (formerly Broadcom) cards that iscsiuio
supports are cards that for some reason unknown to me separate the
actual network capabilities and the offloading capabilities. But they
also only support the actual iSCSI protocol over TCP, but no other IP
protocols (such as ARP or DHCP) that are actually required to
successfully have a link. Therefore it is up to the software to provide
DHCP / ARP functionality for the part of the card that handles the
iSCSI offloading, which is kind of a reverse offloading for the ARP
functionality. And the driver authors for these cards have decided
that they want to provide that via a userspace daemon. In fact, once
the offloaded iSCSI session over a QLogic/Broadcom card has been
established and if you don't care about the ability to be able to
reconnect in case the link goes down, you can actually shut down the
iscsiuio daemon completely, you only need it while you're establishing
the iSCSI session to provide ARP and possibly DHCP functionality.

Also note that there are other networking cards that don't use this
logic. The Chelsio cards that were first supported in Linux for iSCSI
offloading don't separate the regular network interface from the
offloading part, so there you can just configure the network interface
normally and open-iscsi can directly tell the kernel driver to perform
the offloading, without any need for iscsiuio.



Hope that clarifies a bit what this package does.


I'm open to improving the package description, but I do want to keep
the work "offload" in a prominent position there, as that is the
standard technical term in this field, and people who want to use that
functionality will search for that word.

Regards,
Christian



More information about the Pkg-iscsi-maintainers mailing list