Hi All,

I've started work on the implementation of a proposal in T11 BB-6 to
support VN_port to VN_port (VN2VN) operation with FIP.  This is similar to
but way better than the current point-to-point operation.

There's info on this at
http://www.t11.org/ftp/t11/pub/fc/bb-6/10-019v2.pdf
http://www.t11.org/ftp/t11/pub/fc/bb-6/10-060v0.pdf

Note these aren't finalized and will change a bit before becoming
standard.  There are links to other proposals on the fcoe.com web site.

Anyway, the point of this post is to ask how we should select the
mode when creating an FCoE interface.

VN2VN allows an FCoE initiator to talk to a number of targets over
the ethernet target without any FCF or fabric infrastructure.

This could co-exist with a fabric as well, so we could have multiple lports
on the same VLAN (even without NPIV) with some of them talking to
various FCFs and one (at most) using VN2VN mode on that VLAN.

That could be implemented separately, but there's always a chance
when running VN2VN mode that a fabric's FCF could appear later, and
the proposal doesn't allow for switching from VN2VN mode to fabric
mode for an lport.  So, this is a long way of saying we need to have
a way of setting the mode (fabric or VN2VN) when we first create
the fcoe interface.

There are some other options we may want to set.  One is VN2VN, but
only allowing one neighbor (single point-to-point).

We may also want to set the world-wide names explicitly, rather than
letting them default to the ones generated from the MACs or gotten
from the NICs.  This would be necessary if handling multiple FCFs.

I see multiple ways to do this and wonder which ones would be acceptable:

1.  We could do separate Create and Enable operations, allowing parameters
to be set before the new instance is used.  Create would make the
instance but not start any network operations until Enable was set.
The parameters (mode, WWNs) would be writable attributes somewhere,
perhaps in /sys/class/fcoe_host?   This breaks compatibility with
the user utilities.

2.  We could pass extra parameters after the interface name when
writing /sys/module/fcoe/parameters/create.  For example,

# echo eth0 --mode vn2vn --wwpn 1000abcd12345678 > 
/sys/module/fcoe/parameters/create

Parsing could be simpler and less general than getopt, but you get
the idea, some set of name/value pairs after the interface name.
This maintains compatibility with existing user utilities.

3. Like 2 with simpler parsing could be as simple as:

        <nic> [<flags> [<wwpn> [<wwnn>]]]

Where flags could be single-letter flags for various modes and options
like:  f for fabric, m for vn2vn multipoint, p for vn2vn point-to-point, etc.
This would use less code in the kernel, and maintains compatibility.

4.  Other ideas?

        Thanks,
        Joe


_______________________________________________
devel mailing list
[email protected]
http://www.open-fcoe.org/mailman/listinfo/devel

Reply via email to