sense remote hardware address change by rdma-cm applications

Or Gerlitz
2010-07-19T21:42:06Z

Today, the kernel neighbouring maintainance state-machine / engine
doesn't come into play for neighbours created on behalf of rdma-cm
consumers. This is b/c the send path is offloaded away from the
network-stack to the app QP, and as such the neighbour created
follwing the ARP request / reply initiated by rdma_resolve_address is
quickly getting aged and deleted, am I correct in that?

This behaviour makes rdma-cm RC apps to sense remote hardware address
change based only on the RC QP timeout, where UD apps have no way
other then implementing some sort of keep-alive / probing mechanism to
make sure their AH is valid, so how about

A. ref a neighbour created on behalf of or used by an rdma-cm ID (*)

B. enhance the rdma-cm address_change event to report on remote
hardware address change, based on neighbour events

Or.

(*) would per ID neigh_hold() call (paired with neigh_release() when
the ID gets destroyed) work for that end?