public inbox for linux-rdma@vger.kernel.org
 help / color / mirror / Atom feed
From: Hal Rosenstock <hal-LDSdmyG8hGV8YrgS2mwiifqBs+8SCbDb@public.gmane.org>
To: sean.hefty-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org
Cc: linux-rdma-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	alexne-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org
Subject: Re: [PATCH 1/7] libibumad: Provide MAD definitions with libibumad
Date: Wed, 20 Feb 2013 10:56:02 -0500	[thread overview]
Message-ID: <5124F212.2060503@dev.mellanox.co.il> (raw)
In-Reply-To: <1359409135-559-1-git-send-email-sean.hefty-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>

On 1/28/2013 4:38 PM, sean.hefty-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org wrote:
> From: Sean Hefty <sean.hefty-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
> 
> The only definitions for MAD data types are in ib_types.h, which
> is an opensm file.  The libibumad interface is essentially useless
> without these data types.  Add new header files to libibumad
> with basic MAD data types.
> 
> The definitions and structures are based on those defined in
> the linux kernel.  Only an initial framework is given, basically
> the values for various methods, attributes, etc. along with
> structure definitions for the common, rmpp, and vendor specific
> headers.  Other data structures are left for future development.
> 
> Signed-off-by: Sean Hefty <sean.hefty-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
> ---
>  include/infiniband/umad_types.h |  192 +++++++++++++++++++++++++++++++++++++++
>  1 files changed, 192 insertions(+), 0 deletions(-)
>  create mode 100755 include/infiniband/umad_types.h
> 
> diff --git a/include/infiniband/umad_types.h b/include/infiniband/umad_types.h
> new file mode 100755
> index 0000000..54b7e72
> --- /dev/null
> +++ b/include/infiniband/umad_types.h
> @@ -0,0 +1,192 @@
> +/*
> + * Copyright (c) 2004 Mellanox Technologies Ltd.  All rights reserved.
> + * Copyright (c) 2004 Infinicon Corporation.  All rights reserved.
> + * Copyright (c) 2004, 2010 Intel Corporation.  All rights reserved.
> + * Copyright (c) 2004 Topspin Corporation.  All rights reserved.
> + * Copyright (c) 2004-2006 Voltaire Corporation.  All rights reserved.
> + *
> + * 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 from the file
> + * COPYING in the main directory of this source tree, or the
> + * OpenIB.org BSD license below:
> + *
> + *     Redistribution and use in source and binary forms, with or
> + *     without modification, are permitted provided that the following
> + *     conditions are met:
> + *
> + *      - Redistributions of source code must retain the above
> + *        copyright notice, this list of conditions and the following
> + *        disclaimer.
> + *
> + *      - Redistributions in binary form must reproduce the above
> + *        copyright notice, this list of conditions and the following
> + *        disclaimer in the documentation and/or other materials
> + *        provided with the distribution.
> + *
> + * 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.
> + *
> + */
> +#ifndef _UMAD_TYPES_H
> +#define _UMAD_TYPES_H
> +
> +#include <stdint.h>
> +
> +#ifdef __cplusplus
> +#  define BEGIN_C_DECLS extern "C" {
> +#  define END_C_DECLS   }
> +#else				/* !__cplusplus */
> +#  define BEGIN_C_DECLS
> +#  define END_C_DECLS
> +#endif				/* __cplusplus */
> +
> +BEGIN_C_DECLS
> +
> +#define UMAD_BASE_VERSION		1
> +
> +/* Management classes */
> +enum {
> +	UMAD_CLASS_SUBN_LID_ROUTED	= 0x01,
> +	UMAD_CLASS_SUBN_DIRECTED_ROUTE	= 0x81,
> +	UMAD_CLASS_SUBN_ADM		= 0x03,
> +	UMAD_CLASS_PERF_MGMT		= 0x04,
> +	UMAD_CLASS_BM			= 0x05,
> +	UMAD_CLASS_DEVICE_MGMT		= 0x06,
> +	UMAD_CLASS_CM			= 0x07,
> +	UMAD_CLASS_SNMP			= 0x08,
> +	UMAD_CLASS_VENDOR_RANGE1_START	= 0x09,
> +	UMAD_CLASS_VENDOR_RANGE1_END	= 0x0F,
> +	UMAD_CLASS_DEVICE_ADM		= 0x10,
> +	UMAD_CLASS_BOOT_MGMT		= 0x11,
> +	UMAD_CLASS_BIS			= 0x12,
> +	UMAD_CLASS_CONG_MGMT		= 0x21,
> +	UMAD_CLASS_VENDOR_RANGE2_START	= 0x30,
> +	UMAD_CLASS_VENDOR_RANGE2_END	= 0x4F
> +};
> +
> +/* Management methods */
> +enum {
> +	UMAD_METHOD_GET			= 0x01,
> +	UMAD_METHOD_SET			= 0x02,
> +	UMAD_METHOD_GET_RESP		= 0x81,
> +	UMAD_METHOD_SEND		= 0x03,
> +	UMAD_METHOD_TRAP		= 0x05,
> +	UMAD_METHOD_REPORT		= 0x06,
> +	UMAD_METHOD_REPORT_RESP		= 0x86,
> +	UMAD_METHOD_TRAP_REPRESS	= 0x07,
> +	UMAD_METHOD_RESP		= 0x80
> +};
> +
> +enum {
> +	UMAD_STATUS_SUCCESS  = 0x0000,
> +	UMAD_STATUS_BUSY     = 0x0001,
> +	UMAD_STATUS_REDIRECT = 0x0002,
> +
> +	/* Invalid fields, bits 2-4 */
> +	UMAD_STATUS_BAD_VERSION          = (1 << 2),
> +	UMAD_STATUS_METHOD_NOT_SUPPORTED = (2 << 2),
> +	UMAD_STATUS_ATTR_NOT_SUPPORTED   = (3 << 2),
> +	UMAD_STATUS_INVALID_ATTR_VALUE   = (7 << 2),
> +
> +	UMAD_STATUS_CLASS_MASK = 0xFF00
> +};
> +
> +/* Attributes common to multiple classes */
> +enum {
> +	UMAD_ATTR_CLASS_PORT_INFO	= 0x0001,
> +	UMAD_ATTR_NOTICE		= 0x0002,
> +	UMAD_ATTR_INFORM_INFO		= 0x0003
> +};
> +
> +/* RMPP information */
> +#define UMAD_RMPP_VERSION		1
> +enum {
> +	UMAD_RMPP_TYPE_DATA		= 1,
> +	UMAD_RMPP_TYPE_ACK		= 2,
> +	UMAD_RMPP_TYPE_STOP		= 3,
> +	UMAD_RMPP_TYPE_ABORT		= 4,
> +
> +	UMAD_RMPP_FLAG_MASK		= 0x07,
> +	UMAD_RMPP_FLAG_ACTIVE		= 1,
> +	UMAD_RMPP_FLAG_FIRST		= (1 << 1),
> +	UMAD_RMPP_FLAG_LAST		= (1 << 2),
> +
> +	UMAD_RMPP_RESP_TIME_SHIFT	= 3,
> +	UMAD_RMPP_NO_RESP_TIME		= 0x1F,
> +
> +	UMAD_RMPP_STATUS_SUCCESS	= 0,
> +	UMAD_RMPP_STATUS_RESX		= 1,
> +	UMAD_RMPP_STATUS_ABORT_MIN	= 118,
> +	UMAD_RMPP_STATUS_T2L		= 118,
> +	UMAD_RMPP_STATUS_BAD_LEN	= 119,
> +	UMAD_RMPP_STATUS_BAD_SEG	= 120,
> +	UMAD_RMPP_STATUS_BADT		= 121,
> +	UMAD_RMPP_STATUS_W2S		= 122,
> +	UMAD_RMPP_STATUS_S2B		= 123,
> +	UMAD_RMPP_STATUS_BAD_STATUS	= 124,
> +	UMAD_RMPP_STATUS_UNV		= 125,
> +	UMAD_RMPP_STATUS_TMR		= 126,
> +	UMAD_RMPP_STATUS_UNSPEC		= 127,
> +	UMAD_RMPP_STATUS_ABORT_MAX	= 127
> +};

