<feed xmlns='http://www.w3.org/2005/Atom'>
<title>src/sys/dev/ocs_fc, branch release/12.3.0</title>
<subtitle>FreeBSD source tree</subtitle>
<id>https://cgit-dev.freebsd.org/src/atom?h=release%2F12.3.0</id>
<link rel='self' href='https://cgit-dev.freebsd.org/src/atom?h=release%2F12.3.0'/>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/'/>
<updated>2020-11-24T13:17:12Z</updated>
<entry>
<title>MFC r367044: Introduce support of SCSI Command Priority.</title>
<updated>2020-11-24T13:17:12Z</updated>
<author>
<name>Alexander Motin</name>
<email>mav@FreeBSD.org</email>
</author>
<published>2020-11-24T13:17:12Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=4b74fa5dd5aef9786aee4f9359be15b9da9a096d'/>
<id>urn:sha1:4b74fa5dd5aef9786aee4f9359be15b9da9a096d</id>
<content type='text'>
SAM-3 specification introduced concept of Task Priority, that was renamed
to Command Priority in SAM-4, and supported by all modern SCSI transports.
It provides 15 levels of relative priorities: 1 - highest, 15 - lowest and
0 - default.  SAT specification for SATA devices translates priorities 1-3
into NCQ high priority.

This change adds new "priority" field into empty spots of struct ccb_scsiio
and struct ccb_accept_tio of CAM and struct ctl_scsiio of CTL.  Respective
support is added into iscsi(4), isp(4), mpr(4), mps(4) and ocs_fc(4) drivers
for both initiator and where applicable target roles.  Minimal support was
added to CTL to receive the priority value from different frontends, pass it
between HA controllers and report in few places.

This patch does not add consumers of this functionality, so nothing should
really change yet, since the field is still set to 0 (default) on initiator
and not actively used on target.  Those are to be implemented separately.

I've confirmed priority working on WD Red SATA disks connected via mpr(4)
and properly transferred to CTL target via iscsi(4), isp(4) and ocs_fc(4).

While there, added missing tag_action support to ocs_fc(4) initiator role.
</content>
</entry>
<entry>
<title>MFC r367041: Fix incorrect constants of target tag action.</title>
<updated>2020-11-08T00:30:53Z</updated>
<author>
<name>Alexander Motin</name>
<email>mav@FreeBSD.org</email>
</author>
<published>2020-11-08T00:30:53Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=b79bd0238dea142f3fafba585ec22e106fd00988'/>
<id>urn:sha1:b79bd0238dea142f3fafba585ec22e106fd00988</id>
<content type='text'>
ocs_scsi_recv_cmd() receives the flags after ocs_get_flags_fcp_cmd(),
which translates them from FCP_TASK_ATTR_* to OCS_SCSI_CMD_*.  As result
non-SIMPLE requests turned into HEAD or ORDERED depending on direction.
</content>
</entry>
<entry>
<title>MFC r359978:</title>
<updated>2020-04-27T23:47:40Z</updated>
<author>
<name>Brooks Davis</name>
<email>brooks@FreeBSD.org</email>
</author>
<published>2020-04-27T23:47:40Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=33b80acf60a1cdf0390c7acc33f13022c7a9515b'/>
<id>urn:sha1:33b80acf60a1cdf0390c7acc33f13022c7a9515b</id>
<content type='text'>
Fix -Wvoid-pointer-to-enum-cast warnings.

This pattern is used in callbacks with void * data arguments and seems
both relatively uncommon and relatively harmless.  Silence the warning
by casting through uintptr_t.

This warning is on by default in Clang 11.

Reviewed by:	arichardson
Obtained from:	CheriBSD (partial)
Sponsored by:	DARPA
Differential Revision:	https://reviews.freebsd.org/D24425
</content>
</entry>
<entry>
<title>MFC r342946: Remove accessing remote node and domain objects</title>
<updated>2019-02-12T17:07:15Z</updated>
<author>
<name>Ram Kishore Vegesna</name>
<email>ram@FreeBSD.org</email>
</author>
<published>2019-02-12T17:07:15Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=86893be9068d3311bb224d75cb1e0c5fe3527850'/>
<id>urn:sha1:86893be9068d3311bb224d75cb1e0c5fe3527850</id>
<content type='text'>
while processing cam actions.
  Issue:
    ocs_fc(4) driver panics. It's induced by setting the port_state
  sysctl to offline, then online, then offline, then online, and so
  forth and so on in rapid succession.

  Reason:
    While we set the port_state to online fc discovery will start and OS
  is enumerating the target discs by calling ocs_action(),  then set the
  port state to "offline" which deletes domain/sport/nodes.

    In ocs_action()-&gt;XPT_GET_TRAN_SETTINGS we are accessing the remote
  node which can be invalid to get the wwpn, wwnn and port.

  Fix:
    Removed accessing of remote node and domain in some ocs_action() cases.
    Populated the required values from ocs_fcport.
    This removes the dependency of node and domain structures while
  processing XPT_PATH_INQ and XPT_GET_TRAN_SETTINGS.
     We will invalidate the target entries after the device lost
  timeout(30 seconds).

