Linux Kernel
3.7.1
Main Page
Related Pages
Modules
Namespaces
Data Structures
Files
File List
Globals
All
Data Structures
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
Groups
Pages
drivers
infiniband
ulp
srpt
ib_dm_mad.h
Go to the documentation of this file.
1
/*
2
* Copyright (c) 2006 - 2009 Mellanox Technology Inc. All rights reserved.
3
*
4
* This software is available to you under a choice of one of two
5
* licenses. You may choose to be licensed under the terms of the GNU
6
* General Public License (GPL) Version 2, available from the file
7
* COPYING in the main directory of this source tree, or the
8
* OpenIB.org BSD license below:
9
*
10
* Redistribution and use in source and binary forms, with or
11
* without modification, are permitted provided that the following
12
* conditions are met:
13
*
14
* - Redistributions of source code must retain the above
15
* copyright notice, this list of conditions and the following
16
* disclaimer.
17
*
18
* - Redistributions in binary form must reproduce the above
19
* copyright notice, this list of conditions and the following
20
* disclaimer in the documentation and/or other materials
21
* provided with the distribution.
22
*
23
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
24
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
25
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
26
* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
27
* BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
28
* ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
29
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
30
* SOFTWARE.
31
*
32
*/
33
34
#ifndef IB_DM_MAD_H
35
#define IB_DM_MAD_H
36
37
#include <linux/types.h>
38
39
#include <
rdma/ib_mad.h
>
40
41
enum
{
42
/*
43
* See also section 13.4.7 Status Field, table 115 MAD Common Status
44
* Field Bit Values and also section 16.3.1.1 Status Field in the
45
* InfiniBand Architecture Specification.
46
*/
47
DM_MAD_STATUS_UNSUP_METHOD
= 0x0008,
48
DM_MAD_STATUS_UNSUP_METHOD_ATTR
= 0x000c,
49
DM_MAD_STATUS_INVALID_FIELD
= 0x001c,
50
DM_MAD_STATUS_NO_IOC
= 0x0100,
51
52
/*
53
* See also the Device Management chapter, section 16.3.3 Attributes,
54
* table 279 Device Management Attributes in the InfiniBand
55
* Architecture Specification.
56
*/
57
DM_ATTR_CLASS_PORT_INFO
= 0x01,
58
DM_ATTR_IOU_INFO
= 0x10,
59
DM_ATTR_IOC_PROFILE
= 0x11,
60
DM_ATTR_SVC_ENTRIES
= 0x12
61
};
62
63
struct
ib_dm_hdr
{
64
u8
reserved
[28];
65
};
66
67
/*
68
* Structure of management datagram sent by the SRP target implementation.
69
* Contains a management datagram header, reliable multi-packet transaction
70
* protocol (RMPP) header and ib_dm_hdr. Notes:
71
* - The SRP target implementation does not use RMPP or ib_dm_hdr when sending
72
* management datagrams.
73
* - The header size must be exactly 64 bytes (IB_MGMT_DEVICE_HDR), since this
74
* is the header size that is passed to ib_create_send_mad() in ib_srpt.c.
75
* - The maximum supported size for a management datagram when not using RMPP
76
* is 256 bytes -- 64 bytes header and 192 (IB_MGMT_DEVICE_DATA) bytes data.
77
*/
78
struct
ib_dm_mad
{
79
struct
ib_mad_hdr
mad_hdr
;
80
struct
ib_rmpp_hdr
rmpp_hdr
;
81
struct
ib_dm_hdr
dm_hdr
;
82
u8
data
[
IB_MGMT_DEVICE_DATA
];
83
};
84
85
/*
86
* IOUnitInfo as defined in section 16.3.3.3 IOUnitInfo of the InfiniBand
87
* Architecture Specification.
88
*/
89
struct
ib_dm_iou_info
{
90
__be16
change_id
;
91
u8
max_controllers
;
92
u8
op_rom
;
93
u8
controller_list
[128];
94
};
95
96
/*
97
* IOControllerprofile as defined in section 16.3.3.4 IOControllerProfile of
98
* the InfiniBand Architecture Specification.
99
*/
100
struct
ib_dm_ioc_profile
{
101
__be64
guid
;
102
__be32
vendor_id
;
103
__be32
device_id
;
104
__be16
device_version
;
105
__be16
reserved1
;
106
__be32
subsys_vendor_id
;
107
__be32
subsys_device_id
;
108
__be16
io_class
;
109
__be16
io_subclass
;
110
__be16
protocol
;
111
__be16
protocol_version
;
112
__be16
service_conn
;
113
__be16
initiators_supported
;
114
__be16
send_queue_depth
;
115
u8
reserved2
;
116
u8
rdma_read_depth
;
117
__be32
send_size
;
118
__be32
rdma_size
;
119
u8
op_cap_mask
;
120
u8
svc_cap_mask
;
121
u8
num_svc_entries
;
122
u8
reserved3
[9];
123
u8
id_string
[64];
124
};
125
126
struct
ib_dm_svc_entry
{
127
u8
name
[40];
128
__be64
id
;
129
};
130
131
/*
132
* See also section 16.3.3.5 ServiceEntries in the InfiniBand Architecture
133
* Specification. See also section B.7, table B.8 in the T10 SRP r16a document.
134
*/
135
struct
ib_dm_svc_entries
{
136
struct
ib_dm_svc_entry
service_entries
[4];
137
};
138
139
#endif
Generated on Thu Jan 10 2013 13:38:43 for Linux Kernel by
1.8.2