<div dir="ltr">Thanks for your suggestions.<div><br></div><div>--Kumar.</div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Thu, May 5, 2022 at 3:55 AM Vernon Mauery <<a href="mailto:vernon.mauery@linux.intel.com">vernon.mauery@linux.intel.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">On 04-May-2022 10:27 PM, Kumar Thangavel wrote:<br>
>On Wed, May 4, 2022 at 4:34 AM Vernon Mauery <<a href="mailto:vernon.mauery@linux.intel.com" target="_blank">vernon.mauery@linux.intel.com</a>><br>
>wrote:<br>
><br>
>> On 03-May-2022 07:46 PM, Kumar Thangavel wrote:<br>
>> >Hi Vernon,<br>
>> ><br>
>> >     We may need to write our own custom filter for other channels as you<br>
>> >suggested.<br>
>> >     While implementing this, we need some clarifications.<br>
>> ><br>
>> >     1. How can we map channel Id's with settingsd restriction mode<br>
>> >dbus-objects ?<br>
>><br>
>> Set up a restriction mode object for each channel? This is really up to<br>
>> your implementation.<br>
>><br>
><br>
>    Ack.<br>
><br>
>><br>
>> >     2. The Ipmb channel has multiple devices in our system, How can we<br>
>> >handle and apply this multiple Ipmb interfaces with<br>
>> >settingsd restriction mode dbus-objects ?<br>
>> ><br>
>> >     Please refer below link for multiple Ipmb channels for our system.<br>
>> ><br>
>><br>
>> When ipmb channel commands come in, there is also rqSA set in the<br>
>> ipmi::Context. This should be unique per device. Will this work for you?<br>
>><br>
>>     That also works. If we use rqSA, again we need to map this rqSA value<br>
>with phosphor-settingsd restriction mode dbus-objects name (<br>
>/xyz/openbmc_project/control/*host1*/restriction_mode) ?<br>
><br>
>Alternate logic we just think of<br>
>1. Using "hostIdx'' in ipmi::Contextwhich is unique(0, 1, 2 to N) for each<br>
>devices. we can map this with phosphor-settingsd restriction mode<br>
>dbus-objects name ?  We need to maintain order (0, 1, 2 to N-1) for hosts<br>
>and N for debug cards in all configs.<br>
>2. Can we read i*pmb-channels.json* entry in ipmid with name field as<br>
>"host1", "host2", "host3" "host4" and "debug_card" which should match the<br>
>settingsd dbus-object names. ? So that we can map the name field with<br>
>settings objects easily.<br>
><br>
>  Example :<br>
>  Ipmb-channels.json entry :<br>
><br>
>{ "name" : "*host1*"<br>
>"type": "ipmb",<br>
>"slave-path": "/dev/ipmb-1",<br>
>"bmc-addr": 32,<br>
>"remote-addr": 64,<br>
>"devIndex": 0<br>
>},<br>
>{ "name" : "*host2*"<br>
>"type": "ipmb",<br>
>"slave-path": "/dev/ipmb-3",<br>
>"bmc-addr": 32,<br>
>"remote-addr": 64,<br>
>"devIndex": 2<br>
>},<br>
><br>
>{ "name" : "*hostN*"<br>
>"type": "ipmb",<br>
>"slave-path": "/dev/ipmb-7",<br>
>"bmc-addr": 32,<br>
>"remote-addr": 64,<br>
>"devIndex": N<br>
>},<br>
>{ "name" : "*debug_card*"<br>
>"type": "ipmb",<br>
>"slave-path": "/dev/ipmb-13",<br>
>"bmc-addr": 32,<br>
>"remote-addr": 64,<br>
>"devIndex": 4<br>
>}<br>
>]<br>
><br>
>  Settingsd restriction mode objects :<br>
><br>
>  /xyz/openbmc_project/control/*debug_card*/restriction_mode<br>
>  /xyz/openbmc_project/control/*host1*/restriction_mode<br>
>  /xyz/openbmc_project/control/*host2*/restriction_mode<br>
>  /xyz/openbmc_project/control/*host3*/restriction_mode<br>
>  /xyz/openbmc_project/control/*host3*/restriction_mode<br>
><br>
>  Could you please provide your thoughts on this ?<br>
<br>
I think you can do all of this in your filter code. You can really do <br>
just about anything in there. You can have a setup function that gets <br>
called when the provider library is loaded and read the file and set up <br>
your map. Then when an IPMI function is called you can consult your map <br>
and filter however you want.<br>
<br>
Just be aware that your filter code will run on *every* IPMI call, so do <br>
your best to make it streamlined or it will impact performance.<br>
<br>
--Vernon<br>
<br>
</blockquote></div>