patch-2.2.15 linux/drivers/isdn/isdn_ppp.c
Next file: linux/drivers/isdn/isdn_tty.c
Previous file: linux/drivers/isdn/isdn_net.c
Back to the patch index
Back to the overall index
- Lines: 109
- Date:
Fri Apr 21 12:46:12 2000
- Orig file:
v2.2.14/drivers/isdn/isdn_ppp.c
- Orig date:
Tue Jan 4 21:18:50 2000
diff -u --new-file --recursive --exclude-from ../../exclude v2.2.14/drivers/isdn/isdn_ppp.c linux/drivers/isdn/isdn_ppp.c
@@ -1,4 +1,4 @@
-/* $Id: isdn_ppp.c,v 1.60 1999/11/04 20:29:55 he Exp $
+/* $Id: isdn_ppp.c,v 1.63 2000/03/16 15:46:37 kai Exp $
*
* Linux ISDN subsystem, functions for synchronous PPP (linklevel).
*
@@ -19,6 +19,34 @@
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*
* $Log: isdn_ppp.c,v $
+ * Revision 1.63 2000/03/16 15:46:37 kai
+ * a little bugfix and cosmetic changes
+ *
+ * Revision 1.62 2000/02/12 19:26:55 kai
+ * adopted to latest 2.3 softnet changes.
+ *
+ * tested with PPP and MPPP, it works here.
+ * can somebody check raw-ip?
+ *
+ * also changed std2kern, stddiff for bash-1 compatibility,
+ * hope this doesn't break anything.
+ *
+ * Revision 1.61 1999/11/20 22:14:14 detabc
+ * added channel dial-skip in case of external use
+ * (isdn phone or another isdn device) on the same NTBA.
+ * usefull with two or more card's connected the different NTBA's.
+ * global switchable in kernel-config and also per netinterface.
+ *
+ * add auto disable of netinterface's in case of:
+ * to many connection's in short time.
+ * config mistakes (wrong encapsulation, B2-protokoll or so on) on local
+ * or remote side.
+ * wrong password's or something else to a ISP (syncppp).
+ *
+ * possible encapsulations for this future are:
+ * ISDN_NET_ENCAP_SYNCPPP, ISDN_NET_ENCAP_UIHDLC, ISDN_NET_ENCAP_RAWIP,
+ * and ISDN_NET_ENCAP_CISCOHDLCK.
+ *
* Revision 1.60 1999/11/04 20:29:55 he
* applied Andre Beck's reset_free fix
*
@@ -306,7 +334,7 @@
static void isdn_ppp_free_mpqueue(isdn_net_dev *);
#endif
-char *isdn_ppp_revision = "$Revision: 1.60 $";
+char *isdn_ppp_revision = "$Revision: 1.63 $";
static struct ippp_struct *ippp_table[ISDN_MAX_CHANNELS];
@@ -700,7 +728,7 @@
case PPPIOCGIFNAME:
if(!lp)
return -EINVAL;
- if ((r = set_arg((void *) arg, lp->name,strlen(lp->name))))
+ if ((r = set_arg((void *) arg, lp->name, strlen(lp->name))))
return r;
break;
case PPPIOCGMPFLAGS: /* get configuration flags */
@@ -722,8 +750,8 @@
}
if (val & SC_ENABLE_IP && !(is->pppcfg & SC_ENABLE_IP) && (is->state & IPPP_CONNECT)) {
if (lp) {
- lp->netdev->dev.tbusy = 0;
- mark_bh(NET_BH); /* OK .. we are ready to send buffers */
+ /* OK .. we are ready to send buffers */
+ netif_wake_queue(&lp->netdev->dev);
}
}
is->pppcfg = val;
@@ -1492,7 +1520,7 @@
break;
default:
dev_kfree_skb(skb);
- printk(KERN_ERR "isdn_ppp: skipped frame with unsupported protocoll: %#x.\n", skb->protocol);
+ printk(KERN_ERR "isdn_ppp: skipped frame with unsupported protocol: %#x.\n", skb->protocol);
return 0;
}
@@ -1500,7 +1528,7 @@
if (lp->sav_skb) { /* find a non-busy device */
isdn_net_local *nlp = lp->next;
- while (lp->sav_skb) {
+ while (nlp->sav_skb) {
if (lp == nlp)
return 1;
nlp = nd->queue = nd->queue->next;
@@ -1926,12 +1954,14 @@
#ifdef CONFIG_ISDN_PPP_VJ
int toss = 0;
#endif
-/* z.z einfaches aussortieren gammeliger pakete. Fuer die Zukunft:
- eventuell, solange vorne kein B-paket ist und sqno<=min_sqno: auch rauswerfen
- wenn sqno<min_sqno und Luecken vorhanden sind: auch weg (die koennen nicht mehr gefuellt werden)
- bei paketen groesser min_sqno: ueber mp_mrru: wenn summe ueber pktlen der rumhaengenden Pakete
- groesser als mrru ist: raus damit , Pakete muessen allerdings zusammenhaengen sonst koennte
- ja ein Paket mit B und eins mit E dazwischenpassen */
+ /* currently we just discard ancient packets.
+ To do:
+ Maybe, as long as there's no B-packet in front and sqno <= min_sqno: discard.
+ If sqno < min_sqno and there are gaps: discard (the gaps won't be filled anyway).
+ Packets with sqno > min_sqno: Larger than mp_mrru: If sum of all pktlen of pending
+ packets large than mrru: discard - packets need to be consecutive, though, if not
+ there could be an B and an E-packet in between.
+ */
struct mpqueue *ql,
*q = dev->mp_last;
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)