Skip to content

Commit

Permalink
prov/efa: Move raw addr functions
Browse files Browse the repository at this point in the history
Move efa_rdm_ep_raw_addr_str, efa_rdm_ep_get_peer_raw_addr,
efa_rdm_ep_get_peer_raw_addr_str to base_ep.h so they can be used
by efa-raw.

Signed-off-by: Jessie Yang <jiaxiyan@amazon.com>
  • Loading branch information
jiaxiyan authored and shijin-aws committed Jan 7, 2025
1 parent 52a023f commit f3f3f0a
Show file tree
Hide file tree
Showing 7 changed files with 54 additions and 53 deletions.
38 changes: 38 additions & 0 deletions prov/efa/src/efa_base_ep.c
Original file line number Diff line number Diff line change
Expand Up @@ -472,3 +472,41 @@ void efa_base_ep_write_eq_error(struct efa_base_ep *ep, ssize_t err, ssize_t pro
prov_errno, efa_strerror(prov_errno));
abort();
}

const char *efa_base_ep_raw_addr_str(struct efa_base_ep *base_ep, char *buf, size_t *buflen)
{
return ofi_straddr(buf, buflen, FI_ADDR_EFA, &base_ep->src_addr);
}

/**
* @brief return peer's raw address in #efa_ep_addr
*
* @param[in] ep end point
* @param[in] addr libfabric address
* @returns
* If peer exists, return peer's raw addrress as pointer to #efa_ep_addr;
* Otherwise, return NULL
*/
struct efa_ep_addr *efa_base_ep_get_peer_raw_addr(struct efa_base_ep *base_ep, fi_addr_t addr)
{
struct efa_av *efa_av;
struct efa_conn *efa_conn;

efa_av = base_ep->av;
efa_conn = efa_av_addr_to_conn(efa_av, addr);
return efa_conn ? efa_conn->ep_addr : NULL;
}

/**
* @brief return peer's raw address in a readable string
*
* @param[in] base_ep end point
* @param[in] addr libfabric address
* @param[out] buf a buffer to be used to store string
* @param[in,out] buflen length of `buf` as input. length of the string as output.
* @return a string with peer's raw address
*/
const char *efa_base_ep_get_peer_raw_addr_str(struct efa_base_ep *base_ep, fi_addr_t addr, char *buf, size_t *buflen)
{
return ofi_straddr(buf, buflen, FI_ADDR_EFA, efa_base_ep_get_peer_raw_addr(base_ep, addr));
}
9 changes: 9 additions & 0 deletions prov/efa/src/efa_base_ep.h
Original file line number Diff line number Diff line change
Expand Up @@ -99,4 +99,13 @@ void efa_base_ep_write_eq_error(struct efa_base_ep *ep,
ssize_t err,
ssize_t prov_errno);

const char *efa_base_ep_raw_addr_str(struct efa_base_ep *base_ep, char *buf,
size_t *buflen);

struct efa_ep_addr *efa_base_ep_get_peer_raw_addr(struct efa_base_ep *base_ep,
fi_addr_t addr);

const char *efa_base_ep_get_peer_raw_addr_str(struct efa_base_ep *base_ep,
fi_addr_t addr, char *buf,
size_t *buflen);
#endif
6 changes: 0 additions & 6 deletions prov/efa/src/rdm/efa_rdm_ep.h
Original file line number Diff line number Diff line change
Expand Up @@ -203,12 +203,6 @@ int efa_rdm_ep_flush_queued_blocking_copy_to_hmem(struct efa_rdm_ep *ep);

struct efa_ep_addr *efa_rdm_ep_raw_addr(struct efa_rdm_ep *ep);

const char *efa_rdm_ep_raw_addr_str(struct efa_rdm_ep *ep, char *buf, size_t *buflen);

struct efa_ep_addr *efa_rdm_ep_get_peer_raw_addr(struct efa_rdm_ep *ep, fi_addr_t addr);

const char *efa_rdm_ep_get_peer_raw_addr_str(struct efa_rdm_ep *ep, fi_addr_t addr, char *buf, size_t *buflen);

struct efa_rdm_peer *efa_rdm_ep_get_peer(struct efa_rdm_ep *ep, fi_addr_t addr);

int32_t efa_rdm_ep_get_peer_ahn(struct efa_rdm_ep *ep, fi_addr_t addr);
Expand Down
2 changes: 1 addition & 1 deletion prov/efa/src/rdm/efa_rdm_ep_fiops.c
Original file line number Diff line number Diff line change
Expand Up @@ -1344,7 +1344,7 @@ static int efa_rdm_ep_ctrl(struct fid *fid, int command, void *arg)
efa_rdm_ep_set_extra_info(ep);

ep_addr_strlen = sizeof(ep_addr_str);
efa_rdm_ep_raw_addr_str(ep, ep_addr_str, &ep_addr_strlen);
efa_base_ep_raw_addr_str(&ep->base_ep, ep_addr_str, &ep_addr_strlen);
EFA_INFO(FI_LOG_EP_CTRL, "libfabric %s efa endpoint created! address: %s\n",
fi_tostr("1", FI_TYPE_VERSION), ep_addr_str);

Expand Down
40 changes: 0 additions & 40 deletions prov/efa/src/rdm/efa_rdm_ep_utils.c
Original file line number Diff line number Diff line change
Expand Up @@ -25,31 +25,6 @@ struct efa_ep_addr *efa_rdm_ep_raw_addr(struct efa_rdm_ep *ep)
return &ep->base_ep.src_addr;
}

