freebsd-dev/sys/dev/isp
Alexander Motin a94fab67bb Switch fabric scans from GID_FT to GID_PT+GFF_ID/GFT_ID.
Instead of using GID_FT SNS request to get list of registered FCP ports,
use GID_PT to get list of all Nx_Ports, and then use GFF_ID and/or GFT_ID
requests to find whether they are FCP and target capable.

The problem with old approach is that GID_FT does not report ports without
FC-4 type registered.  In particular it was impossible to boot OS from
FreeBSD FC target using QLogic FC BIOS, since one does not register FC-4
type even on new cards and so ignored by old code as incompatible.

As a side bonus this allows initiator to skip pointless logins to other
initiators by fetching that information from SNS instead.

In case some switches do not implement GFF_ID/GFT_ID correctly, add sysctls
to disable that functionality.  I handled broken GFF_ID of my Brocade 200E,
but there may be other switches with different bugs.

Linux also uses GID_PT, but GFF_ID is disabled by default there, and GFT_ID
is not supported.

Sponsored by:	iXsystems, Inc.
2017-07-03 15:56:45 +00:00
..
DriverManual.txt sys/dev: minor spelling fixes. 2016-05-03 03:41:25 +00:00
Hardware.txt
isp_freebsd.c Switch fabric scans from GID_FT to GID_PT+GFF_ID/GFT_ID. 2017-07-03 15:56:45 +00:00
isp_freebsd.h Unify initiator and target DMA setup and command sending. 2017-03-24 14:44:03 +00:00
isp_ioctl.h
isp_library.c Switch fabric scans from GID_FT to GID_PT+GFF_ID/GFT_ID. 2017-07-03 15:56:45 +00:00
isp_library.h Switch fabric scans from GID_FT to GID_PT+GFF_ID/GFT_ID. 2017-07-03 15:56:45 +00:00
isp_pci.c Unify initiator and target DMA setup and command sending. 2017-03-24 14:44:03 +00:00
isp_sbus.c Unify initiator and target DMA setup and command sending. 2017-03-24 14:44:03 +00:00
isp_stds.h Register symbolic port/node names in FC name server. 2016-04-09 14:50:47 +00:00
isp_target.c Remove hackish code delaying ATIOs to unknown virtual port. 2017-03-19 13:46:11 +00:00
isp_target.h Remove some dead stuff. 2017-03-19 09:36:43 +00:00
isp.c Switch fabric scans from GID_FT to GID_PT+GFF_ID/GFT_ID. 2017-07-03 15:56:45 +00:00
ispmbox.h Switch fabric scans from GID_FT to GID_PT+GFF_ID/GFT_ID. 2017-07-03 15:56:45 +00:00
ispreg.h Fix and improve error masking and reporting. 2015-10-29 16:48:12 +00:00
ispvar.h Switch fabric scans from GID_FT to GID_PT+GFF_ID/GFT_ID. 2017-07-03 15:56:45 +00:00