diff options
author | Michael Brown | 2009-08-09 21:38:35 +0200 |
---|---|---|
committer | Michael Brown | 2009-08-10 23:19:39 +0200 |
commit | 0b1222f2332e89bcece1912ec6058479b45f62f1 (patch) | |
tree | cc096a5cfeff20073da09c710121a90bc5decf2e /src/drivers/infiniband/hermon.h | |
parent | [scsi] Make LUN a property of the SCSI backend only (diff) | |
download | ipxe-0b1222f2332e89bcece1912ec6058479b45f62f1.tar.gz ipxe-0b1222f2332e89bcece1912ec6058479b45f62f1.tar.xz ipxe-0b1222f2332e89bcece1912ec6058479b45f62f1.zip |
[hermon] Randomise the high-order bits of queue pair numbers
The Infiniband Communication Manager will refuse to establish a
connection if it believes the connection is already established.
There is no immediately obvious way to ask it to tear down the
existing connection and replace it; to issue a DREP we would need to
know the local and remote communication IDs used for the previous
connection setup.
We can work around this by randomising the high-order bits of the
queue pair number; these have no significance to the hardware, but are
sufficient to convince the IB CM that this is a different connection.
Diffstat (limited to 'src/drivers/infiniband/hermon.h')
-rw-r--r-- | src/drivers/infiniband/hermon.h | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/src/drivers/infiniband/hermon.h b/src/drivers/infiniband/hermon.h index c3d895c6..f19fd359 100644 --- a/src/drivers/infiniband/hermon.h +++ b/src/drivers/infiniband/hermon.h @@ -422,8 +422,8 @@ struct hermon_recv_work_queue { */ #define HERMON_MAX_QPS 8 -/** Base queue pair number */ -#define HERMON_QPN_BASE 0x550000 +/** Queue pair number randomisation mask */ +#define HERMON_QPN_RANDOM_MASK 0xfff000 /** Hermon queue pair state */ enum hermon_queue_pair_state { |