From: Jason Gunthorpe <jgunthorpe-ePGOBjL8dl3ta4EC/59zMFaTQe2KTcn/@public.gmane.org>
To: "Hefty, Sean" <sean.hefty-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
Cc: Ira Weiny <weiny2-i2BcT+NCU+M@public.gmane.org>,
Hal Rosenstock
<hal.rosenstock-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>,
"linux-rdma-u79uwXL29TY76Z2rM5mHXA@public.gmane.org"
<linux-rdma-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>,
Sasha Khapyorsky <sashak-smomgflXvOZWk0Htik3J/w@public.gmane.org>
Subject: Re: ib mad definitions
Date: Tue, 19 Oct 2010 15:29:26 -0600 [thread overview]
Message-ID: <20101019212926.GH10362@obsidianresearch.com> (raw)
In-Reply-To: <CF9C39F99A89134C9CF9C4CCB68B8DDF25B7FB404C-osO9UTpF0USkrb+BlOpmy7fspsVTdybXVpNB7YpNyf8@public.gmane.org>
On Tue, Oct 19, 2010 at 11:50:46AM -0700, Hefty, Sean wrote:
> We start with a minimal set of definitions to umad and add/move
> other definitions later as needed, creating new header files where
> appropriate (umad_smi.h, umad_pm.h, etc.)
> If we can get some basic agreement on this, I'll start on the
> patches immediately. In an ideal world, the new header files would
> work on any platform.
Can we at least agree on the usage of these structures first? Are the
constants going to be in host or network byte order?
Are you going to make something like the kernel where there is a
native structure and pack/unpack function set?
Something macro-based like foo = GET_MEMBER(*pr,preference)
Network byte order casting structures?
Host byte order casting structures? (my favorite)
bitfields?
For years now I've had a set of data files that describe all the IB
structures bitfield layouts. I think I can contribute the data files
but not the generator script.
Since they all have various merits, maybe the smartest thing is to just
codegen all of the above permutations from single data source?
ie
// network endian bitfield casting structure
struct MADHeader_NE x = {};
x.status = htons(1);
// host endian bitfield casting structure
struct MADHeader_HE x = {};
x.status = 1
to_network(&x,sizeof(x)); // x[i] = htonl(x[i]) for i in len/4
/* Non-bitfield macro access structure
(using the 1 byte = 1 bit helper structure technique) */
struct MADHeader_M x = {}
SET_MEMBER(x,status,1);
// Pack/unpack function structure
struct MADHeader_UP x = {};
x.status = htons(1);
pack_MADHeader(&x,mad_buf,sizeof(mad_buf));
I'd like to think we don't need the last one, but people seem to like
that scheme ..
I also like to codegen structure printing functions, that is
surprisingly useful - and implements a good chunk of madeye.
What do you think?
I've also very recently been thinking that I'd like python bindings
for MADs for some projects. I was planning on building it out with the
code gen scheme.
Ira, I think the cleanest answer is that OSM keeps its type file, and
umad gets a new one that is cleaner, more capable and probably
incompatible. I'd hate to see us stick to the OSM scheme for umad just
for code compatability.
Jason
--
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
next prev parent reply other threads:[~2010-10-19 21:29 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-10-18 22:24 ib mad definitions Hefty, Sean
[not found] ` <CF9C39F99A89134C9CF9C4CCB68B8DDF25B7FB38D9-osO9UTpF0USkrb+BlOpmy7fspsVTdybXVpNB7YpNyf8@public.gmane.org>
2010-10-19 14:53 ` Mike Heinz
2010-10-19 15:14 ` Hal Rosenstock
[not found] ` <AANLkTimc7sgmyTvW_dgXarUvGzHcN3sRJ6TJQGxU5p7G-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2010-10-19 15:28 ` Hefty, Sean
[not found] ` <CF9C39F99A89134C9CF9C4CCB68B8DDF25B7FB3CDB-osO9UTpF0USkrb+BlOpmy7fspsVTdybXVpNB7YpNyf8@public.gmane.org>
2010-10-19 15:43 ` Hal Rosenstock
[not found] ` <AANLkTimbmQS0pcfF3CdSokPbAtbCZT7KFbWcSSNsYobk-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2010-10-19 16:48 ` Hefty, Sean
[not found] ` <CF9C39F99A89134C9CF9C4CCB68B8DDF25B7FB3E34-osO9UTpF0USkrb+BlOpmy7fspsVTdybXVpNB7YpNyf8@public.gmane.org>
2010-10-19 17:00 ` Hal Rosenstock
2010-10-19 17:22 ` Ira Weiny
[not found] ` <20101019102244.21cd2b1e.weiny2-i2BcT+NCU+M@public.gmane.org>
2010-10-19 18:50 ` Hefty, Sean
[not found] ` <CF9C39F99A89134C9CF9C4CCB68B8DDF25B7FB404C-osO9UTpF0USkrb+BlOpmy7fspsVTdybXVpNB7YpNyf8@public.gmane.org>
2010-10-19 20:45 ` Ira Weiny
[not found] ` <20101019134513.661470a8.weiny2-i2BcT+NCU+M@public.gmane.org>
2010-10-19 23:26 ` Smith, Stan
[not found] ` <3F6F638B8D880340AB536D29CD4C1E1925B937603F-osO9UTpF0USkrb+BlOpmy7fspsVTdybXVpNB7YpNyf8@public.gmane.org>
2010-10-19 23:44 ` Hefty, Sean
2010-10-19 21:29 ` Jason Gunthorpe [this message]
[not found] ` <20101019212926.GH10362-ePGOBjL8dl3ta4EC/59zMFaTQe2KTcn/@public.gmane.org>
2010-10-20 1:00 ` Hefty, Sean
[not found] ` <CF9C39F99A89134C9CF9C4CCB68B8DDF25B801F393-osO9UTpF0USkrb+BlOpmy7fspsVTdybXVpNB7YpNyf8@public.gmane.org>
2010-10-20 1:09 ` Jason Gunthorpe
[not found] ` <20101020010958.GA413-ePGOBjL8dl3ta4EC/59zMFaTQe2KTcn/@public.gmane.org>
2010-10-20 1:32 ` Ira Weiny
[not found] ` <20101019183257.3f609c45.weiny2-i2BcT+NCU+M@public.gmane.org>
2010-10-20 3:07 ` Jason Gunthorpe
2010-10-20 1:12 ` Ira Weiny
[not found] ` <20101019181256.d0a15afe.weiny2-i2BcT+NCU+M@public.gmane.org>
2010-10-20 3:28 ` Jason Gunthorpe
[not found] ` <20101020032818.GC413-ePGOBjL8dl3ta4EC/59zMFaTQe2KTcn/@public.gmane.org>
2010-10-20 16:06 ` Hefty, Sean
[not found] ` <CF9C39F99A89134C9CF9C4CCB68B8DDF25B801F651-osO9UTpF0USkrb+BlOpmy7fspsVTdybXVpNB7YpNyf8@public.gmane.org>
2010-10-20 17:28 ` Jason Gunthorpe
2010-10-20 17:10 ` Ira Weiny
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=20101019212926.GH10362@obsidianresearch.com \
--to=jgunthorpe-epgobjl8dl3ta4ec/59zmfatqe2ktcn/@public.gmane.org \
--cc=hal.rosenstock-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org \
--cc=linux-rdma-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=sashak-smomgflXvOZWk0Htik3J/w@public.gmane.org \
--cc=sean.hefty-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org \
--cc=weiny2-i2BcT+NCU+M@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