summaryrefslogtreecommitdiffstats
path: root/src/drivers/net/mlx_ipoib/ib_mad.h
diff options
context:
space:
mode:
authorMichael Brown2006-03-16 19:30:46 +0100
committerMichael Brown2006-03-16 19:30:46 +0100
commit28cefdccc414430229dcf2d799a5fce1d18025f7 (patch)
tree0cab5232c625d8825e9d3a03f72f8b91da010e60 /src/drivers/net/mlx_ipoib/ib_mad.h
parentMerge from Etherboot 5.4 (diff)
parentImport from Etherboot 5.4 (diff)
downloadipxe-28cefdccc414430229dcf2d799a5fce1d18025f7.tar.gz
ipxe-28cefdccc414430229dcf2d799a5fce1d18025f7.tar.xz
ipxe-28cefdccc414430229dcf2d799a5fce1d18025f7.zip
Merge from Etherboot 5.4
Diffstat (limited to 'src/drivers/net/mlx_ipoib/ib_mad.h')
-rw-r--r--src/drivers/net/mlx_ipoib/ib_mad.h110
1 files changed, 110 insertions, 0 deletions
diff --git a/src/drivers/net/mlx_ipoib/ib_mad.h b/src/drivers/net/mlx_ipoib/ib_mad.h
new file mode 100644
index 000000000..5ffb54045
--- /dev/null
+++ b/src/drivers/net/mlx_ipoib/ib_mad.h
@@ -0,0 +1,110 @@
+/*
+ This software is available to you under a choice of one of two
+ licenses. You may choose to be licensed under the terms of the GNU
+ General Public License (GPL) Version 2, available at
+ <http://www.fsf.org/copyleft/gpl.html>, or the OpenIB.org BSD
+ license, available in the LICENSE.TXT file accompanying this
+ software. These details are also available at
+ <http://openib.org/license.html>.
+
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
+ BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
+ ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ SOFTWARE.
+
+ Copyright (c) 2004 Mellanox Technologies Ltd. All rights reserved.
+*/
+
+#ifndef __ib_mad_h__
+#define __ib_mad_h__
+
+#include "ib_driver.h"
+
+/* Management base version */
+#define IB_MGMT_BASE_VERSION 1
+
+/* Management classes */
+#define IB_MGMT_CLASS_SUBN_LID_ROUTED 0x01
+#define IB_MGMT_CLASS_SUBN_DIRECTED_ROUTE 0x81
+#define IB_MGMT_CLASS_SUBN_ADM 0x03
+#define IB_MGMT_CLASS_PERF_MGMT 0x04
+#define IB_MGMT_CLASS_BM 0x05
+#define IB_MGMT_CLASS_DEVICE_MGMT 0x06
+#define IB_MGMT_CLASS_CM 0x07
+#define IB_MGMT_CLASS_SNMP 0x08
+#define IB_MGMT_CLASS_VENDOR_RANGE2_START 0x30
+#define IB_MGMT_CLASS_VENDOR_RANGE2_END 0x4F
+
+/* Management methods */
+#define IB_MGMT_METHOD_GET 0x01
+#define IB_MGMT_METHOD_SET 0x02
+#define IB_MGMT_METHOD_GET_RESP 0x81
+#define IB_MGMT_METHOD_SEND 0x03
+#define IB_MGMT_METHOD_TRAP 0x05
+#define IB_MGMT_METHOD_REPORT 0x06
+#define IB_MGMT_METHOD_REPORT_RESP 0x86
+#define IB_MGMT_METHOD_TRAP_REPRESS 0x07
+#define IB_MGMT_METHOD_DELETE 0x15
+
+#define IB_MGMT_METHOD_RESP 0x80
+
+/* Subnet management attributes */
+#define IB_SMP_ATTR_NOTICE 0x0002
+#define IB_SMP_ATTR_NODE_DESC 0x0010
+#define IB_SMP_ATTR_NODE_INFO 0x0011
+#define IB_SMP_ATTR_SWITCH_INFO 0x0012
+#define IB_SMP_ATTR_GUID_INFO 0x0014
+#define IB_SMP_ATTR_PORT_INFO 0x0015
+#define IB_SMP_ATTR_PKEY_TABLE 0x0016
+#define IB_SMP_ATTR_SL_TO_VL_TABLE 0x0017
+#define IB_SMP_ATTR_VL_ARB_TABLE 0x0018
+#define IB_SMP_ATTR_LINEAR_FORWARD_TABLE 0x0019
+#define IB_SMP_ATTR_RANDOM_FORWARD_TABLE 0x001A
+#define IB_SMP_ATTR_MCAST_FORWARD_TABLE 0x001B
+#define IB_SMP_ATTR_SM_INFO 0x0020
+#define IB_SMP_ATTR_VENDOR_DIAG 0x0030
+#define IB_SMP_ATTR_LED_INFO 0x0031
+#define IB_SMP_ATTR_VENDOR_MASK 0xFF00
+
+struct ib_mad_hdr_st {
+ __u8 method;
+ __u8 class_version;
+ __u8 mgmt_class;
+ __u8 base_version;
+ __u16 class_specific;
+ __u16 status;
+ __u32 tid[2];
+ __u16 resv;
+ __u16 attr_id;
+ __u32 attr_mod;
+} __attribute__ ((packed));
+
+struct rmpp_hdr_st {
+ __u32 raw[3];
+} __attribute__ ((packed));
+
+struct sa_header_st {
+ __u32 sm_key[2];
+ __u16 attrib_offset;
+ __u16 r0;
+ __u32 comp_mask[2];
+} __attribute__ ((packed));
+
+struct ib_mad_st {
+ struct ib_mad_hdr_st mad_hdr;
+ __u8 data[232];
+} __attribute__ ((packed));
+
+union mad_u {
+ __u8 raw[256];
+ struct ib_mad_st mad;
+} __attribute__ ((packed));
+
+static int get_path_record(union ib_gid_u *dgid, __u16 * dlid_p, __u8 * sl_p,
+ __u8 * rate_p);
+
+#endif /* __ib_mad_h__ */