const char *efa_rdm_ep_raw_addr_str(struct efa_rdm_ep *ep, char *buf, size_t *buflen)
{
return ofi_straddr(buf, buflen, FI_ADDR_EFA, efa_rdm_ep_raw_addr(ep));
}

/**
* @brief return peer's raw address in #efa_ep_addr
*
* @param[in] ep end point
* @param[in] addr libfabric address
* @returns
* If peer exists, return peer's raw addrress as pointer to #efa_ep_addr;
* Otherwise, return NULL
* @relates efa_rdm_peer
*/
struct efa_ep_addr *efa_rdm_ep_get_peer_raw_addr(struct efa_rdm_ep *ep, fi_addr_t addr)
{
struct efa_av *efa_av;
struct efa_conn *efa_conn;

efa_av = ep->base_ep.av;
efa_conn = efa_av_addr_to_conn(efa_av, addr);
return efa_conn ? efa_conn->ep_addr : NULL;
}

/**
* @brief return peer's ahn
*
Expand All @@ -69,21 +44,6 @@ int32_t efa_rdm_ep_get_peer_ahn(struct efa_rdm_ep *ep, fi_addr_t addr)
return efa_conn ? efa_conn->ah->ahn : -1;
}

/**
* @brief return peer's raw address in a reable string
*
* @param[in] ep end point
* @param[in] addr libfabric address
* @param[out] buf a buffer tat to be used to store string
* @param[in,out] buflen length of `buf` as input. length of the string as output.
* @relates efa_rdm_peer
* @return a string with peer's raw address
*/
const char *efa_rdm_ep_get_peer_raw_addr_str(struct efa_rdm_ep *ep, fi_addr_t addr, char *buf, size_t *buflen)
{
return ofi_straddr(buf, buflen, FI_ADDR_EFA, efa_rdm_ep_get_peer_raw_addr(ep, addr));
}

/**
* @brief get pointer to efa_rdm_peer structure for a given libfabric address
*
Expand Down
8 changes: 4 additions & 4 deletions prov/efa/src/rdm/efa_rdm_pke_cmd.c
Original file line number Diff line number Diff line change
Expand Up @@ -453,9 +453,9 @@ void efa_rdm_pke_handle_tx_error(struct efa_rdm_pke *pkt_entry, int prov_errno)
memset(&ep_addr_str, 0, sizeof(ep_addr_str));
memset(&peer_addr_str, 0, sizeof(peer_addr_str));
buflen = sizeof(ep_addr_str);
efa_rdm_ep_raw_addr_str(ep, ep_addr_str, &buflen);
efa_base_ep_raw_addr_str(&ep->base_ep, ep_addr_str, &buflen);
buflen = sizeof(peer_addr_str);
efa_rdm_ep_get_peer_raw_addr_str(ep, pkt_entry->addr, peer_addr_str, &buflen);
efa_base_ep_get_peer_raw_addr_str(&ep->base_ep, pkt_entry->addr, peer_addr_str, &buflen);
EFA_WARN(FI_LOG_CQ,
"While sending a handshake packet, an error occurred."
" Our address: %s, peer address: %s\n",
Expand Down Expand Up @@ -712,7 +712,7 @@ void efa_rdm_pke_handle_rx_error(struct efa_rdm_pke *pkt_entry, int prov_errno)

memset(&ep_addr_str, 0, sizeof(ep_addr_str));
buflen = sizeof(ep_addr_str);
efa_rdm_ep_raw_addr_str(ep, ep_addr_str, &buflen);
efa_base_ep_raw_addr_str(&ep->base_ep, ep_addr_str, &buflen);
EFA_WARN(FI_LOG_CQ,
"Packet receive error from non TX/RX packet. Our address: %s\n",
ep_addr_str);
Expand Down Expand Up @@ -751,7 +751,7 @@ fi_addr_t efa_rdm_pke_insert_addr(struct efa_rdm_pke *pkt_entry, void *raw_addr)
char self_raw_addr_str[OFI_ADDRSTRLEN];
size_t buflen = OFI_ADDRSTRLEN;

efa_rdm_ep_raw_addr_str(ep, self_raw_addr_str, &buflen);
efa_base_ep_raw_addr_str(&ep->base_ep, self_raw_addr_str, &buflen);
EFA_WARN(FI_LOG_CQ,
"Host %s received a packet with invalid protocol version %d.\n"
"This host can only support protocol version %d and above.\n",
Expand Down
4 changes: 2 additions & 2 deletions prov/efa/src/rdm/efa_rdm_util.c
Original file line number Diff line number Diff line change
Expand Up @@ -118,9 +118,9 @@ int efa_rdm_construct_msg_with_local_and_peer_information(struct efa_rdm_ep *ep,
struct efa_rdm_peer *peer = efa_rdm_ep_get_peer(ep, addr);

len = sizeof(ep_addr_str);
efa_rdm_ep_raw_addr_str(ep, ep_addr_str, &len);
efa_base_ep_raw_addr_str(&ep->base_ep, ep_addr_str, &len);
len = sizeof(peer_addr_str);
efa_rdm_ep_get_peer_raw_addr_str(ep, addr, peer_addr_str, &len);
efa_base_ep_get_peer_raw_addr_str(&ep->base_ep, addr, peer_addr_str, &len);

if (!ep->host_id || EFA_HOST_ID_STRING_LENGTH != snprintf(local_host_id_str, EFA_HOST_ID_STRING_LENGTH + 1, "i-%017lx", ep->host_id)) {
strcpy(local_host_id_str, "N/A");
Expand Down

0 comments on commit f3f3f0a

Please sign in to comment.