* [RFC PATCH 1/2] net: add ndo_fcoe_ddp_target() to support FCoE DDP in target mode
2011-01-26 18:08 [RFC PATCH 0/2] Preparing NetDev and VLAN for FCoE targets (offload using DDP) Kiran Patil
@ 2011-01-26 18:09 ` Kiran Patil
2011-01-26 18:09 ` [RFC PATCH 2/2] vlan: add support to ndo_fcoe_ddp_target() Kiran Patil
1 sibling, 0 replies; 3+ messages in thread
From: Kiran Patil @ 2011-01-26 18:09 UTC (permalink / raw)
To: netdev, jeffrey.t.kirsher, yi.zou, robert.w.love, kiran.patil
From: Yi Zou <yi.zou@intel.com>
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>
---
include/linux/netdevice.h | 4 ++++
1 files changed, 4 insertions(+), 0 deletions(-)
diff --git a/include/linux/netdevice.h b/include/linux/netdevice.h
index d8fd2c2..d96a198 100644
--- a/include/linux/netdevice.h
+++ b/include/linux/netdevice.h
@@ -774,6 +774,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,
^ permalink raw reply related [flat|nested] 3+ messages in thread* [RFC PATCH 2/2] vlan: add support to ndo_fcoe_ddp_target()
2011-01-26 18:08 [RFC PATCH 0/2] Preparing NetDev and VLAN for FCoE targets (offload using DDP) Kiran Patil
2011-01-26 18:09 ` [RFC PATCH 1/2] net: add ndo_fcoe_ddp_target() to support FCoE DDP in target mode Kiran Patil
@ 2011-01-26 18:09 ` Kiran Patil
1 sibling, 0 replies; 3+ messages in thread
From: Kiran Patil @ 2011-01-26 18:09 UTC (permalink / raw)
To: netdev, jeffrey.t.kirsher, yi.zou, robert.w.love, kiran.patil
From: Yi Zou <yi.zou@intel.com>
Add the new target ddp offload support ndo_fcoe_ddp_target().
Signed-off-by: Yi Zou <yi.zou@intel.com>
---
net/8021q/vlan_dev.c | 14 ++++++++++++++
1 files changed, 14 insertions(+), 0 deletions(-)
diff --git a/net/8021q/vlan_dev.c b/net/8021q/vlan_dev.c
index 14e3d1f..f6e1ace 100644
--- a/net/8021q/vlan_dev.c
+++ b/net/8021q/vlan_dev.c
@@ -670,6 +670,19 @@ static int vlan_dev_fcoe_get_wwn(struct net_device *dev, u64 *wwn, int type)
rc = ops->ndo_fcoe_get_wwn(real_dev, wwn, type);
return rc;
}
+
+static int vlan_dev_fcoe_ddp_target(struct net_device *dev, u16 xid,
+ struct scatterlist *sgl, unsigned int sgc)
+{
+ struct net_device *real_dev = vlan_dev_info(dev)->real_dev;
+ const struct net_device_ops *ops = real_dev->netdev_ops;
+ int rc = 0;
+
+ if (ops->ndo_fcoe_ddp_target)
+ rc = ops->ndo_fcoe_ddp_target(real_dev, xid, sgl, sgc);
+
+ return rc;
+}
#endif
static void vlan_dev_change_rx_flags(struct net_device *dev, int change)
@@ -905,6 +918,7 @@ static const struct net_device_ops vlan_netdev_ops = {
.ndo_fcoe_enable = vlan_dev_fcoe_enable,
.ndo_fcoe_disable = vlan_dev_fcoe_disable,
.ndo_fcoe_get_wwn = vlan_dev_fcoe_get_wwn,
+ .ndo_fcoe_ddp_target = vlan_dev_fcoe_ddp_target,
#endif
};
^ permalink raw reply related [flat|nested] 3+ messages in thread