iPXE
|
Infiniband Subnet Management Client. More...
#include <stdint.h>
#include <stdlib.h>
#include <string.h>
#include <errno.h>
#include <unistd.h>
#include <byteswap.h>
#include <ipxe/infiniband.h>
#include <ipxe/ib_smc.h>
Go to the source code of this file.
Functions | |
FILE_LICENCE (GPL2_OR_LATER_OR_UBDL) | |
static int | ib_smc_mad (struct ib_device *ibdev, uint16_t attr_id, uint32_t attr_mod, ib_local_mad_t local_mad, union ib_mad *mad) |
Issue local MAD. More... | |
static int | ib_smc_get_node_info (struct ib_device *ibdev, ib_local_mad_t local_mad, union ib_mad *mad) |
Get node information. More... | |
static int | ib_smc_get_port_info (struct ib_device *ibdev, ib_local_mad_t local_mad, union ib_mad *mad) |
Get port information. More... | |
static int | ib_smc_get_guid_info (struct ib_device *ibdev, ib_local_mad_t local_mad, union ib_mad *mad) |
Get GUID information. More... | |
static int | ib_smc_get_pkey_table (struct ib_device *ibdev, ib_local_mad_t local_mad, union ib_mad *mad) |
Get partition key table. More... | |
static int | ib_smc_get (struct ib_device *ibdev, ib_local_mad_t local_mad) |
Get Infiniband parameters using SMC. More... | |
int | ib_smc_init (struct ib_device *ibdev, ib_local_mad_t local_mad) |
Initialise Infiniband parameters using SMC. More... | |
int | ib_smc_update (struct ib_device *ibdev, ib_local_mad_t local_mad) |
Update Infiniband parameters using SMC. More... | |
Infiniband Subnet Management Client.
Definition in file ib_smc.c.
FILE_LICENCE | ( | GPL2_OR_LATER_OR_UBDL | ) |
|
static |
Issue local MAD.
ibdev | Infiniband device |
attr_id | Attribute ID, in network byte order |
attr_mod | Attribute modifier, in network byte order |
local_mad | Method for issuing local MADs |
mad | Management datagram to fill in |
rc | Return status code |
Definition at line 52 of file ib_smc.c.
References attr_id, ib_mad_hdr::attr_id, attr_mod, ib_mad_hdr::attr_mod, ib_mad_hdr::base_version, ib_mad_hdr::class_version, ib_mad::hdr, IB_MGMT_BASE_VERSION, IB_MGMT_CLASS_SUBN_LID_ROUTED, IB_MGMT_METHOD_GET, mad, memset(), ib_mad_hdr::method, ib_mad_hdr::mgmt_class, and rc.
Referenced by ib_smc_get_guid_info(), ib_smc_get_node_info(), ib_smc_get_pkey_table(), and ib_smc_get_port_info().
|
static |
Get node information.
ibdev | Infiniband device |
local_mad | Method for issuing local MADs |
mad | Management datagram to fill in |
rc | Return status code |
Definition at line 81 of file ib_smc.c.
References DBGC, htons, ib_smc_mad(), IB_SMP_ATTR_NODE_INFO, mad, ib_device::name, rc, and strerror().
Referenced by ib_smc_get().
|
static |
Get port information.
ibdev | Infiniband device |
local_mad | Method for issuing local MADs |
mad | Management datagram to fill in |
rc | Return status code |
Definition at line 104 of file ib_smc.c.
References DBGC, htonl, htons, ib_smc_mad(), IB_SMP_ATTR_PORT_INFO, mad, ib_device::name, ib_device::port, rc, and strerror().
Referenced by ib_smc_get().
|
static |
Get GUID information.
ibdev | Infiniband device |
local_mad | Method for issuing local MADs |
mad | Management datagram to fill in |
rc | Return status code |
Definition at line 127 of file ib_smc.c.
References DBGC, htons, ib_smc_mad(), IB_SMP_ATTR_GUID_INFO, mad, ib_device::name, rc, and strerror().
Referenced by ib_smc_get().
|
static |
Get partition key table.
ibdev | Infiniband device |
local_mad | Method for issuing local MADs |
mad | Management datagram to fill in |
rc | Return status code |
Definition at line 150 of file ib_smc.c.
References DBGC, htons, ib_smc_mad(), IB_SMP_ATTR_PKEY_TABLE, mad, ib_device::name, rc, and strerror().
Referenced by ib_smc_get().
|
static |
Get Infiniband parameters using SMC.
ibdev | Infiniband device |
local_mad | Method for issuing local MADs |
rc | Return status code |
Definition at line 172 of file ib_smc.c.
References DBGC, ib_device::gid, ib_port_info::gid_prefix, ib_gid::guid, ib_guid_info::guid, ib_smp_data::guid_info, guid_info, IB_GID_ARGS, IB_GID_FMT, ib_smc_get_guid_info(), ib_smc_get_node_info(), ib_smc_get_pkey_table(), ib_smc_get_port_info(), ib_port_info::lid, ib_device::lid, ib_device::link_speed_active, ib_port_info::link_speed_active__link_speed_enabled, ib_device::link_speed_enabled, ib_device::link_speed_supported, ib_port_info::link_speed_supported__port_state, ib_port_info::link_width_active, ib_device::link_width_active, ib_port_info::link_width_enabled, ib_device::link_width_enabled, ib_port_info::link_width_supported, ib_device::link_width_supported, mad, ib_port_info::mastersm_lid, memcpy(), ib_device::name, ib_port_info::neighbour_mtu__mastersm_sl, ib_node_info::node_guid, ib_device::node_guid, ib_smp_data::node_info, node_info, ntohs, ib_pkey_table::pkey, ib_device::pkey, ib_smp_data::pkey_table, pkey_table, ib_smp_data::port_info, port_info, ib_device::port_state, ib_gid::prefix, rc, ib_gid::s, ib_device::sm_lid, ib_device::sm_sl, ib_mad::smp, and ib_mad_smp::smp_data.
Referenced by ib_smc_init(), and ib_smc_update().
int ib_smc_init | ( | struct ib_device * | ibdev, |
ib_local_mad_t | local_mad | ||
) |
Initialise Infiniband parameters using SMC.
ibdev | Infiniband device |
local_mad | Method for issuing local MADs |
rc | Return status code |
Definition at line 232 of file ib_smc.c.
References ib_smc_get(), and rc.
Referenced by arbel_probe(), and hermon_register_ibdev().
int ib_smc_update | ( | struct ib_device * | ibdev, |
ib_local_mad_t | local_mad | ||
) |
Update Infiniband parameters using SMC.
ibdev | Infiniband device |
local_mad | Method for issuing local MADs |
rc | Return status code |
Definition at line 249 of file ib_smc.c.
References ib_link_state_changed(), ib_smc_get(), and rc.
Referenced by arbel_event_port_state_change(), arbel_ib_open(), arbel_inform_sma(), arbel_poll_eq(), hermon_event_port_mgmnt_change(), hermon_ib_open(), hermon_inform_sma(), hermon_poll_eq(), and hermon_state_change_ibdev().