freebsd-dev/share
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
..
colldef Readd Big5: some large databases setup are still requiring it. 2017-04-20 18:21:50 +00:00
ctypedef Readd Big5: some large databases setup are still requiring it. 2017-04-20 18:21:50 +00:00
dict
doc In preparation for the removal of the roff toolchain, disconnect the 2017-05-25 14:54:22 +00:00
dtrace Remove redefinitions of some kernel types from mbuf.d. 2016-09-03 20:43:59 +00:00
examples Add kyua TAP test integration examples 2017-06-28 08:22:04 +00:00
i18n share: normalize paths using SRCTOP-relative paths or :H when possible 2017-03-04 11:26:40 +00:00
keys
man Switch fabric scans from GID_FT to GID_PT+GFF_ID/GFT_ID. 2017-07-03 15:56:45 +00:00
misc Add myself to commiters-src.dot, emaste@ as mentor; sort his mentees while here 2017-06-30 20:01:31 +00:00
mk Do not build clang for all riscv*, not just riscv64 2017-07-01 19:10:59 +00:00
monetdef Readd Big5: some large databases setup are still requiring it. 2017-04-20 18:21:50 +00:00
msgdef Readd Big5: some large databases setup are still requiring it. 2017-04-20 18:21:50 +00:00
numericdef Readd Big5: some large databases setup are still requiring it. 2017-04-20 18:21:50 +00:00
security
sendmail share: normalize paths using SRCTOP-relative paths or :H when possible 2017-03-04 11:26:40 +00:00
skel skel: Remove reference to deleted part in previous commit to this file. 2017-01-24 21:07:13 +00:00
snmp
syscons Remove pc98 support completely. 2017-01-28 02:22:15 +00:00
tabset
termcap Revert r314833 until the problem with INSTALL_RSYMLINKS can be found 2017-03-12 00:37:45 +00:00
tests
timedef Canada adheres to ISO 8601, let's make the locale reflecting that fact 2017-03-19 18:21:35 +00:00
vt Add "Terminus BSD Console" size 32 2017-06-26 18:11:48 +00:00
zoneinfo Allow parallel installworld (-j N) and poudriere installworld 2017-06-28 19:05:04 +00:00
Makefile Remove groff from base 2017-06-07 23:00:34 +00:00
Makefile.inc