• D
    IB/iser: Avoid recv buffer exhaustion caused by unexpected PDUs · bba7ebba
    David Disseldorp 提交于
    iSCSI/iSER targets may send PDUs without a prior request from the
    initiator.  RFC 5046 refers to these PDUs as "unexpected".  NOP-In PDUs
    with itt=RESERVED and Asynchronous Message PDUs occupy this category.
    
    The amount of active "unexpected" PDU's an iSER target may have at any
    time is governed by the MaxOutstandingUnexpectedPDUs key, which is not
    yet supported.
    
    Currently when an iSER target sends an "unexpected" PDU, the
    initiators recv buffer consumed by the PDU is not replaced.  If over
    initial_post_recv_bufs_num "unexpected" PDUs are received then the
    receive queue will run out of receive work requests entirely.
    
    This patch ensures recv buffers consumed by "unexpected" PDUs are
    replaced in the next iser_post_receive_control() call.
    Signed-off-by: NDavid Disseldorp <ddiss@sgi.com>
    Signed-off-by: NKen Sandars <ksandars@sgi.com>
    Acked-by: NOr Gerlitz <ogerlitz@voltaire.com>
    Signed-off-by: NRoland Dreier <rolandd@cisco.com>
    bba7ebba
iscsi_iser.h 11.9 KB