iPXE
|
Infiniband path records. More...
#include <ipxe/infiniband.h>
Go to the source code of this file.
Data Structures | |
struct | ib_path_operations |
Infiniband path operations. More... | |
struct | ib_path |
An Infiniband path. More... | |
Functions | |
FILE_LICENCE (GPL2_OR_LATER_OR_UBDL) | |
static __always_inline void | ib_path_set_ownerdata (struct ib_path *path, void *priv) |
Set Infiniband path owner-private data. More... | |
static __always_inline void * | ib_path_get_ownerdata (struct ib_path *path) |
Get Infiniband path owner-private data. More... | |
struct ib_path * | ib_create_path (struct ib_device *ibdev, struct ib_address_vector *av, struct ib_path_operations *op) |
Create path. More... | |
void | ib_destroy_path (struct ib_device *ibdev, struct ib_path *path) |
Destroy path. More... | |
int | ib_resolve_path (struct ib_device *ibdev, struct ib_address_vector *av) |
Resolve path. More... | |
Variables | |
struct ib_path_operations | __attribute__ |
Infiniband path records.
Definition in file ib_pathrec.h.
FILE_LICENCE | ( | GPL2_OR_LATER_OR_UBDL | ) |
|
inlinestatic |
Set Infiniband path owner-private data.
path | Path |
priv | Private data |
Definition at line 52 of file ib_pathrec.h.
References ib_path::owner_priv, and priv.
Referenced by ib_create_conn(), and ib_resolve_path().
|
inlinestatic |
Get Infiniband path owner-private data.
path | Path |
priv | Private data |
Definition at line 63 of file ib_pathrec.h.
References ib_path::owner_priv.
Referenced by ib_cached_path_complete(), and ib_cm_path_complete().
struct ib_path* ib_create_path | ( | struct ib_device * | ibdev, |
struct ib_address_vector * | av, | ||
struct ib_path_operations * | op | ||
) |
Create path.
ibdev | Infiniband device |
av | Address vector to complete |
op | Path operations |
path | Path |
Definition at line 107 of file ib_pathrec.c.
References ib_path::av, free, ib_address_vector::gid, ib_device::gid, ib_device::gsi, htonl, htons, ib_create_madx(), ib_destroy_madx(), ib_madx_set_ownerdata(), IB_MGMT_CLASS_SUBN_ADM, IB_MGMT_METHOD_GET, ib_path_op, IB_SA_ATTR_PATH_REC, IB_SA_CLASS_VERSION, IB_SA_PATH_REC_DGID, IB_SA_PATH_REC_SGID, ib_path::ibdev, mad, ib_path::madx, memcpy(), memset(), NULL, ib_path::op, op, ib_mad::sa, sa, and zalloc().
Referenced by ib_create_conn(), and ib_resolve_path().
Destroy path.
ibdev | Infiniband device |
path | Path |
Definition at line 156 of file ib_pathrec.c.
References free, ib_device::gsi, ib_destroy_madx(), and ib_path::madx.
Referenced by ib_cached_path_complete(), ib_cm_path_complete(), ib_create_conn(), ib_destroy_conn(), and ib_resolve_path().
int ib_resolve_path | ( | struct ib_device * | ibdev, |
struct ib_address_vector * | av | ||
) |
Resolve path.
ibdev | Infiniband device |
av | Address vector to complete |
rc | Return status code |
This provides a non-transactional way to resolve a path, via a cache similar to ARP.
Definition at line 249 of file ib_pathrec.c.
References ib_path::av, DBGC, DBGC2, ENOENT, ENOMEM, gid, ib_address_vector::gid, ib_address_vector::gid_present, ib_cached_path_op, ib_create_path(), ib_destroy_path(), ib_find_path_cache_entry(), IB_GID_ARGS, IB_GID_FMT, IB_NUM_CACHED_PATHS, ib_path_cache, ib_path_cache_idx, ib_path_set_ownerdata(), ib_address_vector::lid, memset(), ib_device::name, ib_cached_path::path, ib_address_vector::rate, and ib_address_vector::sl.
Referenced by eoib_duplicate(), eoib_tx_av(), and ipoib_transmit().
struct ib_path_operations __attribute__ |