On Wed, 2011-01-12 at 18:19 -0800, Yi Zou wrote: > Add the new fcoe_transport.c file that implements basic fcoe transport > interface. Eventually, the sysfs entries to create/destroy/enable/disable > an FCoE instance will be coming to the fcoe transport layer, who does a > look-up to find the corresponding transport provide and pass the corresponding > action over to the identified provider. > > The fcoe.ko will become the default fcoe transport provider that can support > FCoE on any given netdev interfaces, as the Open-FCoE.org's default software > FCoE HBA solution. Any vendor specific FCoE HBA driver that is built on top > of Open-FCoE's kernel stack of libfc & libfcoe as well as the user land tool > of fcoe-utils can easily plug-in and start running FCoE on their network > interfaces. The fcoe.ko will be converted to act as the default provider if > no vendor specific transport provider is found, as it is always added to the > very end of the list of attached transports. > > The lookup is based on the "drv_name" to fetch the fcoe_transport > structure. The pointers to netdev obtained from "if_name" and the > fcoe_transport structure are saved in 'fcoe_netdev_mapping' and added to the > 'fcoe_netdev' list. Subsequent destroy/disable/enable will lookup > fcoe_netdev_list using netdev as the key and obtain fcoe_transport structure, > and call ft->destroy, ft->disable and ft->enable. > > Signed-off-by: Yi Zou <yi.zou@xxxxxxxxx> > Signed-off-by: Bhanu Prakash Gollapudi <bprakash@xxxxxxxxxxxx> > --- > > drivers/scsi/fcoe/fcoe_transport.c | 540 ++++++++++++++++++++++++++++++++++++ > drivers/scsi/fcoe/libfcoe.h | 6 > 2 files changed, 546 insertions(+), 0 deletions(-) > create mode 100644 drivers/scsi/fcoe/fcoe_transport.c > > diff --git a/drivers/scsi/fcoe/fcoe_transport.c b/drivers/scsi/fcoe/fcoe_transport.c > new file mode 100644 > index 0000000..517c29b > --- /dev/null > +++ b/drivers/scsi/fcoe/fcoe_transport.c > @@ -0,0 +1,540 @@ > +#include <linux/types.h> > +#include <linux/module.h> > +#include <linux/kernel.h> > +#include <linux/list.h> > +#include <linux/spinlock.h> > +#include <linux/timer.h> > +#include <linux/netdevice.h> > +#include <linux/etherdevice.h> > +#include <linux/ethtool.h> > +#include <linux/if_ether.h> > +#include <linux/if_vlan.h> > +#include <linux/errno.h> > +#include <linux/bitops.h> > +#include <linux/slab.h> > +#include <net/rtnetlink.h> > + > +#include <scsi/fc/fc_els.h> > +#include <scsi/fc/fc_fs.h> > +#include <scsi/fc/fc_fip.h> > +#include <scsi/fc/fc_encaps.h> > +#include <scsi/fc/fc_fcoe.h> > +#include <scsi/fc/fc_fcp.h> > + > +#include <scsi/libfc.h> > +#include <scsi/libfcoe.h> > + > +#include "libfcoe.h" > + I'm going to remove the following unnecessary includes. #include <linux/list.h> -#include <linux/spinlock.h> -#include <linux/timer.h> #include <linux/netdevice.h> -#include <linux/etherdevice.h> -#include <linux/ethtool.h> -#include <linux/if_ether.h> -#include <linux/if_vlan.h> #include <linux/errno.h> -#include <linux/bitops.h> #include <linux/slab.h> -#include <net/rtnetlink.h> -#include <scsi/fc/fc_els.h> -#include <scsi/fc/fc_fs.h> -#include <scsi/fc/fc_fip.h> -#include <scsi/fc/fc_encaps.h> -#include <scsi/fc/fc_fcoe.h> -#include <scsi/fc/fc_fcp.h> - -#include <scsi/libfc.h> #include <scsi/libfcoe.h> //Rob -- To unsubscribe from this list: send the line "unsubscribe linux-scsi" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html