On Wed, Jul 30, 2014 at 12:33:21PM +0000, Chad Dupuis wrote:
> Hi Folks,
> 
> The current implementation of fcoe-utils is highly dependent on netlink
> sockets created on network interfaces for receiving netlink events and fc
> events. We have a new multi PCI function hardware architecture which may
> not expose L2 interface for storage enabled PCI functions. Due to this
> network socket dependency we will not be able to use current
> implementation of fcoe-utils. What we would like to do is add two library
> functions to libfcoe to be able to initiate a FIP VLAN request and parse
> the results to inform the LLD of the VLAN via a callback.
> 
> More specifically, we would like to add a new exported function to
> libfcoe, fcoe_send_vlan_req() which would form the FIP frame and send it
> to the LLD using the fcoe_ctlr->send() callback. Then in fcoe_ctlr_recv(),
> we would add an additional check for the op FIP_OP_VLAN. If this check is
> true we would call another new function, fcoe_process_vlan_resp(), where
> we would extract the VLAN ID. We would also like to add a function
> callback to the fcoe_ctlr struct, update_vlan(uint16_t vlan), which a LLD
> could add a handler for to get notification of the VLAN from the FIP VLAN
> request. Moving this functionality into libfcoe would enable other low
> level drivers to take advantage of this functionality as well.
> 
> Note that the implementation of fcoe_send_vlan_req() would be based on
> fnic_fcoe_send_vlan_req() and fcoe_process_vlan_resp() would be based on
> fnic_fcoe_process_vlan_resp().
> 
> We wanted to get community feedback on this before heading in this
> direction.
> 
This seems a bit...insufficient in my mind, unless I'm missing something.  FCoE
being Fibre Channel over Ethernet somewhat by definition presupposes the
existance of an ethernet interface, and therefore the ability to interface to
that ethernet interface.  While what you have above seems like it could be used
to handle the data path for FCoE, it seems to ignore the other configuration
and control aspects of FCoE (how is lldpad/fcoemon in user space meant to 
understand the
interface dcb state without a network interface to connect to, for instance).

To play devils advocate a bit, it seems like your hardware could eaily implement
a dummy net_device interface (see dummy.c for an example), that
created/registered a network interface, and did the datapath translation from
the net_device api to whatever interface the PCI storage function presented.

Reegards
Neil

> Thanks,
> Chad
> 
> _______________________________________________
> fcoe-devel mailing list
> [email protected]
> http://lists.open-fcoe.org/mailman/listinfo/fcoe-devel
> 
_______________________________________________
fcoe-devel mailing list
[email protected]
http://lists.open-fcoe.org/mailman/listinfo/fcoe-devel

Reply via email to