summaryrefslogtreecommitdiffstats
path: root/src/include/gpxe
diff options
context:
space:
mode:
authorMichael Brown2007-09-13 15:43:12 +0200
committerMichael Brown2007-09-13 15:43:12 +0200
commit30a19c3f1c51ff404d8de3196c4355fba3083c8e (patch)
tree013ebc0cb2c2249f9e0e0f6ea9740f97a4f89705 /src/include/gpxe
parentDump received packet, including GRH. (diff)
downloadipxe-30a19c3f1c51ff404d8de3196c4355fba3083c8e.tar.gz
ipxe-30a19c3f1c51ff404d8de3196c4355fba3083c8e.tar.xz
ipxe-30a19c3f1c51ff404d8de3196c4355fba3083c8e.zip
Can now both send and receive packets. LL header format not yet
fixed; still using a quick hack-up just to be able to pass through data.
Diffstat (limited to 'src/include/gpxe')
-rw-r--r--src/include/gpxe/infiniband.h37
1 files changed, 37 insertions, 0 deletions
diff --git a/src/include/gpxe/infiniband.h b/src/include/gpxe/infiniband.h
index 126113a74..11cec1894 100644
--- a/src/include/gpxe/infiniband.h
+++ b/src/include/gpxe/infiniband.h
@@ -14,6 +14,43 @@
#define IB_ALEN 20
#define IB_HLEN 24
+/** An Infiniband Global Identifier */
+struct ib_gid {
+ uint8_t bytes[16];
+};
+
+/** An Infiniband Global Route Header */
+struct ib_global_route_header {
+ /** IP version, traffic class, and flow label
+ *
+ * 4 bits : Version of the GRH
+ * 8 bits : Traffic class
+ * 20 bits : Flow label
+ */
+ uint32_t ipver_tclass_flowlabel;
+ /** Payload length */
+ uint16_t paylen;
+ /** Next header */
+ uint8_t nxthdr;
+ /** Hop limit */
+ uint8_t hoplmt;
+ /** Source GID */
+ struct ib_gid sgid;
+ /** Destiniation GID */
+ struct ib_gid dgid;
+} __attribute__ (( packed ));
+
+/** An Infiniband MAC address */
+struct ib_mac {
+ /** Queue pair number
+ *
+ * MSB must be zero; QPNs are only 24-bit.
+ */
+ uint32_t qpn;
+ /** Port GID */
+ struct ib_gid gid;
+} __attribute__ (( packed ));
+
/** An Infiniband header
*
* This data structure doesn't represent the on-wire format, but does