• Joe Eykholt's avatar
    [SCSI] libfc: track FIP exchanges · f60e12e9
    Joe Eykholt authored
    When an exchange is received with a FIP encapsulation, we need
    to know that the response must be sent via FIP and what the original
    ELS opcode was.  This becomes important for VN2VN mode, where we may
    receive FLOGI or LOGO from several peer VN_ports, and the LS_ACC or
    LS_RJT must be sent FIP-encapsulated with the correct sub-type.
    Add a field to the struct fc_frame, fr_encaps, to indicate the
    encapsulation values.  That term is chosen to be neutral and
    LLD-agnostic in case non-FCoE/FIP LLDs might find it useful.
    The frame fr_encaps is transferred from the ingress frame to the
    exchange by fc_exch_recv_req(), and back to the outgoing frame
    by fc_seq_send().
    This is taking the last byte in the skb->cb array.  If needed,
    we could combine the info in sof, eof, flags, and encaps
    together into one field, but it'd be better to do that if
    and when its needed.
    Signed-off-by: default avatarJoe Eykholt <jeykholt@cisco.com>
    Signed-off-by: default avatarRobert Love <robert.w.love@intel.com>
    Signed-off-by: default avatarJames Bottomley <James.Bottomley@suse.de>
libfc.h 31.6 KB