david/ipxe
Archived
1
0
This repository has been archived on 2020-12-06. You can view files and clone it, but cannot push or open issues or pull requests.
ipxe/src/include/gpxe/infiniband.h

53 lines
1.1 KiB
C
Raw Normal View History

2007-09-12 23:17:43 +02:00
#ifndef _GPXE_INFINIBAND_H
#define _GPXE_INFINIBAND_H
/** @file
*
* Infiniband protocol
*
*/
#include <stdint.h>
#include <gpxe/netdevice.h>
/** Infiniband hardware address length */
#define IB_ALEN 20
#define IB_HLEN 24
/** An Infiniband header
*
* This data structure doesn't represent the on-wire format, but does
* contain all the information required by the driver to construct the
* packet.
*/
struct ibhdr {
/** Peer address */
uint8_t peer[IB_ALEN];
/** Network-layer protocol */
uint16_t proto;
/** Reserved, must be zero */
uint16_t reserved;
} __attribute__ (( packed ));
extern struct ll_protocol infiniband_protocol;
extern const char * ib_ntoa ( const void *ll_addr );
/**
* Allocate Infiniband device
*
* @v priv_size Size of driver private data
* @ret netdev Network device, or NULL
*/
static inline struct net_device * alloc_ibdev ( size_t priv_size ) {
struct net_device *netdev;
netdev = alloc_netdev ( priv_size );
if ( netdev ) {
netdev->ll_protocol = &infiniband_protocol;
}
return netdev;
}
#endif /* _GPXE_INFINIBAND_H */