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
