> > 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 Yeah, these leftovers should be taken out, thx. yi ÿô.nÇ·®+%˱é¥wÿº{.nÇ·¥{±þÇø¡Ü}©²ÆzÚj:+v¨þø®w¥þàÞ¨è&¢)ß«a¶Úÿûz¹ÞúÝjÿwèf