netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Yi Zou <yi.zou@intel.com>
To: linux-scsi@vger.kernel.org, netdev@vger.kernel.org
Subject: [PATCH 3/7] fcoe: check offload features from LLD through netdev
Date: Thu, 19 Feb 2009 12:49:57 -0700	[thread overview]
Message-ID: <20090219194957.22270.6428.stgit.yi.zou@intel.com> (raw)
In-Reply-To: <20090219194734.22270.8445.stgit@zychengdu.jf.intel.com>

This checkes if net_devices supports net_fcoe_ops, if it does, then sets up
the corresponding flags in the associated fc_lport.

Note that large sequence offload is already supported in the current
libfc/fcoe, only thing needed is to tell the corresponding fc_lport that LLD
is capabale of doing so by using fcoe_ops->features.

Signed-off-by: Yi Zou <yi.zou@intel.com>
---

 drivers/scsi/fcoe/fcoe_sw.c |   27 +++++++++++++++++++++++++++
 1 files changed, 27 insertions(+), 0 deletions(-)

diff --git a/drivers/scsi/fcoe/fcoe_sw.c b/drivers/scsi/fcoe/fcoe_sw.c
index fe1bcaa..7632d7e 100644
--- a/drivers/scsi/fcoe/fcoe_sw.c
+++ b/drivers/scsi/fcoe/fcoe_sw.c
@@ -188,6 +188,33 @@ static int fcoe_sw_netdev_config(struct fc_lport *lp, struct net_device *netdev)
 	if (fc->real_dev->features & NETIF_F_SG)
 		lp->sg_supp = 1;
 
+	lp->crc_offload = 0;
+	lp->seq_offload = 0;
+	lp->lro_enabled = 0;
+	if (netdev->fcoe_ops) {
+		struct net_fcoe_ops *fops = netdev->fcoe_ops;
+
+		if (fops->features & NET_FCOE_CRC) {
+			lp->crc_offload = 1;
+			FCOE_DBG("%s supports FCoE FCCRC offload\n",
+				 netdev->name);
+		}
+
+		if (fops->features & NET_FCOE_LSO) {
+			lp->seq_offload = 1;
+			FCOE_DBG("%s supports FCoE large send offload\n",
+				 netdev->name);
+		}
+
+		if ((fops->features & NET_FCOE_LRO) &&
+		    (fops->lro_xid)) {
+			lp->lro_enabled = 1;
+			lp->lro_xid = fops->lro_xid;
+			FCOE_DBG("%s supports FCoE large receive offload "
+				 "with max read exchange id for ddp %d\n",
+				 netdev->name, lp->lro_xid);
+		}
+	}
 
 	skb_queue_head_init(&fc->fcoe_pending_queue);
 


  parent reply	other threads:[~2009-02-19 20:57 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <20090219194734.22270.8445.stgit@zychengdu.jf.intel.com>
2009-02-19 19:49 ` [PATCH 1/7] net: add ETH_P_FCOE for Fibre Channel over Ethernet (FCoE) Yi Zou
2009-02-19 19:49 ` [PATCH 2/7] net: add FCoE offload support through net_device Yi Zou
2009-02-19 21:24   ` Stephen Hemminger
2009-02-19 21:32     ` Zou, Yi
2009-02-20 23:21       ` Zou, Yi
2009-02-20 23:27         ` Stephen Hemminger
2009-02-19 19:49 ` Yi Zou [this message]
2009-02-19 19:50 ` [PATCH 4/7] libfc: add support of large receive offload by ddp in fc_fcp Yi Zou
2009-02-19 19:50 ` [PATCH 5/7] fcoe: add support to net_fcoe_ops in fcoe_sw Yi Zou
2009-02-19 19:50 ` [PATCH 6/7] fcoe: remove ETH_P_FCOE from fc_fcoe.h Yi Zou
2009-02-19 21:25   ` Stephen Hemminger
2009-02-19 21:49     ` Zou, Yi
2009-02-19 19:50 ` [PATCH 7/7] fcoe: fcoe fc crc offload indication by skb->ip_summed Yi Zou

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20090219194957.22270.6428.stgit.yi.zou@intel.com \
    --to=yi.zou@intel.com \
    --cc=linux-scsi@vger.kernel.org \
    --cc=netdev@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).