[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <tkrat.6cd13266811f2f6d@s5r6.in-berlin.de>
Date: Mon, 2 Apr 2007 02:18:13 +0200 (CEST)
From: Stefan Richter <stefanr@...6.in-berlin.de>
To: linux1394-devel@...ts.sourceforge.net
cc: netdev@...r.kernel.org
Subject: [PATCH linux1394-2.6.git 07/15] ieee1394: eth1394: make MTU
configurable
Signed-off-by: Stefan Richter <stefanr@...6.in-berlin.de>
---
drivers/ieee1394/eth1394.c | 20 ++++++++++++++------
1 file changed, 14 insertions(+), 6 deletions(-)
Index: linux/drivers/ieee1394/eth1394.c
===================================================================
--- linux.orig/drivers/ieee1394/eth1394.c
+++ linux/drivers/ieee1394/eth1394.c
@@ -136,9 +136,6 @@ static const int hdr_type_len[] = {
sizeof(struct eth1394_sf_hdr)
};
-/* For now, this needs to be 1500, so that XP works with us */
-#define ETH1394_DATA_LEN ETH_DATA_LEN
-
static const u16 eth1394_speedto_maxpayload[] = {
/* S100, S200, S400, S800, S1600, S3200 */
512, 1024, 2048, 4096, 4096, 4096
@@ -158,8 +155,19 @@ static int max_partial_datagrams = 25;
module_param(max_partial_datagrams, int, S_IRUGO | S_IWUSR);
MODULE_PARM_DESC(max_partial_datagrams,
"Maximum number of partially received fragmented datagrams "
- "(default = 25).");
+ "(default = 25)");
+/*
+ * RFC 2734 says: "IP-capable nodes may operate with an MTU size larger than
+ * the default [1500 octets], but the means by which a larger MTU is configured
+ * are beyond the scope of this document."
+ *
+ * Leave it at the default 1500 for interoperability.
+ * Raise it for performance tuning.
+ */
+static int eth1394_data_len = 1500;
+module_param_named(mtu, eth1394_data_len, int, S_IRUGO | S_IWUSR);
+MODULE_PARM_DESC(mtu, "MTU (default = 1500)");
static int ether1394_header(struct sk_buff *skb, struct net_device *dev,
unsigned short type, void *daddr, void *saddr,
@@ -268,7 +276,7 @@ static int ether1394_change_mtu(struct n
((struct eth1394_priv *)netdev_priv(dev))->host->csr.max_rec;
if (new_mtu < 68 ||
- new_mtu > ETH1394_DATA_LEN ||
+ new_mtu > eth1394_data_len ||
new_mtu > (1 << (max_rec + 1)) - sizeof(union eth1394_hdr) -
ETHER1394_GASP_OVERHEAD)
return -EINVAL;
@@ -480,7 +488,7 @@ static void ether1394_reset_priv(struct
if (set_mtu) {
int max_payload = 1 << (host->csr.max_rec + 1);
- dev->mtu = min(ETH1394_DATA_LEN,
+ dev->mtu = min(eth1394_data_len,
(int)(max_payload - sizeof(union eth1394_hdr) -
ETHER1394_GASP_OVERHEAD));
--
Stefan Richter
-=====-=-=== -=-- ---=-
http://arcgraph.de/sr/
-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists