From f1d92fa8865c281cb7da31f2e3b62ece3f2f9ca1 Mon Sep 17 00:00:00 2001 From: Michael Brown Date: Thu, 9 Jul 2009 15:52:04 +0100 Subject: [infiniband] Allow external QPN to differ from real QPN Most IB hardware seems not to allow allocation of the genuine QPNs 0 and 1, so allow for the externally-visible QPN (as constructed and parsed by ib_packet, where used) to differ from the real hardware-allocated QPN. --- src/include/gpxe/infiniband.h | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) (limited to 'src/include') diff --git a/src/include/gpxe/infiniband.h b/src/include/gpxe/infiniband.h index 9c1f57a08..dacb13e4b 100644 --- a/src/include/gpxe/infiniband.h +++ b/src/include/gpxe/infiniband.h @@ -96,8 +96,15 @@ struct ib_queue_pair { struct ib_device *ibdev; /** List of queue pairs on this Infiniband device */ struct list_head list; - /** Queue Pair Number */ + /** Queue pair number */ unsigned long qpn; + /** Externally-visible queue pair number + * + * This may differ from the real queue pair number (e.g. when + * the HCA cannot use the management QPNs 0 and 1 as hardware + * QPNs and needs to remap them). + */ + unsigned long ext_qpn; /** Queue pair type */ enum ib_queue_pair_type type; /** Queue key */ -- cgit v1.2.3-55-g7522