[openib-general] APM support in openib stack

Venkatesh Babu venkatesh.babu at 3leafnetworks.com
Tue Oct 24 18:57:02 PDT 2006



Sean Hefty wrote:

> somenath wrote:
>
>> any idea when this stuff will get done?
>
>
> As a rough estimate, Q1, though I will try to get to it after adding 
> support for SA events, which likely would be near late November, early 
> December.  The framework in the ib_cm is there; I just need a way to 
> signal that failover has occurred.


I have proposed patches to the ib_cm and ib_sa modules in bug#172 and 
bug#159 to get this APM functionality working. See the following 
description on how these interfaces can be used to resolve the APM issues.

On a node where RC QP connection is initiated (Active side) the 
IB_EVENT_PORT_ERR event is generated when port failure occurs and in 
this event handler RC QP's path_mig_state can be changed to 
IB_MIG_MIGRATED to cause the failover.

The problem is for the the remote node where RC QP listen was accepted 
this connection (Passive side). There is no way for this node to know 
that port failure has occurred on the Active side. So it requires some 
interfaces to get this notification. So ib_sa_serv_notice_hdlr() 
interface as described in the patch attached to bug#159 can be used to 
register for the remote port events. This interface has to be called 
separately for for PORT_ERR and PORT_ACTIVE events. When the handler for 
remote PORT_ERR occurs, then RC QP's path_mig_state can be changed to 
IB_MIG_MIGRATED to cause the failover.

For the rearming, IB_EVENT_PORT_ACTIVE event handler can be used on 
Active side to reload the alternate path by sending the LAP message. 
When LAP is received on the Passive side or when APR is received on the 
Active side, alternate path can be reloaded with the interface 
ib_cm_init_rearm_attr() as described on bug#172.

When a port is rearmed on the Passive side same ib_sa_serv_notice_hdlr() 
interface's callback handler for PORT_ACTIVE event can be used to send 
the LAP/APR messages and same ib_cm_init_rearm_attr() can be used to 
rearm the alternate path.

 VBabu




More information about the general mailing list