Dmitry,

See below,

-- Jim Mankovich | jm...@hp.com (US Mountain Time) --

On 4/19/2013 12:47 AM, Dmitry Bazhenov wrote:
> Hello, Jim,
>
> Unfortunately, we can not change my_addr after discovering that the IPMC 
> address on the primary IPMB is different from what was used to connect the 
> IPMC.
>
> Consider an example. A board is accessed via LAN using 20h as a slave addres 
> while the slave address on the primary IPMB is 90h. If we set my_addr to 90h, 
> all subsequent RMCP packets will be incorrectly composed and discarded by the 
> board.
>
> For this case we should set another address value, e.g. my_ipmb_addr, which 
> defaults to my_addr but then can be changed via PICMG discovery.

I agree that the scenario  you present above will cause failures for lan 
interfaces if it it were to occur, but I don't believe it
would ever make sense for PICMG discovery over lan to return anything except 
20h if the interface were opened using 20h.

Nothing I did should change the way in which the lan interfaces work IPMB 
addressing and PICMG discovery.

With my changes, the only interface which supports re-setting my_addr to the 
IPMB discovered address is OpenIPMI.

>
> Regarding to the BRIDGE_TO_SENSOR macro, I am now convinced that it should 
> work as needed.
Good
>
> There is one more thing. Please, add PICMG Extension 5.0 (05h) for MicroTCA.0 
> base specification.
>
Is this another version like PICMG_AMC_MAJOR_VERSION.   If so, should it be,
PICMG_MICROTCA_MAJOR_VERSION or is something else more appropriate?

