Jan Engelhardt | 1 Mar 01:41 2010
Picon

NFS mount attempts hangs with btrfs on server side

Greetings.

I am observing a case whereby NFS mounting seems to hang. A tcpdump 
trace reveals that it retries forever RPC and exchanging NFS messages 
without giving any warning or error message about what's wrong. There is 
no firewall active, and the NFSserver (.1) has the client (.101) 
unconditionally allowed.

It's a simple
mount -t nfs 192.168.100.1:/B/home/jengelh /home/jengelh -o tcp,intr,soft

/B is a btrfs volume. Mounting an ext4 volume over NFS instead completes 
in a splitsecond.

Attached is the pcap file (->wireshark pretty display for deciphering).

It seems pretty much independent of the Linux kernel used; I can 
reproduce this in both 2.6.33-rc8 as well as 2.6.31.12.
Attachment (nfsF.pcap.bz2): application/x-bzip, 8 KiB
Zhu Yi | 1 Mar 03:08 2010
Picon

Re: [PATCH V2] net: add accounting for socket backlog

On Fri, 2010-02-26 at 20:05 +0800, David Miller wrote:
> So remind me why TCP, or any other non-UDP protocol, won't
> intrinsically have this problem too?

If TCP ACKs are not received, the (closed) remote window prevents the
TCP sender to send more frames.

> It seems pretty trivial to do with any protocol, especially remotely,
> with a packet generator.  The code in TCP, for example, which queues
> to the backlog, doesn't care about sequence numbers or anything like
> that.
> 
> So you could spray a machine with the same TCP frame over and over
> again, as fast as possible, as long as it matches the socket identity.
> 
> And in this way fill up the backlog endlessly and OOM the system. 

Yeah, I only considered about the normal case, that is the TCP frames
are built and managed in the kernel. If a user does frame generation
himself, yes, the same problem could happen potentially for all
protocols using backlog.

Thanks,
-yi

--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo <at> vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

(Continue reading)

Herbert Xu | 1 Mar 03:08 2010
Picon
Picon

Re: [1/13] bridge: Add IGMP snooping support

On Sun, Feb 28, 2010 at 12:52:58AM -0800, David Miller wrote:
>
> bridge: Make IGMP snooping depend upon BRIDGE.
> 
> Signed-off-by: David S. Miller <davem <at> davemloft.net>

Thanks a lot!

I'll get onto the bridge-utils stuff now.

Cheers,
--

-- 
Visit Openswan at http://www.openswan.org/
Email: Herbert Xu ~{PmV>HI~} <herbert <at> gondor.apana.org.au>
Home Page: http://gondor.apana.org.au/~herbert/
PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo <at> vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

David Miller | 1 Mar 03:10 2010
Picon

Re: [PATCH V2] net: add accounting for socket backlog

From: Zhu Yi <yi.zhu <at> intel.com>
Date: Mon, 01 Mar 2010 10:08:48 +0800

> Yeah, I only considered about the normal case, that is the TCP frames
> are built and managed in the kernel.

You're not even considering the kernel case completely.  It's just as
easy to modify the kernel to maliciously send frames in this way.

> If a user does frame generation himself, yes, the same problem could
> happen potentially for all protocols using backlog.

We need the protection for every protocol, please implement your
changes this way.

Thanks.
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo <at> vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

sjur.brandeland | 1 Mar 03:09 2010

[PATCH net-next-2.6 v5 01/12] net-caif: add CAIF protocol definitions

From: Sjur Braendeland <sjur.brandeland <at> stericsson.com>

Add CAIF definitions to existing header files.
Files: if_arp.h, if_ether.h, socket.h.
Types: ARPHRD_CAIF, ETH_P_CAIF, AF_CAIF, PF_CAIF, SOL_CAIF, N_CAIF

Signed-off-by: Sjur Braendeland <sjur.brandeland <at> stericsson.com>
---
 include/linux/if_arp.h   |    1 +
 include/linux/if_ether.h |    1 +
 include/linux/socket.h   |    5 ++++-
 3 files changed, 6 insertions(+), 1 deletions(-)

