Viewing: kfilnd_peer.h

/* SPDX-License-Identifier: GPL-2.0 */

/*
 * Copyright 2022 Hewlett Packard Enterprise Development LP
 */

/*
 * This file is part of Lustre, http://www.lustre.org/
 *
 * kfilnd peer interface.
 */

#ifndef _KFILND_PEER_
#define _KFILND_PEER_

#include "kfilnd.h"

/* Time limit we can go without hearing from a peer before
 * removing it from the cache. Default: 5x LND timeouts.
 */
#define KP_PURGE_LIMIT (kfilnd_timeout() * 5)

void kfilnd_peer_put(struct kfilnd_peer *kp);
struct kfilnd_peer *kfilnd_peer_get(struct kfilnd_dev *dev, lnet_nid_t nid);
void kfilnd_peer_alive(struct kfilnd_peer *kp);
void kfilnd_peer_destroy(struct kfilnd_dev *dev);
void kfilnd_peer_init(struct kfilnd_dev *dev);
kfi_addr_t kfilnd_peer_get_kfi_addr(struct kfilnd_peer *kp);
u16 kfilnd_peer_target_rx_base(struct kfilnd_peer *kp);
void kfilnd_peer_process_hello(struct kfilnd_peer *kp, struct kfilnd_msg *msg);
void kfilnd_peer_tn_failed(struct kfilnd_peer *kp, int error, bool delete);

#endif /* _KFILND_PEER_ */