All of lore.kernel.org
 help / color / mirror / Atom feed
From: Vernon Mauery <vernon.mauery@linux.intel.com>
To: OpenBMC Development <openbmc@lists.ozlabs.org>
Cc: Tom Joseph <tomjoseph@in.ibm.com>
Subject: phosphor-host-ipmid and phosphor-net-ipmid architecture
Date: Wed, 11 Oct 2017 15:05:48 -0700	[thread overview]
Message-ID: <20171011220548.GA61269@mauery> (raw)

I am working on an ipmi provider library and had a few questions and 
observations.

1) Why are there separate ipmi message queues for the host and network? 
   It seems awkward that for the host, the ipmi request comes from a 
   different process (btbridge, or in our case kcsbridge), while for the 
   network (RMCP+), the messages are handled directly in the same 
   process.

   It seems that the network handler could just as easily package the 
   command up and send it to ipmid the same way that btbridge does.

2) Can we modify the signature of the handlers so that they can behave 
   in a more intelligent manner? It would be nice if they were handed a 
   gsl::span<uint8_t> instead of a void* and a length. This allows for  
   a no-copy, bounds-checked way of passing buffers.

   It would be nice to know what channel something came in on. We might 
   want to be able to change behavior based on the incoming channel (as 
   some channels are more secure than others).

   It would be nice to know what IPMI privilege the command came in 
   with (ADMIN for session-less commands) so that the command handler 
   can behave appropriately based on the user.
   
3) When registering commands, it would be nice of the list also 
   maintained a priority so that commands could be easily overridden. 
   Currently the only way to override a command is to make sure that 
   your library gets loaded first (and this is done via the library 
   name). If we had default ipmi commands loaded at DEFAULT_PRIO and 
   then had some higher priorities such as MFR_PRIO, and OEM_PRIO, or 
   something like that, we could have integrators further on down the 
   line able to easily add a new provider library and piecemeal override 
   individual command. An alternate (or addition) might be the addition 
   of a unregister command method to remove an existing command so it 
   could be replaced with a new one (or just straight up removed).


I am happy to work on changes that I would like to see and submit 
patches for review, but I wanted to know if there was some sort of 
historical or other reason that would prevent my work from getting 
rejected before I actually do the work.

--Vernon

             reply	other threads:[~2017-10-11 22:08 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-10-11 22:05 Vernon Mauery [this message]
2017-10-12 16:03 ` phosphor-host-ipmid and phosphor-net-ipmid architecture Brad Bishop
2017-10-12 16:25   ` Xo Wang
2017-10-12 16:37     ` Brad Bishop
2017-10-12 21:41       ` Vernon Mauery
2017-10-12 21:36     ` Vernon Mauery
2017-10-12 21:17   ` Vernon Mauery
2017-10-13  6:57 ` tomjose
2017-10-16 16:29   ` Vernon Mauery
  -- strict thread matches above, loose matches on Subject: below --
2017-10-19  4:08 brendanhiggins
2017-10-23 15:22 ` tomjose

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=20171011220548.GA61269@mauery \
    --to=vernon.mauery@linux.intel.com \
    --cc=openbmc@lists.ozlabs.org \
    --cc=tomjoseph@in.ibm.com \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.