+int lustre_lnet_calc_service_id(__u64 *service_id)
+{
+ int rc = LUSTRE_CFG_RC_OUT_OF_MEM;
+ char val[LNET_MAX_STR_LEN];
+ int service_port = -1, l_errno = 0;
+
+ rc = read_sysfs_file(o2ib_modparam_path, "service", val,
+ 1, sizeof(val));
+ if (rc) {
+ l_errno = errno;
+ fprintf(stderr, "error:\n msg: \"cannot get service port: %s (%d)\"\n",
+ strerror(l_errno), -l_errno);
+ return rc;
+ } else {
+ service_port = atoi(val);
+ }
+
+ *service_id = htobe64(((__u64)RDMA_PS_TCP << 16) + service_port);
+
+ return LUSTRE_CFG_RC_NO_ERR;
+}
+