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
