[openib-general] Questions about SMI

Roland Dreier
Wed Oct 13 10:27:02 PDT 2004


    Hal> int snoop_mad(struct ib_device *ibdev,
    Hal>               u8 port_num,
    Hal>               u16 slid,
    Hal>               struct ib_mad *mad);

That's fine with me.  How about the return value -- I would suggest 0
for ignored, non-zero for consumed?  So the MAD layer would do:

        if (device->snoop_mad(...)) {
                /* free mad */
                /* stop processing */
        }

        /* otherwise proceed as usual */

    Hal> Got it: it's any locally generated traps. Do they all show up
    Hal> on QP0 regardless of the class of the trap ?

No, I think BM traps arrive on QP1 (although I haven't tested).

    Hal> I'm counting the low level driver :-) It depends on what the
    Hal> driver will do with the MAD. There are "ownership" issues on
    Hal> the MAD.

If you count the low-level driver then there can be two consumers per
MAD: first snoop_mad() sees it and then agent dispatch gives it to a
different consumer.

    Hal> OK. It shouldn't take long to code this up. Testing will take
    Hal> a little longer. Is there any easy way to cause one of these
    Hal> traps to be generated ?

I think if you send an SMP with bad M_Key it should generate a trap.

 - R.


More information about the openib-general mailing list