Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 4 Mar 2003 16:04:54 -0800 (PST)
From:      Archie Cobbs <archie@dellroad.org>
To:        freebsd-net@freebsd.org
Subject:   Mysterious MPD hangs? Please try this patch
Message-ID:  <200303050004.h2504sbY012403@arch20m.dellroad.org>

next in thread | raw e-mail | index | archive | help
Hi,

For anyone who's using MPD with multilink PPP enabled and is experiencing
mysterious "hangs" where no data gets through for an extended period of
time, please try the patch below.

Thanks to Matthew Impett <mimpett@Glue.umd.edu> for finding the bug.

-Archie

__________________________________________________________________________
Archie Cobbs     *     Precision I/O      *     http://www.precisionio.com


Index: sys/netgraph/ng_ppp.c
===================================================================
RCS file: /home/cvs/freebsd/src/sys/netgraph/ng_ppp.c,v
retrieving revision 1.15.2.9
diff -u -r1.15.2.9 ng_ppp.c
--- sys/netgraph/ng_ppp.c	2 Jul 2002 23:44:03 -0000	1.15.2.9
+++ sys/netgraph/ng_ppp.c	5 Mar 2003 00:00:48 -0000
@@ -1370,6 +1370,7 @@
 	struct mbuf *m;
 	meta_p meta;
 	int i, seq;
+	int endseq;
 
 	now.tv_sec = 0;			/* uninitialized state */
 	while (1) {
@@ -1419,11 +1420,12 @@
 		}
 
 		/* Extract completed packet */
+		endseq = end->seq;
 		ng_ppp_get_packet(node, &m, &meta);
 
 		/* Bump MSEQ if necessary */
-		if (MP_RECV_SEQ_DIFF(priv, priv->mseq, end->seq) < 0) {
-			priv->mseq = end->seq;
+		if (MP_RECV_SEQ_DIFF(priv, priv->mseq, endseq) < 0) {
+			priv->mseq = endseq;
 			for (i = 0; i < priv->numActiveLinks; i++) {
 				struct ng_ppp_link *const alink =
 				    &priv->links[priv->activeLinks[i]];

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-net" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200303050004.h2504sbY012403>