net: add ndo_fcoe_ddp_target() to support FCoE DDP in target mode
authorYi Zou <yi.zou@intel.com>
Tue, 1 Feb 2011 07:22:06 +0000 (07:22 +0000)
committerJeff Kirsher <jeffrey.t.kirsher@intel.com>
Tue, 8 Mar 2011 02:00:17 +0000 (18:00 -0800)
The Fiber Channel over Ethernet (FCoE) Direct Data Placement (DDP) can also be
used for FCoE target, where the DDP used for read I/O on an initiator can be
used on an FCoE target to speed up the write I/O to the target from the initiator.
The added ndo_fcoe_ddp_target() works in the similar way as the existing
ndo_fcoe_ddp_setup() to allow the underlying hardware set up the DDP context
accordingly when it gets called from the FCoE target implementation on top
the existing Open-FCoE fcoe/libfc protocol stack so without losing the ability
to provide DDP for read I/O as an initiator, it can also provide DDP offload
to the write I/O coming from the initiator as a target.

Signed-off-by: Yi Zou <yi.zou@intel.com>
Signed-off-by: Kiran Patil <kiran.patil@intel.com>
Tested-by: Kavindya Deegala <kavindya.s.deegala@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
include/linux/netdevice.h

index 71563e7b2bfba011ab62bc43b5cb90ac841263dd..6bd5d460b7c10845de0fcb6e5cbd0ce52b4c4755 100644 (file)
@@ -871,6 +871,10 @@ struct net_device_ops {
                                                      unsigned int sgc);
        int                     (*ndo_fcoe_ddp_done)(struct net_device *dev,
                                                     u16 xid);
+       int                     (*ndo_fcoe_ddp_target)(struct net_device *dev,
+                                                      u16 xid,
+                                                      struct scatterlist *sgl,
+                                                      unsigned int sgc);
 #define NETDEV_FCOE_WWNN 0
 #define NETDEV_FCOE_WWPN 1
        int                     (*ndo_fcoe_get_wwn)(struct net_device *dev,