On 06/13/13 19:50, Vu Pham wrote:
Hello Bart,
+/**
+ * srp_conn_unique() - check whether the connection to a target is
unique
+ */
+static bool srp_conn_unique(struct srp_host *host,
+ struct srp_target_port *target)
+{
+ struct srp_target_port *t;
+ bool ret = false;
+
+ if (target->state == SRP_TARGET_REMOVED)
+ goto out;
+
+ ret = true;
+
+ spin_lock(&host->target_lock);
+ list_for_each_entry(t, &host->target_list, list) {
+ if (t != target &&
+ target->id_ext == t->id_ext &&
Targets may advertise/expose on different pkeys
You can have multiple connections (or paths/scsi hosts) to same target
with different pkeys.
We need extra check to detect the uniqueness:
target->path.pkey ==
t->path.pkey &&
Hello Vu,
Thanks for the feedback. This is something I have already thinking about
myself. Unfortunately I have not found any requirements in the T10 SRP
standard with regard to InfiniBand partitions. However, in that document
there is a section about single RDMA channel operation. In that section
it is explained that an SRP target must log out established sessions
upon receipt of a new login request. What I'm not sure about is whether
only sessions with the same P_Key must be logged out or all established
sessions if a new login request is received. I assume the latter since
otherwise that would mean that an SRP target would be required to
maintain multiple sessions if it allows connections with more than one
P_Key to a target port ? My concern about adding a pkey comparison in
the function srp_conn_unique() is that if a target allows an initiator
to choose which partition to use when logging in, that this could result
in the undesired SRP initiator ping-pong effect this patch tries to avoid.
Bart.
--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html