[openib-general] [RFC] send side QP redirection
Hal Rosenstock
halr at voltaire.com
Sat Sep 17 03:33:43 PDT 2005
On Fri, 2005-09-16 at 17:27, Sean Hefty wrote:
> I'd like to get feedback about a possible implementation for requester QP
> redirection based on the APIs given below.
> Specifically, I'm referring to GSI
> redirection (spec 13.5.2) and port and CM redirection (REJ code 24).
>
> The basic proposal is to combine QP redirection as an extension to an address
> handle cache. Remote agents are identified by management class, LID, and GID.
> struct ib_mad_av {
> struct ib_ah *ah;
> u32 remote_qpn;
> u32 remote_qkey;
> u16 pkey_index;
> };
What about SL and the other redirect GRH fields (TC and FL) ?
> /*
> * Insert a new destination into the map and create a new address
> * vector to it. If the destination already exists, simply return
> * the current address vector.
> * /
> struct ib_mad_av* ib_insert_mad_dest(struct ib_mad_agent*,
> struct ib_ah_attr*,
> mgmt_class, lid, gid, pkey);
So the last three parameters are transferred from the received
ClassPortInfo.
> struct ib_mad_av* ib_get_mad_av(struct ib_mad_agent*,
> mgmt_class, lid, gid);
I'm missing why LID and GID are needed here and why pkey is missing.
Is there more than 1 struct ib_mad_av allowed per mgmt_class ?
> /*
> * TBD: need to determine when to remove a destination. Can remove
> * always if references go to 0. Can add a delay before removal. Can
> * maintain destinations that have been redirected. ?
> */
> void ib_free_mad_av(struct ib_mad_av*);
>
> ib_redirect_mads(struct ib_mad_av*, struct ib_mad_recv_wc*,
> struct ib_class_port_info*);
>
> /* GID redirection with unknown LID would be deferred */
> int ib_get_mad_redirect_path(...);
Just curious why ?
> Questions or thoughts?
Is multiple redirection handled by this ?
Would these semantics need to be extended to user space by user_mad ?
-- Hal
More information about the general
mailing list