Should RMPP be included here as it's not currently exposed to user space ?

-- Hal

> +
> +enum {
> +	UMAD_LEN_DATA			= 232,
> +	UMAD_LEN_RMPP_DATA		= 220,
> +	UMAD_LEN_VENDOR_DATA		= 216,
> +};
> +
> +struct umad_hdr {
> +	uint8_t	 base_version;
> +	uint8_t	 mgmt_class;
> +	uint8_t	 class_version;
> +	uint8_t	 method;
> +	uint16_t status;
> +	uint16_t class_specific;
> +	uint64_t tid;
> +	uint16_t attr_id;
> +	uint16_t resv;
> +	uint32_t attr_mod;
> +};
> +
> +struct umad_rmpp_hdr {
> +	uint8_t	 rmpp_version;
> +	uint8_t	 rmpp_type;
> +	uint8_t	 rmpp_rtime_flags;
> +	uint8_t	 rmpp_status;
> +	uint32_t seg_num;
> +	uint32_t paylen_newwin;
> +};
> +
> +struct umad_packet {
> +	struct umad_hdr		mad_hdr;
> +	uint8_t			data[UMAD_LEN_DATA];
> +};
> +
> +struct umad_rmpp_packet {
> +	struct umad_hdr		mad_hdr;
> +	struct umad_rmpp_hdr	rmpp_hdr;
> +	uint8_t			data[UMAD_LEN_RMPP_DATA];
> +};
> +
> +struct umad_vendor_packet {
> +	struct umad_hdr		mad_hdr;
> +	struct umad_rmpp_hdr	rmpp_hdr;
> +	uint8_t			reserved;
> +	uint8_t			oui[3];
> +	uint8_t			data[UMAD_LEN_VENDOR_DATA];
> +};
> +
> +enum {
> +	UMAD_OPENIB_OUI		= 0x001405
> +};
> +
> +END_C_DECLS
> +#endif				/* _UMAD_TYPES_H */

