Dmitry, Dan,

In doing some testing on my system, I've found that the value of
the IPMB address doesn't make any difference when you do bridged
requests over lanplus.   I believe the same is true for lan as well since
Dan's testing showed that the value specified with -m address didn't
make any difference in success or failure when used in conjunction
with a target address (-t).   This is not the case when not doing bridging.

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

On 4/25/2013 7:24 AM, Dmitry Bazhenov wrote:
> Hello, Jim,
>
> I need to think it through.
> Since double bridging is used to access AMC modules, then I guess, it maybe 
> not worth to bother with the discovered PICMG address in LAN or other 
> interfaces.
>
> Regards,
> Dmitry
>
> 24.04.2013 23:42, Jim Mankovich пишет:
>> 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