diff options
author | 2025-03-08 22:04:20 +0800 | |
---|---|---|
committer | 2025-03-08 22:04:20 +0800 | |
commit | a07bb8fd1299070229f0e8f3dcb57ffd5ef9870a (patch) | |
tree | 84f21bd0bf7071bc5fc7dd989e77d7ceb5476682 /net/smc/smc_pnet.h | |
download | ohosKernel-a07bb8fd1299070229f0e8f3dcb57ffd5ef9870a.tar.gz ohosKernel-a07bb8fd1299070229f0e8f3dcb57ffd5ef9870a.zip |
Initial commit: OpenHarmony-v4.0-ReleaseOpenHarmony-v4.0-Release
Diffstat (limited to 'net/smc/smc_pnet.h')
-rw-r--r-- | net/smc/smc_pnet.h | 70 |
1 files changed, 70 insertions, 0 deletions
diff --git a/net/smc/smc_pnet.h b/net/smc/smc_pnet.h new file mode 100644 index 000000000..80a88eea4 --- /dev/null +++ b/net/smc/smc_pnet.h | |||
@@ -0,0 +1,70 @@ | |||
1 | /* SPDX-License-Identifier: GPL-2.0 */ | ||
2 | /* | ||
3 | * Shared Memory Communications over RDMA (SMC-R) and RoCE | ||
4 | * | ||
5 | * PNET table queries | ||
6 | * | ||
7 | * Copyright IBM Corp. 2016 | ||
8 | * | ||
9 | * Author(s): Thomas Richter <tmricht@linux.vnet.ibm.com> | ||
10 | */ | ||
11 | |||
12 | #ifndef _SMC_PNET_H | ||
13 | #define _SMC_PNET_H | ||
14 | |||
15 | #include <net/smc.h> | ||
16 | |||
17 | #if IS_ENABLED(CONFIG_HAVE_PNETID) | ||
18 | #include <asm/pnet.h> | ||
19 | #endif | ||
20 | |||
21 | struct smc_ib_device; | ||
22 | struct smcd_dev; | ||
23 | struct smc_init_info; | ||
24 | struct smc_link_group; | ||
25 | |||
26 | /** | ||
27 | * struct smc_pnettable - SMC PNET table anchor | ||
28 | * @lock: Lock for list action | ||
29 | * @pnetlist: List of PNETIDs | ||
30 | */ | ||
31 | struct smc_pnettable { | ||
32 | struct mutex lock; | ||
33 | struct list_head pnetlist; | ||
34 | }; | ||
35 | |||
36 | struct smc_pnetids_ndev { /* list of pnetids for net devices in UP state*/ | ||
37 | struct list_head list; | ||
38 | rwlock_t lock; | ||
39 | }; | ||
40 | |||
41 | struct smc_pnetids_ndev_entry { | ||
42 | struct list_head list; | ||
43 | u8 pnetid[SMC_MAX_PNETID_LEN]; | ||
44 | refcount_t refcnt; | ||
45 | }; | ||
46 | |||
47 | static inline int smc_pnetid_by_dev_port(struct device *dev, | ||
48 | unsigned short port, u8 *pnetid) | ||
49 | { | ||
50 | #if IS_ENABLED(CONFIG_HAVE_PNETID) | ||
51 | return pnet_id_by_dev_port(dev, port, pnetid); | ||
52 | #else | ||
53 | return -ENOENT; | ||
54 | #endif | ||
55 | } | ||
56 | |||
57 | int smc_pnet_init(void) __init; | ||
58 | int smc_pnet_net_init(struct net *net); | ||
59 | void smc_pnet_exit(void); | ||
60 | void smc_pnet_net_exit(struct net *net); | ||
61 | void smc_pnet_find_roce_resource(struct sock *sk, struct smc_init_info *ini); | ||
62 | void smc_pnet_find_ism_resource(struct sock *sk, struct smc_init_info *ini); | ||
63 | int smc_pnetid_by_table_ib(struct smc_ib_device *smcibdev, u8 ib_port); | ||
64 | int smc_pnetid_by_table_smcd(struct smcd_dev *smcd); | ||
65 | void smc_pnet_find_alt_roce(struct smc_link_group *lgr, | ||
66 | struct smc_init_info *ini, | ||
67 | struct smc_ib_device *known_dev); | ||
68 | bool smc_pnet_is_ndev_pnetid(struct net *net, u8 *pnetid); | ||
69 | bool smc_pnet_is_pnetid_set(u8 *pnetid); | ||
70 | #endif | ||