summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--usr.sbin/ppp/command.c61
-rw-r--r--usr.sbin/ppp/hdlc.h8
-rw-r--r--usr.sbin/ppp/os.c4
-rw-r--r--usr.sbin/ppp/vars.c6
-rw-r--r--usr.sbin/ppp/vars.h4
5 files changed, 69 insertions, 14 deletions
diff --git a/usr.sbin/ppp/command.c b/usr.sbin/ppp/command.c
index 4f7a7e4..85bea97 100644
--- a/usr.sbin/ppp/command.c
+++ b/usr.sbin/ppp/command.c
@@ -17,7 +17,7 @@
* IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
* WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
*
- * $Id: command.c,v 1.51 1997/05/29 02:29:12 brian Exp $
+ * $Id: command.c,v 1.52 1997/05/31 16:37:19 brian Exp $
*
*/
#include <sys/types.h>
@@ -372,6 +372,21 @@ static int ShowLogList()
return(1);
}
+static int ShowInitialMRU()
+{
+ printf(" Initial MRU: %ld\n", VarMRU);
+ return(1);
+}
+
+static int ShowPreferredMTU()
+{
+ if (VarPrefMTU)
+ printf(" Preferred MTU: %ld\n", VarPrefMTU);
+ else
+ printf(" Preferred MTU: unspecified\n");
+ return(1);
+}
+
static int ShowReconnect()
{
printf(" Reconnect Timer: %d, %d tries\n",
@@ -451,6 +466,10 @@ struct cmdtab const ShowCommands[] = {
"Show memory map", StrNull},
{ "modem", NULL, ShowModemStatus, LOCAL_AUTH,
"Show modem setups", StrNull},
+ { "mru", NULL, ShowInitialMRU, LOCAL_AUTH,
+ "Show Initial MRU", StrNull},
+ { "mtu", NULL, ShowPreferredMTU, LOCAL_AUTH,
+ "Show Preferred MTU", StrNull},
{ "ofilter", NULL, ShowOfilter, LOCAL_AUTH,
"Show Output filters", StrOption},
{ "proto", NULL, ReportProtStatus, LOCAL_AUTH,
@@ -834,17 +853,43 @@ struct cmdtab *list;
int argc;
char **argv;
{
- int mru;
+ long mru;
if (argc > 0) {
- mru = atoi(*argv);
- if (mru < 100)
- printf("given value is too small.\n");
+ mru = atol(*argv);
+ if (mru < MIN_MRU)
+ printf("Given MRU value (%ld) is too small.\n", mru);
else if (mru > MAX_MRU)
- printf("given value is too big.\n");
+ printf("Given MRU value (%ld) is too big.\n", mru);
else
VarMRU = mru;
- }
+ } else
+ printf("Usage: %s %s\n", list->name, list->syntax);
+
+ return(1);
+}
+
+static int
+SetPreferredMTU(list, argc, argv)
+struct cmdtab *list;
+int argc;
+char **argv;
+{
+ long mtu;
+
+ if (argc > 0) {
+ mtu = atol(*argv);
+ if (mtu == 0)
+ VarPrefMTU = 0;
+ else if (mtu < MIN_MTU)
+ printf("Given MTU value (%ld) is too small.\n", mtu);
+ else if (mtu > MAX_MTU)
+ printf("Given MTU value (%ld) is too big.\n", mtu);
+ else
+ VarPrefMTU = mtu;
+ } else
+ printf("Usage: %s %s\n", list->name, list->syntax);
+
return(1);
}
@@ -1117,6 +1162,8 @@ struct cmdtab const SetCommands[] = {
"Set login script", StrChatStr, (void *)VAR_LOGIN },
{ "mru", NULL, SetInitialMRU, LOCAL_AUTH,
"Set Initial MRU value", StrValue },
+ { "mtu", NULL, SetPreferredMTU, LOCAL_AUTH,
+ "Set Preferred MTU value", StrValue },
{ "ofilter", NULL, SetOfilter, LOCAL_AUTH,
"Set output filter", "..." },
{ "openmode", NULL, SetOpenMode, LOCAL_AUTH,
diff --git a/usr.sbin/ppp/hdlc.h b/usr.sbin/ppp/hdlc.h
index f626f3f..683d02e 100644
--- a/usr.sbin/ppp/hdlc.h
+++ b/usr.sbin/ppp/hdlc.h
@@ -15,7 +15,7 @@
* IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
* WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
*
- * $Id$
+ * $Id: hdlc.h,v 1.6 1997/02/22 16:10:17 peter Exp $
*
* TODO:
*/
@@ -39,9 +39,13 @@
#define GOODFCS 0xf0b8 /* Good FCS value */
#define DEF_MRU 1500
-#define MAX_MRU 2000
+#define MAX_MRU 16384
#define MIN_MRU 296
+#define DEF_MTU 0 /* whatever peer says */
+#define MAX_MTU 16384
+#define MIN_MTU 296
+
/*
* Output priority
*/
diff --git a/usr.sbin/ppp/os.c b/usr.sbin/ppp/os.c
index c1a8962..c5072b2 100644
--- a/usr.sbin/ppp/os.c
+++ b/usr.sbin/ppp/os.c
@@ -17,7 +17,7 @@
* IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
* WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
*
- * $Id: os.c,v 1.18 1997/05/24 17:32:41 brian Exp $
+ * $Id: os.c,v 1.19 1997/05/26 00:44:08 brian Exp $
*
*/
#include "fsm.h"
@@ -263,6 +263,8 @@ int type, mtu, speed;
info.type = type;
info.mtu = mtu;
+ if (VarPrefMTU != 0 && VarPrefMTU < mtu)
+ info.mtu = VarPrefMTU;
info.baudrate = speed;
if (ioctl(tun_out, TUNSIFINFO, &info) < 0)
perror("TUNSIFINFO");
diff --git a/usr.sbin/ppp/vars.c b/usr.sbin/ppp/vars.c
index 2ebc142..f9e4d1d 100644
--- a/usr.sbin/ppp/vars.c
+++ b/usr.sbin/ppp/vars.c
@@ -17,7 +17,7 @@
* IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
* WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
*
- * $Id: vars.c,v 1.16 1997/05/17 16:08:48 brian Exp $
+ * $Id: vars.c,v 1.17 1997/05/26 00:44:09 brian Exp $
*
*/
#include "fsm.h"
@@ -30,7 +30,7 @@
#include "defs.h"
char VarVersion[] = "Version 0.94";
-char VarLocalVersion[] = "$Date: 1997/05/17 16:08:48 $";
+char VarLocalVersion[] = "$Date: 1997/05/26 00:44:09 $";
/*
* Order of conf option is important. See vars.h.
@@ -50,7 +50,7 @@ struct confdesc pppConfs[] = {
};
struct pppvars pppVars = {
- DEF_MRU, 0, MODEM_SPEED, CS8, MODEM_CTSRTS, 180, 30, 3,
+ DEF_MRU, DEF_MTU, 0, MODEM_SPEED, CS8, MODEM_CTSRTS, 180, 30, 3,
RECONNECT_TIMER, RECONNECT_TRIES, REDIAL_PERIOD,
NEXT_REDIAL_PERIOD, 1, MODEM_DEV, BASE_MODEM_DEV,
OPEN_ACTIVE, LOCAL_NO_AUTH,
diff --git a/usr.sbin/ppp/vars.h b/usr.sbin/ppp/vars.h
index b9473d2..3c524f9 100644
--- a/usr.sbin/ppp/vars.h
+++ b/usr.sbin/ppp/vars.h
@@ -15,7 +15,7 @@
* IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
* WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
*
- * $Id: vars.h,v 1.15 1997/05/24 17:32:42 brian Exp $
+ * $Id: vars.h,v 1.16 1997/05/26 00:44:10 brian Exp $
*
* TODO:
*/
@@ -55,6 +55,7 @@ extern struct confdesc pppConfs[MAXCONFS+1];
struct pppvars {
u_long var_mru; /* Initial MRU value */
+ u_long pref_mtu; /* Preferred MTU value */
int var_accmap; /* Initial ACCMAP value */
int modem_speed; /* Current modem speed */
int modem_parity; /* Parity setting */
@@ -88,6 +89,7 @@ struct pppvars {
#define VarAccmap pppVars.var_accmap
#define VarMRU pppVars.var_mru
+#define VarPrefMTU pppVars.pref_mtu
#define VarDevice pppVars.modem_dev
#define VarBaseDevice pppVars.base_modem_dev
#define VarSpeed pppVars.modem_speed
OpenPOWER on IntegriCloud