- if (class_find_param(ldd->ldd_params,
- PARAM_NETWORK, NULL) == 0 &&
- !class_match_net(ldd->ldd_params, id.nid)) {
- /* can't match specified network */
+ /* server use --servicenode param, only allow specified
+ * nids be registered */
+ if ((ldd->ldd_flags & LDD_F_NO_PRIMNODE) != 0 &&
+ class_match_nid(ldd->ldd_params,
+ PARAM_FAILNODE, id.nid) < 1)
+ continue;
+
+ /* match specified network */
+ if (!class_match_net(ldd->ldd_params,
+ PARAM_NETWORK, LNET_NIDNET(id.nid)))