[infiniband] Handle duplicate Communication Management REPs
authorMichael Brown <mcb30@etherboot.org>
Sun, 9 Aug 2009 00:25:38 +0000 (01:25 +0100)
committerMichael Brown <mcb30@etherboot.org>
Sun, 9 Aug 2009 00:31:07 +0000 (01:31 +0100)
commit46073f12391e5a467fbf5d5853ea91333fcce843
treef364ef93930613b99d602fff44e644427c13d956
parentce68f587e24278d681e7ca05b62e51ada627cbef
[infiniband] Handle duplicate Communication Management REPs

We will terminate our transaction as soon as we receive the first CM
REP, since that provides all the state that we need.  However, the
peer may resend the REP if it didn't see our RTU, and if we don't
respond with another RTU we risk being disconnected.  (This protocol
appears not to handle retries gracefully.)

Fix by adding a management agent that will listen for these duplicate
REPs and send back an RTU.
src/include/gpxe/ib_cm.h
src/net/infiniband/ib_cm.c