Author: trasz
Date: Wed Sep 10 13:34:27 2014
New Revision: 271393
URL: http://svnweb.freebsd.org/changeset/base/271393

Log:
  Make it possible to disable NOP-In PDUs by the iSCSI initiator by setting
  kern.cam.ctl.iscsi.ping_timeout to 0.  This fixes interoperability with
  some initiators that don't properly support NOP-Ins, namely iPXE/gPXE.
  
  Submitted by: Chen Wen <pok...@gmail.com>
  MFC after:    1 week
  Sponsored by: The FreeBSD Foundation

Modified:
  head/sys/cam/ctl/ctl_frontend_iscsi.c

Modified: head/sys/cam/ctl/ctl_frontend_iscsi.c
==============================================================================
--- head/sys/cam/ctl/ctl_frontend_iscsi.c       Wed Sep 10 13:21:44 2014        
(r271392)
+++ head/sys/cam/ctl/ctl_frontend_iscsi.c       Wed Sep 10 13:34:27 2014        
(r271393)
@@ -1002,6 +1002,19 @@ cfiscsi_callout(void *context)
        }
 #endif
 
+       if (ping_timeout <= 0) {
+               /*
+                * Pings are disabled.  Don't send NOP-In in this case;
+                * user might have disabled pings to work around problems
+                * with certain initiators that can't properly handle
+                * NOP-In, such as iPXE.  Reset the timeout, to avoid
+                * triggering reconnection, should the user decide to
+                * reenable them.
+                */
+               cs->cs_timeout = 0;
+               return;
+       }
+
        if (cs->cs_timeout >= ping_timeout) {
                CFISCSI_SESSION_WARN(cs, "no ping reply (NOP-Out) after %d 
seconds; "
                    "dropping connection",  ping_timeout);
_______________________________________________
svn-src-head@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to