[Openib-windows] GMP handling
Fabian Tillier
ftillier at silverstorm.com
Tue Jul 25 11:06:34 PDT 2006
Hi Yossi,
On 7/25/06, Yossi Leybovich <sleybo at mellanox.co.il> wrote:
>
> Fab
>
> al_smi.c assume that PERF class is always routing as local mad, so any
> get_resp mad will be rout to the HW and probaly will be dropped.
> I create patch that fix the problem but it only address the immediate
> problem of PERF class and I think we should review the handling of all the
> GMP mads
>
> few comments: (some of them cosmetics, but willl help to understand the
> routing algorithm)
>
> - There is no reference to the ADM and DM classes ( I guess that those
> classes always use the DISPATCH route but it will be more clear if we will
> write them at the switch)
I added explicit reference to SUBN_ADM, DEV_MGMT, COMM_MGMT, and SNMP.
> - function route_recv_gmp should handle all GMP classes as her name state
> but actually it handle BM and VENDOR SPECIFIC
Having this function handle all GMP traffic duplicates the switch on
the management class, which is unnecessary. Perhaps a better function
name would make sense, but I can't think of something short - this
function is used for BM and vendor specific only, but naming it
route_recv_bm_or_vendor_specific_gmp is too long. If the BM routing
is incorrect, this function will only be for vendor specific.
> - on function route_recv_gmp the code assume that class_port_info should
> always route to the HW, but I dont think the SPEC require the HCA to answer
> all class port info.
This should be easy enough to fix up if we need to - the function
route_recv_gmp_attr function will need to be extended, but that's
about it. I would rather leave it be for now unless things are
broken, especially since SUBN_ADM, DEV_MGMT, and COMM_MGMT all use
DISPATCH routing exclusively.
> My suggestion is to have the AL query the low level driver which classes the
> HW support and only those classes should be forward down to the HW.
How about AL look in its list of mad services to see which are setup
to receive unsolicited MADs for each class - if such a SW agent
exists, then the class port info would be sent to it, otherwise to the
HW. Do you think that would work?
In any case, I think this is a feature we can wait to implement,
perhaps even until gen2.
> all GMP packets should be pass through route_recv_gmp.
As I mentioned above, this would duplicate the switch on the
management class. I think the code as it stands is more efficient.
> Classes that not supported by HW (like DM ,BM and ADM ) should be rout as
> dispatch.
Except for BM sending class port info to the HW, these classes (and
CM) are all routed as dispatch exclusively. It would be simple to
change the BM class to always route as dispatch - is it improper for
the BM class port info to go to the HW?
> Classes that do supported by HW should be routed according to the method
> (get/set to the HW get_resp dispatch.
Right now, the only classes that are assumed to be supported by HW are
vendor specific and PERF. The BM class port info is routed to the HW,
and I don't know if that's the proper thing to do.
> Attached is the patch I add to support PERF class.
> We need to address at list the PERF class issue because our IBADM tools
> depends on that
Thanks, applied in 430.
- Fab
More information about the ofw
mailing list