~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/net/smc/smc_pnet.h

Version: ~ [ linux-6.12-rc7 ] ~ [ linux-6.11.7 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.60 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.116 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.171 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.229 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.285 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.323 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.12 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

  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
 71 

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php