All of lore.kernel.org
 help / color / mirror / Atom feed
From: Brad Bishop <bradleyb@fuzziesquirrel.com>
To: Xo Wang <xow@google.com>
Cc: Vernon Mauery <vernon.mauery@linux.intel.com>,
	OpenBMC Development <openbmc@lists.ozlabs.org>,
	Tom Joseph <tomjoseph@in.ibm.com>
Subject: Re: phosphor-host-ipmid and phosphor-net-ipmid architecture
Date: Thu, 12 Oct 2017 12:37:51 -0400	[thread overview]
Message-ID: <AB5054A8-5A1E-4EF9-8312-77FE43C67570@fuzziesquirrel.com> (raw)
In-Reply-To: <CAPH-5w7Kyv_GeZt=DHoYSPKJp5AjoJCUFkAwYEgVo7XpacGTUw@mail.gmail.com>


> On Oct 12, 2017, at 12:25 PM, Xo Wang <xow@google.com> wrote:
> 
> On Thu, Oct 12, 2017 at 9:03 AM, Brad Bishop
> <bradleyb@fuzziesquirrel.com> wrote:
>> 
>>> On Oct 11, 2017, at 6:05 PM, Vernon Mauery <vernon.mauery@linux.intel.com> wrote:
>>> 
>>> 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?
>> 
>> iirc it was so that you could have a different set of providers
>> registered for each channel or even different, channel specific
>> implementations for the same command.
>> 
> 
> The reasoning here also derives from the "build the distro as you like
> it" approach. If you don't want a network interface to the BMC, then
> you can simply not build it or its handlers.
> 
> Of course we could write a single queue service for both host and
> network that can be configured and built to support only one, but that
> puts the onus on architecting and testing that service to ensure the
> all three configurations all work independently.

Another possible advantage for multiple queues might be cgroups prioritization.

> 
>>>  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.
>> 
>> Is it still awkward if you accept the two queue approach?  The
>> additional layer is needed for the bt/kcs -> host-ipmid
>> abstraction.  No such abstraction is needed for network.
>> 
>>> 
>>>  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.
>> 
>> sounds good to me!
>> 
> 
> We can use more intelligent (safer) data passing throughout phosphor code. :)
> 
>>> 
>>>  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).
>> 
>> I think the separate message queues solves this need; however, doing
>> this need not be mutually exclusive of having separate queues if that
>> enables another use case we don’t support today.
>> 
>> I’m not totally stuck on two queues.  Especially if some alternative
>> maintains the same level of flexibility.  The motivation for a single
>> queue isn’t clear yet to me though - without more discussion it sounds
>> like we’d end up with the same capability we already have…so why bother?
>> 
> 
> One set of cases is where a host might have multiple interfaces to the
> BMC (e.g. BT and SSIF).

What about three queues here?  (bt, ssif and rmcp)?  It would require
some rework of the bt/ssif/kcs -> host-ipmid interface to support multiple
host-ipmid instances. 

  reply	other threads:[~2017-10-12 16:37 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-10-11 22:05 phosphor-host-ipmid and phosphor-net-ipmid architecture Vernon Mauery
2017-10-12 16:03 ` Brad Bishop
2017-10-12 16:25   ` Xo Wang
2017-10-12 16:37     ` Brad Bishop [this message]
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
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=AB5054A8-5A1E-4EF9-8312-77FE43C67570@fuzziesquirrel.com \
    --to=bradleyb@fuzziesquirrel.com \
    --cc=openbmc@lists.ozlabs.org \
    --cc=tomjoseph@in.ibm.com \
    --cc=vernon.mauery@linux.intel.com \
    --cc=xow@google.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.