The new kfilnd driver doesn't exist upstream and looks like it
will be missing upstream for sometime. Make building the code
for this new LND optional which is needed for the native Linux
Lustre client.
Test-Parameters: trivial
Change-Id: Ib17f78b12ffed95e4198d4524f5ca44aab01c010
Signed-off-by: James Simmons <jsimmons@infradead.org>
Reviewed-on: https://review.whamcloud.com/c/fs/lustre-release/+/48518
Reviewed-by: Frank Sehr <fsehr@whamcloud.com>
Reviewed-by: Chris Horn <chris.horn@hpe.com>
Reviewed-by: Oleg Drokin <green@whamcloud.com>
Tested-by: jenkins <devops@whamcloud.com>
Tested-by: Maloo <maloo@whamcloud.com>
AC_MSG_ERROR(["$with_kfi/Module.symvers does not exist"])
])
],[])
AC_MSG_ERROR(["$with_kfi/Module.symvers does not exist"])
])
],[])
+AC_DEFINE(HAVE_KFILND, 1, [support kfabric LND])
AC_SUBST(KFICPPFLAGS)
AC_SUBST(KFILND)
AC_SUBST(EXTRA_SYMBOLS)
AC_SUBST(KFICPPFLAGS)
AC_SUBST(KFILND)
AC_SUBST(EXTRA_SYMBOLS)
return LUSTRE_CFG_RC_NO_ERR;
}
return LUSTRE_CFG_RC_NO_ERR;
}
static int
lustre_kfilnd_show_tun(struct cYAML *lndparams,
struct lnet_ioctl_config_kfilnd_tunables *lnd_cfg)
static int
lustre_kfilnd_show_tun(struct cYAML *lndparams,
struct lnet_ioctl_config_kfilnd_tunables *lnd_cfg)
return LUSTRE_CFG_RC_NO_ERR;
}
return LUSTRE_CFG_RC_NO_ERR;
}
int
lustre_net_show_tunables(struct cYAML *tunables,
int
lustre_net_show_tunables(struct cYAML *tunables,
else if (net_type == SOCKLND)
rc = lustre_socklnd_show_tun(lnd_tunables,
&lnd->lnd_tun_u.lnd_sock);
else if (net_type == SOCKLND)
rc = lustre_socklnd_show_tun(lnd_tunables,
&lnd->lnd_tun_u.lnd_sock);
else if (net_type == KFILND)
rc = lustre_kfilnd_show_tun(lnd_tunables,
&lnd->lnd_tun_u.lnd_kfi);
else if (net_type == KFILND)
rc = lustre_kfilnd_show_tun(lnd_tunables,
&lnd->lnd_tun_u.lnd_kfi);
static void
yaml_extract_kfi_tun(struct cYAML *tree,
struct lnet_ioctl_config_kfilnd_tunables *lnd_cfg)
static void
yaml_extract_kfi_tun(struct cYAML *tree,
struct lnet_ioctl_config_kfilnd_tunables *lnd_cfg)
lnd_cfg->lnd_auth_key =
(auth_key) ? auth_key->cy_valueint : 0;
}
lnd_cfg->lnd_auth_key =
(auth_key) ? auth_key->cy_valueint : 0;
}
static void
yaml_extract_sock_tun(struct cYAML *tree,
static void
yaml_extract_sock_tun(struct cYAML *tree,
else if (net_type == SOCKLND)
yaml_extract_sock_tun(tree,
&tun->lnd_tun_u.lnd_sock);
else if (net_type == SOCKLND)
yaml_extract_sock_tun(tree,
&tun->lnd_tun_u.lnd_sock);
else if (net_type == KFILND)
yaml_extract_kfi_tun(tree,
&tun->lnd_tun_u.lnd_kfi);
else if (net_type == KFILND)
yaml_extract_kfi_tun(tree,
&tun->lnd_tun_u.lnd_kfi);
if (auth_key > 0 && LNET_NETTYP(nw_descr.nw_id) == KFILND) {
tunables.lt_tun.lnd_tun_u.lnd_kfi.lnd_auth_key = auth_key;
found = true;
}
if (auth_key > 0 && LNET_NETTYP(nw_descr.nw_id) == KFILND) {
tunables.lt_tun.lnd_tun_u.lnd_kfi.lnd_auth_key = auth_key;
found = true;
}
if (pto >= 0 || pc > 0 || pbc > 0 || cre > 0 || cpp > -1) {
tunables.lt_cmn.lct_peer_timeout = pto;
tunables.lt_cmn.lct_peer_tx_credits = pc;
if (pto >= 0 || pc > 0 || pbc > 0 || cre > 0 || cpp > -1) {
tunables.lt_cmn.lct_peer_timeout = pto;
tunables.lt_cmn.lct_peer_tx_credits = pc;