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