From 30a19c3f1c51ff404d8de3196c4355fba3083c8e Mon Sep 17 00:00:00 2001 From: Michael Brown Date: Thu, 13 Sep 2007 14:43:12 +0100 Subject: 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. --- src/include/gpxe/infiniband.h | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) (limited to 'src/include') 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 -- cgit v1.2.3-55-g7522