diff --git a/include/linux/if_arp.h b/include/linux/if_arp.h
index e80b7f8..6d722f4 100644
--- a/include/linux/if_arp.h
+++ b/include/linux/if_arp.h
 <at>  <at>  -90,6 +90,7  <at>  <at> 

 #define ARPHRD_PHONET	820		/* PhoNet media type		*/
 #define ARPHRD_PHONET_PIPE 821		/* PhoNet pipe header		*/
+#define ARPHRD_CAIF	822		/* CAIF media type		*/

 #define ARPHRD_VOID	  0xFFFF	/* Void type, nothing is known */
 #define ARPHRD_NONE	  0xFFFE	/* zero header length */
diff --git a/include/linux/if_ether.h b/include/linux/if_ether.h
index 299b412..bed7a46 100644
--- a/include/linux/if_ether.h
+++ b/include/linux/if_ether.h
 <at>  <at>  -109,6 +109,7  <at>  <at> 
(Continue reading)

sjur.brandeland | 1 Mar 03:09 2010

[PATCH net-next-2.6 v5 04/12] net-caif: add CAIF Link layer device header files

From: Sjur Braendeland <sjur.brandeland <at> stericsson.com>

Header files for CAIF Link layer net-device,
and link-layer registration.

Signed-off-by: Sjur Braendeland <sjur.brandeland <at> stericsson.com>
---
 include/net/caif/caif_dev.h    |   91 ++++++++++++++++++++++++++++++++++++++++
 include/net/caif/caif_device.h |   57 +++++++++++++++++++++++++
 2 files changed, 148 insertions(+), 0 deletions(-)

diff --git a/include/net/caif/caif_dev.h b/include/net/caif/caif_dev.h
new file mode 100644
index 0000000..f2ede2e
--- /dev/null
+++ b/include/net/caif/caif_dev.h
 <at>  <at>  -0,0 +1,91  <at>  <at> 
+/*
+ * Copyright (C) ST-Ericsson AB 2010
+ * Author:	Sjur Brendeland/ sjur.brandeland <at> stericsson.com
+ * License terms: GNU General Public License (GPL) version 2
+ */
+
+#ifndef CAIF_DEV_H_
+#define CAIF_DEV_H_
+
+#include <net/caif/caif_layer.h>
+#include <net/caif/cfcnfg.h>
+#include <linux/caif/caif_socket.h>
+#include <linux/if.h>
(Continue reading)

sjur.brandeland | 1 Mar 03:09 2010

[PATCH net-next-2.6 v5 11/12] net-caif: add CAIF documentation

From: Sjur Braendeland <sjur.brandeland <at> stericsson.com>

Documentation of the CAIF Protocol.

Signed-off-by: Sjur Braendeland <sjur.brandeland <at> stericsson.com>
---
 Documentation/networking/caif/Linux-CAIF.txt |  212 ++++++++++++++++++++++++++
 Documentation/networking/caif/README         |  110 +++++++++++++
 2 files changed, 322 insertions(+), 0 deletions(-)

diff --git a/Documentation/networking/caif/Linux-CAIF.txt b/Documentation/networking/caif/Linux-CAIF.txt
new file mode 100644
index 0000000..7fe7a9a
--- /dev/null
+++ b/Documentation/networking/caif/Linux-CAIF.txt
 <at>  <at>  -0,0 +1,212  <at>  <at> 
+Linux CAIF
+===========
+copyright (C) ST-Ericsson AB 2010
+Author: Sjur Brendeland/ sjur.brandeland <at> stericsson.com
+License terms: GNU General Public License (GPL) version 2
+
+
+Introduction
+------------
+CAIF is a MUX protocol used by ST-Ericsson cellular modems for
+communication between Modem and host. The host processes can open virtual AT
+channels, initiate GPRS Data connections, Video channels and Utility Channels.
+The Utility Channels are general purpose pipes between modem and host.
+
(Continue reading)

sjur.brandeland | 1 Mar 03:09 2010

[PATCH net-next-2.6 v5 00/12] net-caif: introducing CAIF protocol stack

From: Sjur Braendeland <sjur.brandeland <at> stericsson.com>