Approved by:ken,mav
</content>
</entry>
<entry>
<title>MFC r343348:</title>
<updated>2019-01-24T01:03:12Z</updated>
<author>
<name>Mark Johnston</name>
<email>markj@FreeBSD.org</email>
</author>
<published>2019-01-24T01:03:12Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=a6c3ca3c1e7503c653f382f52aa15ffdeed30be5'/>
<id>urn:sha1:a6c3ca3c1e7503c653f382f52aa15ffdeed30be5</id>
<content type='text'>
ocs_fc: Ensure that we zero-initialize memory before copying it out.

admbugs:	765
</content>
</entry>
<entry>
<title>Use the right buffer size when calling snprintf().</title>
<updated>2018-07-22T18:31:15Z</updated>
<author>
<name>Mark Johnston</name>
<email>markj@FreeBSD.org</email>
</author>
<published>2018-07-22T18:31:15Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=84f0fb8a9347d01a55364a34c440c012695f8386'/>
<id>urn:sha1:84f0fb8a9347d01a55364a34c440c012695f8386</id>
<content type='text'>
PR:	229952
</content>
</entry>
<entry>
<title>Implemented Device Lost Timer, which is used to give target device the time to recover before marking dead.</title>
<updated>2018-07-18T07:01:34Z</updated>
<author>
<name>Ram Kishore Vegesna</name>
<email>ram@FreeBSD.org</email>
</author>
<published>2018-07-18T07:01:34Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=6affb8eb8f0385fd5932f2475442af7efe40ba9d'/>
<id>urn:sha1:6affb8eb8f0385fd5932f2475442af7efe40ba9d</id>
<content type='text'>
Issue: IO fails immediately after doing port-toggle.
Fix: Added LDT(Device Lost Timer)- we wait a specific period of time prior to telling the OS about lost device.

Approved by: ken, mav
MFC after: 3 days
Differential Revision: D16196
</content>
</entry>
<entry>
<title>Fix build of ocs_fs with base gcc on i386</title>
<updated>2018-06-11T07:57:32Z</updated>
<author>
<name>Dimitry Andric</name>
<email>dim@FreeBSD.org</email>
</author>
<published>2018-06-11T07:57:32Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=bc5ea07c09b4468f4c4bd247c6e7ca38bd6841b3'/>
<id>urn:sha1:bc5ea07c09b4468f4c4bd247c6e7ca38bd6841b3</id>
<content type='text'>
Add a few intermediate casts to uintptr_t to suppress "cast to pointer
from integer of different size" warnings from gcc.  Also remove a few
incorrect casts.

Reviewed by:	ram
MFC after:	3 days
Differential Revision: https://reviews.freebsd.org/D15747
</content>
</entry>
<entry>
<title>Issue:</title>
<updated>2018-06-05T15:05:26Z</updated>
<author>
<name>Ram Kishore Vegesna</name>
<email>ram@FreeBSD.org</email>
</author>
<published>2018-06-05T15:05:26Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=ca21db854682926959c0fb25e74e80e93f95159a'/>
<id>urn:sha1:ca21db854682926959c0fb25e74e80e93f95159a</id>
<content type='text'>
   Utility hangs when  OCS_IOCTL_CMD_MGMT_GET_ALL called in parallel on port 0 and port 1.

Fix: Using static structure for results is corrupting the second ioctl request. Removed static for results structure.
Approved by: ken
MFC after: 3 days
</content>
</entry>
<entry>
<title>Clear out the entire structure, not just the size of a pointer to it.</title>
<updated>2018-05-11T14:50:26Z</updated>
<author>
<name>Kenneth D. Merry</name>
<email>ken@FreeBSD.org</email>
</author>
<published>2018-05-11T14:50:26Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=e440863e06b258f6697d768df92955b8d7a80ce1'/>
<id>urn:sha1:e440863e06b258f6697d768df92955b8d7a80ce1</id>
<content type='text'>
sys/dev/ocs/ocs_os.c:
	In ocs_thread_create(), use sizeof(*thread) (instead of
	sizeof(thread)) as the size argument to memset so that we clear
	out the entire thread structure instead of just a few bytes of it.

Submitted by:	jtl
MFC after:	3 days
</content>
</entry>
</feed>
