hc
2024-09-20 cf4ce59b3b70238352c7f1729f0f7223214828ad
kernel/net/smc/smc_pnet.h
....@@ -12,12 +12,37 @@
1212 #ifndef _SMC_PNET_H
1313 #define _SMC_PNET_H
1414
15
+#include <net/smc.h>
16
+
1517 #if IS_ENABLED(CONFIG_HAVE_PNETID)
1618 #include <asm/pnet.h>
1719 #endif
1820
1921 struct smc_ib_device;
2022 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
+};
2146
2247 static inline int smc_pnetid_by_dev_port(struct device *dev,
2348 unsigned short port, u8 *pnetid)
....@@ -30,11 +55,16 @@
3055 }
3156
3257 int smc_pnet_init(void) __init;
58
+int smc_pnet_net_init(struct net *net);
3359 void smc_pnet_exit(void);
34
-int smc_pnet_remove_by_ibdev(struct smc_ib_device *ibdev);
35
-void smc_pnet_find_roce_resource(struct sock *sk,
36
- struct smc_ib_device **smcibdev, u8 *ibport,
37
- unsigned short vlan_id, u8 gid[]);
38
-void smc_pnet_find_ism_resource(struct sock *sk, struct smcd_dev **smcismdev);
39
-
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);
4070 #endif