This patch-set introduces the CAIF protocol Stack.
The "Communication CPU to Application CPU Interface" (CAIF) is a packet based
connection-oriented MUX protocol developed by ST-Ericsson for use with its
modems.

Changes since V4:
- Updated with feedback from Marcel Holtmann:
	Removed socket option CAIFSO_NEXT_PACKET_LEN.
	Removed socket option CAIFSO_MAX_PACKET_LEN.
	Removed socket option CAIFSO_CHANNEL_ID.
	Renamed struct layer to struct cflayer.
	Renamed struct payload_info to struct caif_payload_info.
	Changed socket option CAIFSO_REQ_PARAM into not using caif_param struct.

OVERVIEW:

* CAIF provides a socket interface which can be used to open virtual AT
  channels, create and configure GPRS Data connections.

* A CAIF Network device is also provided for GPRS access.
  This interface can be managed with RTNL.

* A kernel interface is provided allowing Kernel modules to use CAIF.

* A serial link layer layer implemented as a line discipline is currently 
  implemented. Other link interfaces may be contributed at a later stage.

  RTNL
(Continue reading)

sjur.brandeland | 1 Mar 03:09 2010

[PATCH net-next-2.6 v5 08/12] net-caif: add CAIF socket implementation

From: Sjur Braendeland <sjur.brandeland <at> stericsson.com>

Implementation of CAIF sockets for protocol and address family
PF_CAIF and AF_CAIF.
CAIF socket is connection oriented implementing SOCK_SEQPACKET
interface with supporting blocking and non-blocking mode.

Signed-off-by: Sjur Braendeland <sjur.brandeland <at> stericsson.com>
---
 net/caif/caif_socket.c | 1431 ++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 1431 insertions(+), 0 deletions(-)

diff --git a/net/caif/caif_socket.c b/net/caif/caif_socket.c
new file mode 100644
index 0000000..d499e19
--- /dev/null
+++ b/net/caif/caif_socket.c
 <at>  <at>  -0,0 +1,1431  <at>  <at> 
+/*
+ * Copyright (C) ST-Ericsson AB 2010
+ * Author:	Sjur Brendeland sjur.brandeland <at> stericsson.com
+ *		Per Sigmond per.sigmond <at> stericsson.com
+ * License terms: GNU General Public License (GPL) version 2
+ */
+
+#include <linux/fs.h>
+#include <linux/init.h>
+#include <linux/module.h>
+#include <linux/sched.h>
+#include <linux/spinlock.h>
(Continue reading)

sjur.brandeland | 1 Mar 03:09 2010

[PATCH net-next-2.6 v5 12/12] net-caif-driver: add CAIF serial driver (ldisc)

From: Sjur Braendeland <sjur.brandeland <at> stericsson.com>

Add CAIF Serial driver. This driver is implemented as a line discipline.

caif_serial uses the following module parameters:
ser_use_stx - specifies if STart of frame eXtension is in use.
ser_loop    - sets the interface in loopback mode.

Signed-off-by: Sjur Braendeland <sjur.brandeland <at> stericsson.com>
---
 drivers/net/Kconfig            |    2 +
 drivers/net/Makefile           |    1 +
 drivers/net/caif/Kconfig       |   24 ++
 drivers/net/caif/Makefile      |   14 ++
 drivers/net/caif/caif_serial.c |  463 ++++++++++++++++++++++++++++++++++++++++
 include/linux/tty.h            |    4 +-
 6 files changed, 506 insertions(+), 2 deletions(-)
 create mode 100644 drivers/net/caif/Kconfig
 create mode 100644 drivers/net/caif/Makefile
 create mode 100644 drivers/net/caif/caif_serial.c

diff --git a/drivers/net/Kconfig b/drivers/net/Kconfig
index dd9a09c..c2e670c 100644
--- a/drivers/net/Kconfig
+++ b/drivers/net/Kconfig
 <at>  <at>  -2789,6 +2789,8  <at>  <at>  source "drivers/ieee802154/Kconfig"

 source "drivers/s390/net/Kconfig"

+source "drivers/net/caif/Kconfig"
(Continue reading)


Gmane