--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

  parent reply	other threads:[~2013-02-20 15:56 UTC|newest]

Thread overview: 25+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-01-28 21:38 [PATCH 1/7] libibumad: Provide MAD definitions with libibumad sean.hefty-ral2JQCrhuEAvxtiuMwx3w
     [not found] ` <1359409135-559-1-git-send-email-sean.hefty-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
2013-01-28 21:38   ` [PATCH 2/7] libibumad: Add SA MAD definitions to umad sean.hefty-ral2JQCrhuEAvxtiuMwx3w
     [not found]     ` <1359409135-559-2-git-send-email-sean.hefty-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
2013-02-20 22:40       ` Hal Rosenstock
2013-01-28 21:38   ` [PATCH 3/7] libibumad: Add basic SM " sean.hefty-ral2JQCrhuEAvxtiuMwx3w
     [not found]     ` <1359409135-559-3-git-send-email-sean.hefty-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
2013-02-20 22:40       ` Hal Rosenstock
2013-01-28 21:38   ` [PATCH 4/7] libibumad: Add CM " sean.hefty-ral2JQCrhuEAvxtiuMwx3w
     [not found]     ` <1359409135-559-4-git-send-email-sean.hefty-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
2013-02-20 22:40       ` Hal Rosenstock
2013-01-28 21:38   ` [PATCH 5/7] libibumad: Add new umad header files to release sean.hefty-ral2JQCrhuEAvxtiuMwx3w
     [not found]     ` <1359409135-559-5-git-send-email-sean.hefty-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
2013-02-20 22:40       ` Hal Rosenstock
2013-01-28 21:38   ` [PATCH 6/7] libibumad: Define ntohll/htonll sean.hefty-ral2JQCrhuEAvxtiuMwx3w
     [not found]     ` <1359409135-559-6-git-send-email-sean.hefty-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
2013-02-20 22:40       ` Hal Rosenstock
2013-01-28 21:38   ` [PATCH 7/7] libibumad: Define data type to indicate values are in big-endian sean.hefty-ral2JQCrhuEAvxtiuMwx3w
     [not found]     ` <1359409135-559-7-git-send-email-sean.hefty-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
2013-02-21 16:03       ` Hal Rosenstock
2013-02-20 15:56   ` Hal Rosenstock [this message]
     [not found]     ` <5124F212.2060503-LDSdmyG8hGV8YrgS2mwiifqBs+8SCbDb@public.gmane.org>
2013-02-20 16:07       ` [PATCH 1/7] libibumad: Provide MAD definitions with libibumad Hefty, Sean
     [not found]         ` <1828884A29C6694DAF28B7E6B8A823736F34E958-P5GAC/sN6hmkrb+BlOpmy7fspsVTdybXVpNB7YpNyf8@public.gmane.org>
2013-02-20 16:29           ` Hefty, Sean
     [not found]             ` <1828884A29C6694DAF28B7E6B8A823736F34E976-P5GAC/sN6hmkrb+BlOpmy7fspsVTdybXVpNB7YpNyf8@public.gmane.org>
2013-02-20 16:39               ` Hal Rosenstock
     [not found]                 ` <5124FC59.2070602-LDSdmyG8hGV8YrgS2mwiifqBs+8SCbDb@public.gmane.org>
2013-02-20 17:42                   ` Ira Weiny
     [not found]                     ` <20130220094219.19f80f5c0b65c50a48b29c96-i2BcT+NCU+M@public.gmane.org>
2013-02-20 19:12                       ` Hal Rosenstock
2013-02-20 19:15                   ` Hal Rosenstock
     [not found]                     ` <512520CF.8000902-LDSdmyG8hGV8YrgS2mwiifqBs+8SCbDb@public.gmane.org>
2013-02-20 21:06                       ` Hefty, Sean
2013-02-20 22:39   ` Hal Rosenstock
  -- strict thread matches above, loose matches on Subject: below --
2011-04-28 22:57 [PATCH 1/7] libibumad: provide " Hefty, Sean
     [not found] ` <CF9C39F99A89134C9CF9C4CCB68B8DDF261A1F410B-osO9UTpF0USkrb+BlOpmy7fspsVTdybXVpNB7YpNyf8@public.gmane.org>
2011-05-02 13:20   ` Alex Netes
     [not found]     ` <20110502132013.GE2088-iQai9MGU/dyyaiaB+Ve85laTQe2KTcn/@public.gmane.org>
2011-05-02 17:52       ` Hefty, Sean

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=5124F212.2060503@dev.mellanox.co.il \
    --to=hal-ldsdmyg8hgv8yrgs2mwiifqbs+8scbdb@public.gmane.org \
    --cc=alexne-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org \
    --cc=linux-rdma-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=sean.hefty-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox