Date: Thu, 28 Feb 2002 10:14:06 +0100 From: Marcel de Vries <mdevries@haveityourway.nl> To: freebsd-net@freebsd.org Subject: no more buffer problems yes!! Message-ID: <5.1.0.14.2.20020228094227.01e325d0@outshine>
next in thread | raw e-mail | index | archive | help
Hi all,
The problem I had with 'no buffer available' messages is solved.
Mpd seemed to be the problem. I'm using pptpclient-1.0.3 at this very
moment, tested my mxstream ADSL inet connection in all kinds of ways with
(ICMP traffic, UDP, TCP) and no buffer problems.
Mpd was generating these problems, and with al respect of Mpd coders, I
applied a patch on Mpd to use mpd in combination with mxstream ADSL. The
patch was written for Mpd version 3.2. I applied this patch on v3.7 to meet
the requirements for connecting to the internet.
For you all unfamiliar with the patch en purpose stick close now:
Without C experience, I can tell the function for the patch. I think not
;-) but I'll try!
Mpd needs to call this script, that's what a peace of the patch is about I
think.
Mxstream-up script:
#!/bin/sh
# ng0 inet 10.162.75.185 195.190.240.193
INTERFACE=$1
PROTOCOL=$2
LOCAL=$3
REMOTE=$4
/sbin/route delete default
/sbin/ifconfig ng0 mtu 1492
/sbin/route add default $REMOTE
[ -x /sbin/ipnat ] && /sbin/ipnat -CF -f /etc/ipnat.conf && ipf -y &&
echo -n 'ipnat'
--------------
My mpd.conf, peep this:
default:
load mxstream
mxstream:
new -i ng0 mxs mxs
#log -auth -ccp -chat -fsm -iface -pptp -ipcp -lcp -link -phys
set iface disable on-demand
set iface idle 0
set iface up-script "/usr/local/sbin/mxstream-up"
set bundle disable multilink
set bundle authname thuglord@xs4all-fast-adsl
set link yes acfcomp protocomp
set link no chap
set link yes pap
set link disable pap
set link keep-alive 10 75
set ipcp yes vjcomp
set ipcp enable req-pri-dns
set ipcp enable req-sec-dns
open
Please everybody is free to fix the patch below, because my C poor as hell.
I liked mpd very much, but I have changed to pptp-client to fix the no
buffer space problems.
orginal patch source:
----------------------------------------start-------------------------------
*** work/mpd-3.2/src/Makefile.orig Tue Oct 10 23:15:28 2000
--- work/mpd-3.2/src/Makefile Wed Feb 21 21:04:01 2001
***************
*** 63,68 ****
--- 63,69 ----
COPTS+= -DPATH_CONF_DIR=\"${MPD_CONF_DIR}\"
COPTS+= -DSYSLOG_FACILITY=${SYSLOG_FACILITY}
COPTS+= -DMPD_VERSION='"${MPD_VERSION}"'
+ COPTS+= -DMXSTREAM
# Standard sources
*** work/mpd-3.2/src/pptp.c.orig Tue Oct 10 23:15:28 2000
--- work/mpd-3.2/src/pptp.c Wed Feb 21 21:04:01 2001
***************
*** 20,25 ****
--- 20,26 ----
#include <netgraph/ng_pptpgre.h>
#include <netgraph.h>
+
/*
* DEFINITIONS
*/
***************
*** 48,53 ****
--- 49,57 ----
u_short peer_port; /* Current peer port */
struct optinfo options;
struct pptpctrlinfo cinfo;
+ #ifdef MXSTREAM
+ char phoneNum[PPTP_PHONE_LEN + 1];
+ #endif
};
typedef struct pptpinfo *PptpInfo;
***************
*** 57,62 ****
--- 61,69 ----
SET_PEERADDR,
SET_ENABLE,
SET_DISABLE,
+ #ifdef MXSTREAM
+ SET_PHONENUM,
+ #endif
};
/* Binary options */
***************
*** 132,137 ****
--- 139,148 ----
PptpSetCommand, NULL, (void *) SET_ENABLE },
{ "disable [opt ...]", "Disable option",
PptpSetCommand, NULL, (void *) SET_DISABLE },
+ #ifdef MXSTREAM
+ { "phone string", "Phone number",
+ PptpSetCommand, NULL, (void *) SET_PHONENUM },
+ #endif
{ NULL },
};
***************
*** 271,280 ****
cinfo = PptpCtrlInCall(linfo, ip, port,
PPTP_BEARCAP_ANY, PPTP_FRAMECAP_SYNC,
PPTP_CALL_MIN_BPS, PPTP_CALL_MAX_BPS, inet_ntoa(gLocalIp), "", "");
! else
cinfo = PptpCtrlOutCall(linfo, ip, port,
PPTP_BEARCAP_ANY, PPTP_FRAMECAP_SYNC,
PPTP_CALL_MIN_BPS, PPTP_CALL_MAX_BPS, "", "");
if (cinfo.cookie == NULL)
return(-1);
pptp->peer_addr = ip;
--- 282,299 ----
cinfo = PptpCtrlInCall(linfo, ip, port,
PPTP_BEARCAP_ANY, PPTP_FRAMECAP_SYNC,
PPTP_CALL_MIN_BPS, PPTP_CALL_MAX_BPS, inet_ntoa(gLocalIp), "", "");
! else {
! #ifdef MXSTREAM
! Log(LG_PPTP, ("[%s] phonenum [%s] used", lnk->name, pptp->phoneNum));
! cinfo = PptpCtrlOutCall(linfo, ip, port,
! PPTP_BEARCAP_ANY, PPTP_FRAMECAP_SYNC,
! PPTP_CALL_MIN_BPS, PPTP_CALL_MAX_BPS, pptp->phoneNum, "");
! #else
cinfo = PptpCtrlOutCall(linfo, ip, port,
PPTP_BEARCAP_ANY, PPTP_FRAMECAP_SYNC,
PPTP_CALL_MIN_BPS, PPTP_CALL_MAX_BPS, "", "");
+ #endif
+ }
if (cinfo.cookie == NULL)
return(-1);
pptp->peer_addr = ip;
***************
*** 732,737 ****
--- 751,761 ----
DisableCommand(ac, av, &pptp->options, gConfList);
PptpListenUpdate();
break;
+ #ifdef MXSTREAM
+ case SET_PHONENUM:
+ snprintf(pptp->phoneNum, PPTP_PHONE_LEN + 1, "%s", *av);
+ break;
+ #endif
default:
assert(0);
}
---------------------------------end----------------------------
Ok thats all folks,
Regards,
Marcel
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?5.1.0.14.2.20020228094227.01e325d0>
