Revision 7b6fb3050d8f5e2b6858eef344e47ac1f5442827 authored by Benjamin Poirier on 31 January 2024, 14:08:44 UTC, committed by Jakub Kicinski on 01 February 2024, 16:36:20 UTC
Similar to commit dd2d40acdbb2 ("selftests: bonding: Add more missing
config options"), add more networking-specific config options which are
needed for team device tests.

For testing, I used the minimal config generated by virtme-ng and I added
the options in the config file. Afterwards, the team device test passed.

Fixes: bbb774d921e2 ("net: Add tests for bonding and team address list management")
Reviewed-by: Petr Machata <petrm@nvidia.com>
Signed-off-by: Benjamin Poirier <bpoirier@nvidia.com>
Link: https://lore.kernel.org/r/20240131140848.360618-2-bpoirier@nvidia.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
1 parent e0526ec
Raw File
scsi-generic.rst
.. SPDX-License-Identifier: GPL-2.0

========================
SCSI Generic (sg) driver
========================

                                                        20020126

Introduction
============
The SCSI Generic driver (sg) is one of the four "high level" SCSI device
drivers along with sd, st and sr (disk, tape and CD-ROM respectively). Sg
is more generalized (but lower level) than its siblings and tends to be
used on SCSI devices that don't fit into the already serviced categories.
Thus sg is used for scanners, CD writers and reading audio CDs digitally
amongst other things.

Rather than document the driver's interface here, version information
is provided plus pointers (i.e. URLs) where to find documentation
and examples.


Major versions of the sg driver
===============================
There are three major versions of sg found in the Linux kernel (lk):
      - sg version 1 (original) from 1992 to early 1999 (lk 2.2.5) .
	It is based in the sg_header interface structure.
      - sg version 2 from lk 2.2.6 in the 2.2 series. It is based on
	an extended version of the sg_header interface structure.
      - sg version 3 found in the lk 2.4 series (and the lk 2.5 series).
	It adds the sg_io_hdr interface structure.


Sg driver documentation
=======================
The most recent documentation of the sg driver is kept at

- https://sg.danny.cz/sg/

This describes the sg version 3 driver found in the lk 2.4 series.

Documentation (large version) for the version 2 sg driver found in the
lk 2.2 series can be found at

- https://sg.danny.cz/sg/p/scsi-generic_long.txt.

The original documentation for the sg driver (prior to lk 2.2.6) can be
found in the LDP archives at

- https://tldp.org/HOWTO/archived/SCSI-Programming-HOWTO/index.html

A more general description of the Linux SCSI subsystem of which sg is a
part can be found at https://www.tldp.org/HOWTO/SCSI-2.4-HOWTO .


Example code and utilities
==========================
There are two packages of sg utilities:

    =========   ==========================================================
    sg3_utils   for the sg version 3 driver found in lk 2.4
    sg_utils    for the sg version 2 (and original) driver found in lk 2.2
                and earlier
    =========   ==========================================================

Both packages will work in the lk 2.4 series. However, sg3_utils offers more
capabilities. They can be found at: https://sg.danny.cz/sg/sg3_utils.html and
freecode.com

Another approach is to look at the applications that use the sg driver.
These include cdrecord, cdparanoia, SANE and cdrdao.


Mapping of Linux kernel versions to sg driver versions
======================================================
Here is a list of Linux kernels in the 2.4 series that had the new version
of the sg driver:

     - lk 2.4.0 : sg version 3.1.17
     - lk 2.4.7 : sg version 3.1.19
     - lk 2.4.10 : sg version 3.1.20 [#]_
     - lk 2.4.17 : sg version 3.1.22

.. [#] There were 3 changes to sg version 3.1.20 by third parties in the
       next six Linux kernel versions.

For reference here is a list of Linux kernels in the 2.2 series that had
the new version of the sg driver:

     - lk 2.2.0 : original sg version [with no version number]
     - lk 2.2.6 : sg version 2.1.31
     - lk 2.2.8 : sg version 2.1.32
     - lk 2.2.10 : sg version 2.1.34 [SG_GET_VERSION_NUM ioctl first appeared]
     - lk 2.2.14 : sg version 2.1.36
     - lk 2.2.16 : sg version 2.1.38
     - lk 2.2.17 : sg version 2.1.39
     - lk 2.2.20 : sg version 2.1.40

The lk 2.5 development series currently contains sg version 3.5.23
which is functionally equivalent to sg version 3.1.22 found in lk 2.4.17.


Douglas Gilbert

26th January 2002

dgilbert@interlog.com
back to top