mirror of https://github.com/ipxe/ipxe.git
				
				
				
			[iscsi] Don't close when receiving NOP-In
Some iSCSI targets send NOP-In. Rather than closing the connection when we receive one, it is more user friendly to log a debug message and keep the connection open. Eventually, it would be nice if iPXE supported replying to NOP-Ins, but we might as well keep the connection open until the target disconnects us. Modified-by: Michael Brown <mcb30@ipxe.org> Signed-off-by: Michael Brown <mcb30@ipxe.org>pull/58/merge
							parent
							
								
									1d04900262
								
							
						
					
					
						commit
						4524cc11bf
					
				|  | @ -109,10 +109,6 @@ FEATURE ( FEATURE_PROTOCOL, "iSCSI", DHCP_EB_FEATURE_ISCSI, 1 ); | ||||||
| 	__einfo_error ( EINFO_ENOTSUP_TARGET_STATUS ) | 	__einfo_error ( EINFO_ENOTSUP_TARGET_STATUS ) | ||||||
| #define EINFO_ENOTSUP_TARGET_STATUS \ | #define EINFO_ENOTSUP_TARGET_STATUS \ | ||||||
| 	__einfo_uniqify ( EINFO_ENOTSUP, 0x04, "Unsupported target status" ) | 	__einfo_uniqify ( EINFO_ENOTSUP, 0x04, "Unsupported target status" ) | ||||||
| #define ENOTSUP_NOP_IN \ |  | ||||||
| 	__einfo_error ( EINFO_ENOTSUP_NOP_IN ) |  | ||||||
| #define EINFO_ENOTSUP_NOP_IN \ |  | ||||||
| 	__einfo_uniqify ( EINFO_ENOTSUP, 0x05, "Unsupported NOP-In received" ) |  | ||||||
| #define EPERM_INITIATOR_AUTHENTICATION \ | #define EPERM_INITIATOR_AUTHENTICATION \ | ||||||
| 	__einfo_error ( EINFO_EPERM_INITIATOR_AUTHENTICATION ) | 	__einfo_error ( EINFO_EPERM_INITIATOR_AUTHENTICATION ) | ||||||
| #define EINFO_EPERM_INITIATOR_AUTHENTICATION \ | #define EINFO_EPERM_INITIATOR_AUTHENTICATION \ | ||||||
|  | @ -620,12 +616,15 @@ static int iscsi_rx_nop_in ( struct iscsi_session *iscsi, | ||||||
| 	 * sent as ping requests, but we can happily accept NOP-Ins | 	 * sent as ping requests, but we can happily accept NOP-Ins | ||||||
| 	 * sent merely to update CmdSN. | 	 * sent merely to update CmdSN. | ||||||
| 	 */ | 	 */ | ||||||
| 	if ( nop_in->ttt != htonl ( ISCSI_TAG_RESERVED ) ) { | 	if ( nop_in->ttt == htonl ( ISCSI_TAG_RESERVED ) ) | ||||||
| 		DBGC ( iscsi, "iSCSI %p received unsupported NOP-In with TTT " | 		return 0; | ||||||
| 		       "%08x\n", iscsi, ntohl ( nop_in->ttt ) ); |  | ||||||
| 		return -ENOTSUP_NOP_IN; |  | ||||||
| 	} |  | ||||||
| 
 | 
 | ||||||
|  | 	/* Ignore any other NOP-Ins.  The target may eventually
 | ||||||
|  | 	 * disconnect us for failing to respond, but this minimises | ||||||
|  | 	 * unnecessary connection closures. | ||||||
|  | 	 */ | ||||||
|  | 	DBGC ( iscsi, "iSCSI %p received unsupported NOP-In with TTT %08x\n", | ||||||
|  | 	       iscsi, ntohl ( nop_in->ttt ) ); | ||||||
| 	return 0; | 	return 0; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue