^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1) /*
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2) * Copyright (c) 2015 Mellanox Technologies. All rights reserved.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3) *
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4) * This software is available to you under a choice of one of two
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5) * licenses. You may choose to be licensed under the terms of the GNU
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6) * General Public License (GPL) Version 2, available from the file
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7) * COPYING in the main directory of this source tree, or the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 8) * OpenIB.org BSD license below:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 9) *
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 10) * Redistribution and use in source and binary forms, with or
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 11) * without modification, are permitted provided that the following
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 12) * conditions are met:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 13) *
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 14) * - Redistributions of source code must retain the above
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 15) * copyright notice, this list of conditions and the following
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 16) * disclaimer.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 17) *
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 18) * - Redistributions in binary form must reproduce the above
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 19) * copyright notice, this list of conditions and the following
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 20) * disclaimer in the documentation and/or other materials
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 21) * provided with the distribution.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 22) *
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 23) * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 24) * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 25) * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 26) * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 27) * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 28) * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 29) * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 30) * SOFTWARE.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 31) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 32) #ifndef ISCSI_ISER_H
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 33) #define ISCSI_ISER_H
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 34)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 35) #define ISER_ZBVA_NOT_SUP 0x80
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 36) #define ISER_SEND_W_INV_NOT_SUP 0x40
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 37) #define ISERT_ZBVA_NOT_USED 0x80
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 38) #define ISERT_SEND_W_INV_NOT_USED 0x40
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 39)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 40) #define ISCSI_CTRL 0x10
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 41) #define ISER_HELLO 0x20
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 42) #define ISER_HELLORPLY 0x30
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 43)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 44) #define ISER_VER 0x10
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 45) #define ISER_WSV 0x08
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 46) #define ISER_RSV 0x04
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 47)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 48) /**
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 49) * struct iser_cm_hdr - iSER CM header (from iSER Annex A12)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 50) *
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 51) * @flags: flags support (zbva, send_w_inv)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 52) * @rsvd: reserved
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 53) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 54) struct iser_cm_hdr {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 55) u8 flags;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 56) u8 rsvd[3];
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 57) } __packed;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 58)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 59) /**
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 60) * struct iser_ctrl - iSER header of iSCSI control PDU
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 61) *
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 62) * @flags: opcode and read/write valid bits
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 63) * @rsvd: reserved
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 64) * @write_stag: write rkey
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 65) * @write_va: write virtual address
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 66) * @reaf_stag: read rkey
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 67) * @read_va: read virtual address
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 68) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 69) struct iser_ctrl {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 70) u8 flags;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 71) u8 rsvd[3];
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 72) __be32 write_stag;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 73) __be64 write_va;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 74) __be32 read_stag;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 75) __be64 read_va;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 76) } __packed;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 77)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 78) #endif /* ISCSI_ISER_H */