> Regards,
> Dmitry
>
> 18.04.2013 0:01, Jim Mankovich пишет:
>> Hi Dmitry,
>>
>> I've attached an update patch which removes the need to close/re-open
>> the interface when
>> the PICMG discovered IPMB address is found to be different than the IPMB
>> address used to
>> open the interface.    A new per interface function was added to enable
>> setting the IPMB
>> address (if the interface supports it), and the OpenIPMI interface was
>> modified to provide this
>> interface.  See the patch for details.
>>
>> In putting together the BRIDGE_TO_SENSOR macro, I was working under the
>> assumption that channel
>> 0 was always used to identify the primary IPMB Channel (per the IPMI
>> specification).  This
>> is why I first qualify that the SDR sensor record channel is equal to
>> zero before I compare the
>> target_ipmb_addr (which is only set on PICMG platforms), with the SDR
>> sensor record address.
>> This comparison is intended to be true when the sensor is on an IPMB and
>> the target IPMB (as returned
>> by PICMG Get Address Info) matches the sensor address.    If this is the
>> case, then this sensor does
>> not require any extra bridging beyond what was used to address the SDR
>> repository (PICMG
>> platforms only).    If you would like me to explicitly run time verify
>> in the macro that this condition is PICMG
>> only, I can qualify it with intf->picmg_avail in addition to the
>> target_ipmb_addr test.
>>
>> The second condition in the BRIDGE_TO_SENSOR macro simply looks to see
>> if the sensor record
>> address and channel exactly match the argument specified target address
>> and channel (-t <address>
>> -b <channel>).   If this is true, then the sensor does not require any
>> extra bridging beyond what
>> was used to address the SDR repository (any platform).    This second
>> condition check doesn't change
>> the current logic from what exists today, it just clarifies the case in
>> which no extra bridging is
>> necessary beyond what was specified on the ipmitool command line.   If
>> this test really confuses folks, it
>> could be removed.
>>
>> NOTE: With the code that currently exists today in ipmitool, the address
>> of the sensor from the SDR repository
>> always overwrites the interface target address and target channel prior
>> to accessing the sensor
>> via the interface sendrecv routine.     Then in the interface sendrecv
>> routines, bridging requests will be
>> built using the target address (target_addr) and channel
>> (target_channel) if the target_addr doesn't match the
>> interface address (my_addr).
>>
>> I did not intend to change how sensors are addressed via bridging on non
>> PICMG platforms.
>>
>> Thanks in Advance,
>> Jim
>>
>> -- Jim Mankovich | jm...@hp.com (US Mountain Time) --
>>
>> On 4/16/2013 11:58 PM, Dmitry Bazhenov wrote:
>>> Hello, Jim,
>>>
>>> Please, see my comments mixed in.
>>>
>>> 17.04.2013 2:21, Jim Mankovich пишет:
>>>> Dmitry,
>>>>
>>>> See my comments below.
>>>>
>>>> Thanks,
>>>> Jim
>>>>
>>>> -- Jim Mankovich | jm...@hp.com (US Mountain Time) --
>>>>
>>>> On 4/15/2013 11:01 PM, Dmitry Bazhenov wrote:
>>>>> Hello, Jim,
>>>>>
>>>>> Your approach has technical and logical flaws.
>>>>>
>>>>> In technical part, all interface drivers shall be ensured to use
>>>>> correct IPMB address when establishing or closing session/interface.
>>>>> This especially regards to LAN and LAN+ drivers. Since some library
>>>>> functionality may close and re-open the interface during its work (as
>>>>> does HPM.1), this may cause problems. Also, a correct address must be
>>>>> used for bridging (when composing a Send Message request).
>>>> I did not intended to do anything which would invalidate using "correct
>>>> IPMB when establishing or closing session/interface.   But, I did need
>>>> to close/re-open to connect to the discovered IPMB address when I ran
>>>> across the issue with OpenIPMI.   See my answer to your specific
>>>> question associated with OpenIPMI  below.
>>>
>>> Understood. But, still, there is an issue with the Send Message
>>> request when performing bridging or double bridging using the LAN
>>> interfaces. Though, it is a separate issue.
>>>
>>>>
>>>>>
>>>>> In logical part, when bridging is used, we must perform the address
>>>>> retrieval procedure not only on the IPMC on which the interface was
>>>>> opened, but on the target IPMC as well. And the second acquired
>>>>> address must be used in sensor owner ID comparison to decide if
>>>>> bridging is required or not. It might be, if double bridging is used
>>>>> to access the target IPMC, that sensor values are unreachable.
>>>> Using the second acquired address for sensor owner ID comparison for
>>>> bridging was my intent with the change I made.  Did you see something
>>>> that indicated this was not what I was doing?    Also, the channel
>>>> number has to be used in the comparison as well since it is part of
>>>> addressing identified in the sensor entries in the SDR repository.
>>>
>>> You're right. I have missed it at the first time.
>>>
>>> But still, there are issues with checking if bridging is needed:
>>>
>>> First: in my opinion, the channel comparison is wrong in the
>>> BRIDGE_TO_SENSOR macro. The local channel number on the target IPMC
>>> may not match with the channel number used to access the target IPMC
>>> (intf->target_channel).
>>>
>>> For example, for PICMG-defined Carrier IPMC, the channel for accessing
>>> an AMC module is 7, while for the AMC module, the same channel is 0.
>>>
>>> I understand that it is likely for PICMG systems that the first check
>>> in the macro succeeds and the second check does not really matter.
>>> But I am not sure that there will be no problem with other system types.
>>>
>>> Second, the target address and channel substitution may be wrong too.
>>> This works only if intf->target_channel can be used to access the
>>> sensor owner, but it may not be the case. So, in some situation,
>>> additional bridging step is needed. If a double bridging is already
>>> used, such sensors may not be even reachable.
>>>
>>> However, I can not imaging systems where such situation is possible.
>>> So, this is rather theoretical issue.
>>>
>>>>
>>>>> Also, since not all IPMCs are PICMG-based, it maybe not correct to use
>>>>> the Get Address Info command for the target IPMC address retrieval. It
>>>>> is better to fetch the Management Controller Locator record instead
>>>>> (implement this retrieval in ipmi_sdr.c or ipmi_sensor.c).
>>>>
>>>> I could certainly do this on non PICMG-based systems, but isn't it
>>>> possible that there could be more than one Management Controller Locator
>>>> record in the target SDR repository?   If there can be more than one,
>>>> how do you know which one to use?
>>>
>>> There can be several MC locators for non-PICMG systems. PICMG-systems
>>> contain only one MC locator and several FRU Device locators for
>>> subsidiary FRUs.
>>>
>>> I suggest fetching the target_ipmb_addr only for PICMG-based systems.
>>>
>>>>
>>>>>
>>>>> And regarding to the OpenIPMI interface driver. Is it possible to set
>>>>> another IPMC address without closing and re-opening interface? Other
>>>>> interface drivers seem not require such procedure.
>>>> The OpenIPMI interface has the ability to set the address vial
>>>> IPMICTL_SET_MY_ADDRESS_CMD, and I believe this could be used to avoid
>>>> the close/re-open.   Did your fix to resolve bridging issues work
>>>> correctly with OpenIPMI?
>>>
>>> We do not actively use the OpenIPMI driver, so we are not aware of its
>>> issues.
>>> My point is that no other interface drivers need this additional
>>> close/open. So, it might be worth to do it only for the OpenIPMI
>>> interface.
>>>
>>> No more comments.
>>>
>>> Regards,
>>> Dmitry
>>>
>>>>> Regards,
>>>>> Dmitry
>>>>>
>>>>> 15.04.2013 23:12, Jim Mankovich пишет:
>>>>>> Hi Dmitry,
>>>>>>
>>>>>> I have a similar approach to what you outlined, but I did not find the
>>>>>> need to do
>>>>>> anything different the the "-m" command line switch. I've attached a
>>>>>> patch I've
>>>>>> been using to resolve the issue I was having and would appreciate any
>>>>>> feedback you
>>>>>> might have on my approach.    The patch is for the CVS ipmitool source
>>>>>> code at TOB
>>>>>> this morning.
>>>>>>
>>>>>> I changed ipmi_main() to always open the interface using either
>>>>>> 0x20 or
>>>>>> the address
>>>>>> specified with the "-m" switch.   With the code as it exists today,
>>>>>> open
>>>>>> is sometimes
>>>>>> done in main and sometimes done when the first IPMI request is made.
>>>>>> I found the
>>>>>> defer of the open quire problematic, so I changed the code to
>>>>>> always do
>>>>>> the open prior
>>>>>> to the first IPMI request.    After the initial open, I use the PICMG
>>>>>> get address info to
>>>>>> get the IPMB-0 address.   If I was able to discover an address, I
>>>>>> close
>>>>>> and re-open
>>>>>> the interface with the discovered IPMB-0 address as I found this was
>>>>>> necessary to make
>>>>>> sure that the open ipmi driver had the correct address of the target
>>>>>> IPMB-0.   Then, if bridging is
>>>>>> specified with "-t" and/or "-T", I get the bridge target IPMB-0
>>>>>> address
>>>>>> and store that away to
>>>>>> determine when bridging is necessary for sensors identified in the SDR
>>>>>> repository accessed via
>>>>>> the bridging command line arguments.
>>>>>>
>>>>>> Thanks,
>>>>>> Jim
>>>>>>
>>>>>> -- Jim Mankovich | jm...@hp.com (US Mountain Time) --
>>>>>>
>>>>>> On 4/15/2013 9:05 AM, Dmitry Bazhenov wrote:
>>>>>>> Hello, Jim,
>>>>>>>
>>>>>>> Your understanding is correct. Moreover, we already have a patch
>>>>>>> which
>>>>>>> solves the issue (in our local IPMITool repo). We are going to submit
>>>>>>> the patch for this issue shortly.
>>>>>>>
>>>>>>> And to the topic raised.
>>>>>>>
>>>>>>> The sensor owner ID in the SDR in my opinion shall match with the
>>>>>>> IPMC
>>>>>>> slave address on the primary IPMB bus (channel #0).
>>>>>>>
>>>>>>> Since there are cases when the IPMC accessed from other channels
>>>>>>> (than
>>>>>>> channel #0), like LAN, the slave address of the IPMC on that channel
>>>>>>> may
>>>>>>> not match with the primary IPMB address.
>>>>>>>
>>>>>>> We solved this problem as follows:
>>>>>>> - introduced a BMC address which can be overridden by "-m"
>>>>>>> command-line
>>>>>>> parameter (default valuse is 20h). This address is used to access the
>>>>>>> IPMC on which a session to establish a session (for LAN).
>>>>>>> - then using Get PICMG Properties to check whether the board is a
>>>>>>> PICMG-based system.
>>>>>>> - use either Get Address Info for FRU #0 or fetch the Management
>>>>>>> Controller Locator Record to query the IPMC slave address on the
>>>>>>> primary
>>>>>>> IPMB.
>>>>>>> - store the fetched slave address. it then used to match the sensor
>>>>>>> owner ID to decide if the bridging to sensor is required on not.
>>>>>>> - for the case when bridging is used, the stored slave address is
>>>>>>> used
>>>>>>> to compose the Send Message command is return address.
>>>>>>>
>>>>>>> Regards,
>>>>>>> Dmitry
>>>>>>>
>>>>>>> 15.04.2013 20:47, Jim Mankovich пишет:
>>>>>>>> All,
>>>>>>>>
>>>>>>>> I've been digging into various issue associated with ipmitool
>>>>>>>> bridging
>>>>>>>> on a PICMG
>>>>>>>>
>>>>>>>> system and I wouldappreciate some help with understanding what the
>>>>>>>> actual intended
>>>>>>>>
>>>>>>>> use of the bridging command line arguments was. There are two
>>>>>>>> different bridging
>>>>>>>>
>>>>>>>> argument specifications, -t target_address/-b target_channel (single
>>>>>>>> bridge), and
>>>>>>>>
>>>>>>>> -T transit_address/-B transit_channel (dual bridge).
>>>>>>>>
>>>>>>>> When only -t is specified, single level bridging will be used to
>>>>>>>> read
>>>>>>>> the SDR repository
>>>>>>>>
>>>>>>>> if the address specified by -t is not equivalent to the ipmitool
>>>>>>>> identified IPMB-0 address.
>>>>>>>>
>>>>>>>> Note: The ipmitool identified IPMB-0 address is either the
>>>>>>>> default of
>>>>>>>> 0x20, or specified
>>>>>>>>
>>>>>>>> on the command line via the -m address switch, or discovered via
>>>>>>>> PICMG
>>>>>>>> get address
>>>>>>>>
>>>>>>>> info.
>>>>>>>>
>>>>>>>> In addition to -t, you may also specify a transit address via
>>>>>>>> -T.If a
>>>>>>>> transit address is
>>>>>>>>
>>>>>>>> specified, dual bridging will be used to read the SDR
>>>>>>>> repository(via the
>>>>>>>> transit address
>>>>>>>>
>>>>>>>> to get to the target identified via -t).   The specification of a
>>>>>>>> transit address without a
>>>>>>>>
>>>>>>>> target address is meaningless as the transit address is not used
>>>>>>>> unless
>>>>>>>> there is a target
>>>>>>>>
>>>>>>>> address specification with -t.
>>>>>>>>
>>>>>>>> Does my description agree with your understanding of these switches
>>>>>>>> and
>>>>>>>> their use?
>>>>>>>>
>>>>>>>> Now, in addition to bridging to read the SDR repository, bridging
>>>>>>>> will
>>>>>>>> also occur to access
>>>>>>>>
>>>>>>>> an individual sensor if the sensor owner id identified in the SDR
>>>>>>>> repository does not match
>>>>>>>>
>>>>>>>> the ipmitool identified IPMB-0 address.    This bridging will
>>>>>>>> override
>>>>>>>> the specified target address
>>>>>>>>
>>>>>>>> identified via the -t switch, but will make use of the transit
>>>>>>>> address
>>>>>>>> (and dual bridge) when
>>>>>>>>
>>>>>>>> both -t and -T are specified.
>>>>>>>>
>>>>>>>> This bridging implementation has issues on the PICMG system I have
>>>>>>>> been
>>>>>>>> using when
>>>>>>>>
>>>>>>>> addressing sensors whose owner id and channel specification in
>>>>>>>> the SDR
>>>>>>>> repository do
>>>>>>>>
>>>>>>>> not identify the exact same addressing that was used to read the SDR
>>>>>>>> repository.
>>>>>>>>
>>>>>>>> For example:If a sensor identified in an SDR repository resides on
>>>>>>>> IPMB-0 (channel 0),
>>>>>>>>
>>>>>>>> but the SDR repository was accessed via bridging on IPMB-L (channel
>>>>>>>> 7),
>>>>>>>> the sensor can't
>>>>>>>>
>>>>>>>> be accessed with the current code because the sensor will be
>>>>>>>> addressed
>>>>>>>> via bridging using
>>>>>>>>
>>>>>>>> channel 0 (from the SDR repository)instead of channel 7 (from the -b
>>>>>>>> channel specification).
>>>>>>>>
>>>>>>>> The problem is that when using bridging to access an SDR
>>>>>>>> repository, the
>>>>>>>> bridged SDR
>>>>>>>>
>>>>>>>> repository destination may actually identify another IPMB-0 at the
>>>>>>>> bridged destination.
>>>>>>>>
>>>>>>>> If this is the case, then the sensor can simply be read using the
>>>>>>>> same
>>>>>>>> bridging as was
>>>>>>>>
>>>>>>>> used to read the SDR repository.
>>>>>>>>
>>>>>>>> On PICMG compliant systems, this issue can be resolved by getting
>>>>>>>> the
>>>>>>>> IPMB-0 address
>>>>>>>>
>>>>>>>> of the target and compare this target IPMB-0 address with the sensor
>>>>>>>> owner id/channel
>>>>>>>>
>>>>>>>> number from the SDR repository.If the sensor owner id is equal to
>>>>>>>> the
>>>>>>>> target IPMB-0
>>>>>>>>
>>>>>>>> address and the sensor channel is 0, then the sensor can be accessed
>>>>>>>> using the same
>>>>>>>>
>>>>>>>> addressing as was used to address the SDR repository.
>>>>>>>>
>>>>>>>>
>>>>>>>> I have some ipmitool changes in the works which resolve the sensor
>>>>>>>> bridging issue
>>>>>>>> I've described, but I need some insight from someone more familiar
>>>>>>>> with
>>>>>>>> PICMG and
>>>>>>>> sensor bridging to make sure my analysis of the problem I'm
>>>>>>>> seeing is
>>>>>>>> correct.
>>>>>>>>
>>>>>>>> Thanks in advance,
>>>>>>>> Jim
>>>>>>>>
>>>>>>>> -- 
>>>>>>>> -- Jim Mankovich |jm...@hp.com  (US Mountain Time) --
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> ------------------------------------------------------------------------------
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> Precog is a next-generation analytics platform capable of advanced
>>>>>>>> analytics on semi-structured data. The platform includes APIs for
>>>>>>>> building
>>>>>>>> apps and a phenomenal toolset for data science. Developers can use
>>>>>>>> our toolset for easy data analysis & visualization. Get a free
>>>>>>>> account!
>>>>>>>> http://www2.precog.com/precogplatform/slashdotnewsletter
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> _______________________________________________
>>>>>>>> Ipmitool-devel mailing list
>>>>>>>> Ipmitool-devel@lists.sourceforge.net
>>>>>>>> https://lists.sourceforge.net/lists/listinfo/ipmitool-devel
>>>>>>>>
>>>>>>> ------------------------------------------------------------------------------
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> Precog is a next-generation analytics platform capable of advanced
>>>>>>> analytics on semi-structured data. The platform includes APIs for
>>>>>>> building
>>>>>>> apps and a phenomenal toolset for data science. Developers can use
>>>>>>> our toolset for easy data analysis & visualization. Get a free
>>>>>>> account!
>>>>>>> http://www2.precog.com/precogplatform/slashdotnewsletter
>>>>>>> _______________________________________________
>>>>>>> Ipmitool-devel mailing list
>>>>>>> Ipmitool-devel@lists.sourceforge.net
>>>>>>> https://lists.sourceforge.net/lists/listinfo/ipmitool-devel
>>>>>>>
>>>>>>>
>>>>>>
>>>>>
>>>>
>>>
>>
>


------------------------------------------------------------------------------
Try New Relic Now & We'll Send You this Cool Shirt
New Relic is the only SaaS-based application performance monitoring service 
that delivers powerful full stack analytics. Optimize and monitor your
browser, app, & servers with just a few lines of code. Try New Relic
and get this awesome Nerd Life shirt! http://p.sf.net/sfu/newrelic_d2d_apr
_______________________________________________
Ipmitool-devel mailing list
Ipmitool-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ipmitool-devel

Reply via email to