Unix Technical Forum

PPPoE patch for connection problems

This is a discussion on PPPoE patch for connection problems within the mailing.openbsd.tech forums, part of the OpenBSD category; --> I've been running this little patch for several weeks and it's been a real life saver. My ppp connection ...


Go Back   Unix Technical Forum > Unix Operating Systems > OpenBSD > mailing.openbsd.tech

FAQ Members List Calendar Search Today's Posts Mark Forums Read
  #1 (permalink)  
Old 02-18-2008, 07:50 AM
Paul Galbraith
 
Posts: n/a
Default PPPoE patch for connection problems

I've been running this little patch for several weeks and it's been a
real life saver. My ppp connection kept cycling through a never-ending
connect-disconnect cycle, constantly reporting 'connection reset by
peer'. Some investigation showed that my DSL provider (or more likely,
Bell Canada) keeps sending PPPoE PADT tags immediately after a
connection is established.

This patch allows you to play along and keep your connection up by
ignoring the disconnect request...
? pppoe
? pppoe.cat8
Index: client.c
================================================== =================
RCS file: /cvs/src/usr.sbin/pppoe/client.c,v
retrieving revision 1.20
diff -u -b -r1.20 client.c
--- client.c 3 Sep 2004 06:37:14 -0000 1.20
+++ client.c 1 May 2005 03:13:10 -0000
@@ -495,6 +495,9 @@
struct ether_header *eh, struct pppoe_header *ph,
u_long len, u_int8_t *pkt)
{
+ if (ignorepadt)
+ return (0);
+
if (bcmp(&eh->ether_shost[0], rmea, ETHER_ADDR_LEN))
return (0);

Index: debug.c
================================================== =================
RCS file: /cvs/src/usr.sbin/pppoe/debug.c,v
retrieving revision 1.2
diff -u -b -r1.2 debug.c
Index: pppoe.8
================================================== =================
RCS file: /cvs/src/usr.sbin/pppoe/pppoe.8,v
retrieving revision 1.18
diff -u -b -r1.18 pppoe.8
--- pppoe.8 18 Feb 2005 12:19:22 -0000 1.18
+++ pppoe.8 1 May 2005 03:13:10 -0000
@@ -33,7 +33,7 @@
.Nd PPP Over Ethernet translator
.Sh SYNOPSIS
.Nm pppoe
-.Op Fl sv
+.Op Fl stv
.Op Fl i Ar interface
.Op Fl n Ar service
.Op Fl p Ar system
@@ -74,6 +74,14 @@
Otherwise,
.Nm
runs as a client.
+.It Fl t
+Instruct
+.Nm
+to ignore PADT packets. If you observe numerous
+"connection reset by peer" error messages and constantly
+lose connection soon after establishing one, it may because
+of spurious PADT tags being sent from the peer. Ignoring them
+may alleviate the problem.
.It Fl v
For each use of the flag, the verbosity of
.Nm pppoe
Index: pppoe.c
================================================== =================
RCS file: /cvs/src/usr.sbin/pppoe/pppoe.c,v
retrieving revision 1.15
diff -u -b -r1.15 pppoe.c
--- pppoe.c 20 Sep 2004 17:51:07 -0000 1.15
+++ pppoe.c 1 May 2005 03:13:10 -0000
@@ -53,6 +53,7 @@
#include "pppoe.h"

int option_verbose = 0;
+int ignorepadt = 0;
u_char etherbroadcastaddr[6] = { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff };

int main(int, char **);
@@ -78,7 +79,7 @@
if ((pw = getpwnam("_ppp")) == NULL)
err(EX_CONFIG, "getpwnam(\"_ppp\")");

- while ((c = getopt(argc, argv, "svi:n:")) != -1) {
+ while ((c = getopt(argc, argv, "stvi:n:")) != -1) {
switch (c) {
case 'i':
if (ifname != NULL) {
@@ -108,6 +109,13 @@
}
smode = 1;
break;
+ case 't':
+ if (ignorepadt) {
+ usage();
+ return (EX_USAGE);
+ }
+ ignorepadt = 1;
+ break;
case 'v':
option_verbose++;
break;
@@ -463,7 +471,7 @@
{
extern char *__progname;

- fprintf(stderr,"%s [-sv] [-i interface] [-n service] [-p system]\n",
+ fprintf(stderr,"%s [-stv] [-i interface] [-n service] [-p system]\n",
__progname);
}

Index: pppoe.h
================================================== =================
RCS file: /cvs/src/usr.sbin/pppoe/pppoe.h,v
retrieving revision 1.7
diff -u -b -r1.7 pppoe.h
--- pppoe.h 6 May 2004 20:29:04 -0000 1.7
+++ pppoe.h 1 May 2005 03:13:10 -0000
@@ -81,6 +81,7 @@
#define PPPOE_TAG_GENERIC_ERROR 0x0203 /* Generic Error */

extern int option_verbose;
+extern int ignorepadt;
extern u_char etherbroadcastaddr[];

void server_mode(int, u_int8_t *, u_int8_t *, struct ether_addr *);

Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
Reply


Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On
Forum Jump


All times are GMT. The time now is 01:08 AM.


Powered by vBulletin® Version 3.6.5
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
SEO by vBSEO 3.2.0
www.UnixAdminTalk.com