iPXE
|
Fibre Channel name server lookups. More...
#include <stddef.h>
#include <stdlib.h>
#include <string.h>
#include <errno.h>
#include <byteswap.h>
#include <ipxe/interface.h>
#include <ipxe/iobuf.h>
#include <ipxe/process.h>
#include <ipxe/xfer.h>
#include <ipxe/fc.h>
#include <ipxe/fcns.h>
Go to the source code of this file.
Data Structures | |
struct | fc_ns_query |
A Fibre Channel name server query. More... | |
Functions | |
FILE_LICENCE (GPL2_OR_LATER_OR_UBDL) | |
static void | fc_ns_query_free (struct refcnt *refcnt) |
Free name server query. More... | |
static void | fc_ns_query_close (struct fc_ns_query *query, int rc) |
Close name server query. More... | |
static int | fc_ns_query_deliver (struct fc_ns_query *query, struct io_buffer *iobuf, struct xfer_metadata *meta __unused) |
Receive name server query response. More... | |
static void | fc_ns_query_step (struct fc_ns_query *query) |
Name server query process. More... | |
int | fc_ns_query (struct fc_peer *peer, struct fc_port *port, int(*done)(struct fc_peer *peer, struct fc_port *port, struct fc_port_id *peer_port_id)) |
Issue Fibre Channel name server query. More... | |
Variables | |
static struct interface_operation | fc_ns_query_xchg_op [] |
Name server exchange interface operations. More... | |
static struct interface_descriptor | fc_ns_query_xchg_desc |
Name server exchange interface descriptor. More... | |
static struct process_descriptor | fc_ns_query_process_desc |
Name server process descriptor. More... | |
Fibre Channel name server lookups.
Definition in file fcns.c.
FILE_LICENCE | ( | GPL2_OR_LATER_OR_UBDL | ) |
|
static |
Free name server query.
refcnt | Reference count |
Definition at line 74 of file fcns.c.
References container_of, fc_peer_put(), fc_port_put(), free, fc_ns_query::peer, and fc_ns_query::port.
Referenced by fc_ns_query().
|
static |
Close name server query.
query | Name server query |
rc | Reason for close |
Definition at line 89 of file fcns.c.
References intf_shutdown(), fc_ns_query::process, process_del(), rc, and fc_ns_query::xchg.
Referenced by fc_ns_query_deliver(), and fc_ns_query_step().
|
static |
Receive name server query response.
query | Name server query |
iobuf | I/O buffer |
meta | Data transfer metadata |
rc | Return status code |
Definition at line 106 of file fcns.c.
References fc_ct_header::code, fc_ns_response::ct, fc_ns_reject_response::ct, io_buffer::data, DBGC, fc_ns_query::done, done, EINVAL, ENOTSUP, fc_ct_header::explanation, FC_GS_ACCEPT, FC_GS_REJECT, fc_id_ntoa(), fc_ns_query_close(), fc_ntoa(), free_iob(), fc_ns_response::gid_pn, iob_len(), fc_port::name, ntohs, fc_ns_query::peer, fc_ns_query::port, fc_ns_port_id::port_id, fc_ns_gid_pn_response::port_id, fc_peer::port_wwn, rc, fc_ct_header::reason, and fc_ns_response::reject.
|
static |
Name server query process.
query | Name server query |
Definition at line 163 of file fcns.c.
References fc_ct_header::code, fc_ns_gid_pn_request::ct, DBGC, FC_CT_REVISION, FC_DS_SUBTYPE_NAME, fc_gs_port_id, FC_GS_TYPE_DS, FC_NS_GET, FC_NS_PORT_ID, FC_NS_PORT_NAME, fc_ns_query_close(), FC_TYPE_CT, fc_xchg_originate(), htons, memcpy(), memset(), meta(), fc_ns_query::peer, fc_ns_query::port, fc_ns_gid_pn_request::port_wwn, fc_peer::port_wwn, rc, fc_ct_header::revision, strerror(), fc_ct_header::subtype, fc_ct_header::type, fc_ns_query::xchg, xfer_deliver_raw_meta(), and XFER_FL_OVER.
int fc_ns_query | ( | struct fc_peer * | peer, |
struct fc_port * | port, | ||
int(*)(struct fc_peer *peer, struct fc_port *port, struct fc_port_id *peer_port_id) | done | ||
) |
Issue Fibre Channel name server query.
peer | Fibre Channel peer |
port | Fibre Channel port |
rc | Return status code |
Definition at line 222 of file fcns.c.
References DBGC, fc_ns_query::done, done, ENOMEM, fc_ns_query_free(), fc_ns_query_process_desc, fc_ns_query_xchg_desc, fc_ntoa(), fc_peer_get(), fc_port_get(), intf_init(), peer, fc_ns_query::peer, port, fc_ns_query::port, fc_peer::port_wwn, fc_ns_query::process, process_init(), ref_init, ref_put, fc_ns_query::refcnt, fc_ns_query::xchg, and zalloc().
|
static |
Name server exchange interface operations.
|
static |
Name server exchange interface descriptor.
Definition at line 208 of file fcns.c.
Referenced by fc_ns_query().
|
static |
Name server process descriptor.
Definition at line 212 of file fcns.c.
Referenced by fc_ns_query().