The endpoints are really internal ipoib structures that windows does not know 
anything about.
Each endpoint is in the port lists and cannot move from one port to another. As 
a result this checkin seems fine by me.

Thanks
Tzachi 

> -----Original Message-----
> From: [email protected] [mailto:ofw-
> [email protected]] On Behalf Of Smith, Stan
> Sent: Monday, September 27, 2010 9:08 PM
> To: Alex Naslednikov
> Cc: [email protected]
> Subject: Re: [ofw] [PATCH] IPoIB_NDIS6_CM - initialize p_endpt->p_ifc
> once and early.
> 
> Alex Naslednikov wrote:
> > Hello Stan,
> > Some questions and remarks.
> > 1. Have you tested it when we have 2 adapters within the same subnet
> ?
> > What will happen when one adapters suddenly goes down and NDIS
> > decides to send the NBL via the second one ?
> > I suppose that in that case adapter interface should be set
> > dynamically, while preserving all other fields.
> 
> Good question, I have not tested multiple HCAs.
> I suspect that if IBAL (aka ibbus) is giving out IBAL interface vectors
> which contain different IF routine addresses then we have a much larger
> problem to deal with.  :-)
> 
> Point being, the IBAL interface routine addresses will be the same
> between any adapter.
> HCA interface pointers are a different subject; IBAL is the acting
> agent for all HCAs w.r.t. IPoIB.
> 
> I'm not really understanding your concerns w.r.t. IPoIB adapter going
> down and NDIS choosing a different adapter?
> The 2nd adapter initialization and operational state are independent of
> any other IPoIB adapter.
> 
> Technically the IBAL IF pointer should not really be an adapter element
> but more of a global driver element that is set @ IPoIB DriverEntry and
> cleared @ driver unload; independent of how many adapters come or go.
> I suspect placing the IBAL IF pointer in the adapter struct was an
> easy/convenient place for it to land long ago.
> 
> W.r.t. NDIS and switching adapters on the fly, the IBAL IF routine
> pointers will be the same.
> NDIS makes the Adapter choice far above IPoIB driver and will choose
> only an 'enabled' IPoIB which will have a different endpoint struct
> (based on Ethernet MAC and each port will have a different MAC).
> 
> >
> > 2. This flow should be same for IPoIB and IPoIB_NDIS6_CM trees.
> 
> Yes - final patch should be applied to both src trees.
> 
> >
> > XaleX
> >
> > -----Original Message-----
> > From: Smith, Stan [mailto:[email protected]]
> > Sent: Thursday, September 23, 2010 7:14 PM
> > To: Alex Naslednikov
> > Cc: [email protected]
> > Subject: [PATCH] IPoIB_NDIS6_CM - initialize p_endpt->p_ifc once and
> > early.
> >
> >
> > Initialize the endpoint pointer to IBAL interfaces 'p_endpt->p_ifc'
> > only once during endpoint creation so the pointer field is valid for
> > the life of the endpoint. Tested in winOFED 2.3 RC3 validation (svr
> > 2008:x86 & x64); no observed problems.
> >
> > signed-off-by: stan smith <[email protected]>
> >
> > --- A/ulp/ipoib_NDIS6_CM/kernel/ipoib_endpoint.cpp      Thu Sep 23
> > 10:04:26 2010 +++ B/ulp/ipoib_NDIS6_CM/kernel/ipoib_endpoint.cpp
> > Thu Sep 23 10:03:57 2010 @@ -179,6 +179,7 @@
> >         p_endpt->dgid = *p_dgid;
> >         p_endpt->dlid = dlid;
> >         p_endpt->qpn = qpn;
> > +       p_endpt->p_ifc = p_port->p_adapter->p_ifc;
> >
> >         IPOIB_EXIT( IPOIB_DBG_ENDPT );
> >         return p_endpt;
> >
> >
> > --- A/ulp/ipoib_NDIS6_CM/kernel/ipoib_port.cpp  Thu Sep 23 10:05:12
> > 2010 +++ B/ulp/ipoib_NDIS6_CM/kernel/ipoib_port.cpp  Thu Sep 23
> > 10:03:23 2010 @@ -6808,7 +6808,6 @@
> >         }
> >         /* set reference to transport to be used while is not
> >         attached to the port */ p_endpt->is_mcast_listener = TRUE;
> > -       p_endpt->p_ifc = p_port->p_adapter->p_ifc;
> >         status = ipoib_endpt_set_mcast( p_endpt,
> >
> >
> > p_port->ib_mgr.h_pd, p_port->port_num, @@ -7954,7 +7953,6 @@
> >         }
> >
> >         p_endpt = PARENT_STRUCT( p_item, ipoib_endpt_t, gid_item );
> > -       p_endpt->p_ifc = p_port->p_adapter->p_ifc;
> >
> >         /* Setup the endpoint for use. */
> >         status = ipoib_endpt_set_mcast( p_endpt,
> 
> _______________________________________________
> ofw mailing list
> [email protected]
> http://lists.openfabrics.org/cgi-bin/mailman/listinfo/ofw
_______________________________________________
ofw mailing list
[email protected]
http://lists.openfabrics.org/cgi-bin/mailman/listinfo/ofw

Reply via email to