diff -ur --new-file old/atm/BUGS new/atm/BUGS --- old/atm/BUGS Fri Apr 4 20:20:54 1997 +++ new/atm/BUGS Thu Apr 10 11:58:54 1997 @@ -1,13 +1,35 @@ +Known bugs and restrictions in version 0.30 +=========================================== + + - Arequipa sometimes eats the first packet (probably fixed) + - ENI driver should be more tolerant about data alignment when sending + - libresolve conflicts with libc on some systems + - atmarp is said to break proxy ARP + + Known bugs and restrictions in version 0.29 =========================================== + - Arequipa sometimes eats the first packet + - atmsigd -N is reported to fail in some unspecified way + - ENI driver should be more tolerant about data alignment when sending + - libresolve conflicts with libc on some systems + - qgen is said to exhibit memory leak on q_open/q_close (need to verify) + - atmarp is said to break proxy ARP + - atmsigd reported to die and hang in eni.c:close_tx (fixed ?) + - atmarpd sometimes complains about "ARP: unknown hw protocol 0xaaaa". (fixed?) + + +Known bugs and restrictions in version 0.28 +=========================================== + - ENI driver seems to get confused when closing VC with low PCR and data pending (this is a more precise diagnosis of the "ident mismatch" problem) - didn't fix all the 0.27 and 0.28 problems listed below - select is reported to fail miserably when used with atmtcp -Known bugs and restrictions in version 0.28 +Known bugs and restrictions in version 0.27 =========================================== - Arequipa sometimes eats the first packet @@ -19,7 +41,7 @@ indicate that data gets corrupted somewhere. -Known bugs and restrictions in version 0.27 +Known bugs and restrictions in version 0.26 =========================================== - the AAL changes probably broke LANE diff -ur --new-file old/atm/CHANGES new/atm/CHANGES --- old/atm/CHANGES Fri Apr 4 22:35:27 1997 +++ new/atm/CHANGES Thu Apr 10 12:53:01 1997 @@ -1,3 +1,29 @@ +Version 0.29 to 0.30 (10-APR-1997) +==================== + +Bug fixes +--------- + + - atmtcp didn't use vcc->push and therefore got the buffer usage accounting + wrong (fix by Gerald Hanusch) + - when closing a VC, the ENI driver didn't wait until all TX data has really + left the board, which created a close/open race (found by Richard Jones) + - SSCOP sometimes omitted the last element in a STAT PDU (fix - even with + optimization vs. Q.2110 - by Ngo Bach Long) + - atmarpd allowed ARP information to change permanent entries (found by Gerald + Hanusch) + - atmsigd's get_pvc used the maximum SDU size, thereby wasting buffer space + very quickly, which led to signaling problems (reported by Richard Jones and + Rik Wade) + - oops, the BUGS file was always one version number ahead + - ATMARP had a race between packets sent by the remote station and the + ATMARP_MKIP ioctl. This caused the dreaded "unknown hw protocol 0xaaaa" + error. (Finally fixed thanks to a dump provided by Patrick Flynn) + - Arequipa had the same race for AREQUIPA_INCOMING. This probably caused the + occasional "loss" (they were actually kept in vcc->recvq until the + connection was closed) of the first packet(s). + + Version 0.28 to 0.29 (4-APR-1997) ==================== diff -ur --new-file old/atm/README new/atm/README --- old/atm/README Fri Apr 4 21:35:31 1997 +++ new/atm/README Thu Apr 10 12:10:21 1997 @@ -1,4 +1,4 @@ -ATM on Linux, release 0.98 (pre-alpha) by Werner Almesberger, EPFL LRC +ATM on Linux, release 0.30 (pre-alpha) by Werner Almesberger, EPFL LRC ====================================== werner.almesberger@lrc.di.epfl.ch This is experimental software. There are known major bugs and certainly diff -ur --new-file old/atm/USAGE new/atm/USAGE --- old/atm/USAGE Fri Apr 4 22:31:12 1997 +++ new/atm/USAGE Thu Apr 10 12:53:55 1997 @@ -1,4 +1,4 @@ -Usage instructions - ATM on Linux, release 0.29 (pre-alpha) +Usage instructions - ATM on Linux, release 0.30 (pre-alpha) ------------------------------------------------------------- For updates of ATM on Linux, please check the Web page at @@ -17,7 +17,7 @@ In order to install this package, you need - the package itself - ftp://lrcftp.epfl.ch/pub/linux/atm/dist/atm-0.29.tar.gz + ftp://lrcftp.epfl.ch/pub/linux/atm/dist/atm-0.30.tar.gz - the Linux kernel, version 2.0.25, e.g. from ftp://ftp.cs.helsinki.fi/pub/Software/Linux/Kernel/v2.0/linux-2.0.25.tar.gz - Perl, version 4 or 5 @@ -33,7 +33,7 @@ all the files listed above there. Then extract the ATM on Linux distribution: -tar xfz atm-0.29.tar.gz +tar xfz atm-0.30.tar.gz and the kernel source: diff -ur --new-file old/atm/VERSION new/atm/VERSION --- old/atm/VERSION Fri Apr 4 20:53:48 1997 +++ new/atm/VERSION Thu Apr 10 12:10:00 1997 @@ -1 +1 @@ -0.29 +0.30 diff -ur --new-file old/atm/arpd/arp.c new/atm/arpd/arp.c --- old/atm/arpd/arp.c Fri Apr 4 11:11:23 1997 +++ new/atm/arpd/arp.c Tue Apr 8 13:23:23 1997 @@ -476,11 +476,24 @@ if (vcc) { entry = vcc->entry; if (!entry->itf) Q_REMOVE(unknown_incoming,entry); + else if (entry->ip && entry->ip != ip && (entry->flags & ATF_PERM)) + { + diag(COMPONENT,DIAG_ERROR,"ignoring attempt to change IP " + "address of permanent entry (to %d.%d.%d.%d)",ipp[0], + ipp[1],ipp[2],ipp[3]); + return; + } } else { entry = alloc_entry(1); entry->flags = ATF_PUBL; } + if (entry->addr && (entry->flags & ATF_PERM) && + !atm_equal(entry->addr,addr,0,0)) { + diag(COMPONENT,DIAG_ERROR,"ignoring attempt to change ATM address of " + "permanent entry"); + return; + } if (entry->state == as_valid && entry->ip == ip && entry->addr && atm_equal(entry->addr,addr,0,0)) return; /* no news */ STOP_TIMER(entry); diff -ur --new-file old/atm/atm-0.29-1.spec new/atm/atm-0.29-1.spec --- old/atm/atm-0.29-1.spec Fri Apr 4 20:55:37 1997 +++ new/atm/atm-0.29-1.spec Thu Jan 1 01:00:00 1970 @@ -1,138 +0,0 @@ -Summary: ATM (Asynchronous Transfer Mode) -Name: atm -Version: 0.29 -Release: 1 -Source: atm-0.29.tar.gz -Source: lrcftp.epfl.ch:/pub/linux/atm/dist/atm-0.29.tar.gz -Copyright: distributable -Group: Networking/ATM -ExclusiveArch: i386 -ExclusiveOS: Linux - -%description -Programs, libraries, and configuration files required for using ATM -on Linux. Note that you still need to patch your kernel. - -%package ans -Summary: ANS (ATM Name Server) -Group: Networking/ATM - -%description ans -ANS is a version of BIND with extensions for ATM. This package contains -the complete BIND distribution, including tools like nslookup and dig. - -%prep - -%setup -n atm - -%build -make -cd extra -make tcpdump -make ans - -%install -INSTPREFIX=/usr make -e -cd config/redhat-4.0 -make install -cd ../../extra -INSTPREFIX=/usr make -e install - -%files ans -/usr/lib/libresolv.a -/usr/include/arpa/inet.h -/usr/include/arpa/nameser.h -/usr/include/netdb.h -/usr/include/resolv.h -/usr/include/sys/bitypes.h -/usr/lib/lib44bsd.a -/usr/sbin/named -/usr/sbin/named-xfer -/usr/sbin/named.restart -/usr/sbin/named.reload -/usr/sbin/ndc -/usr/bin/nslookup -/usr/lib/nslookup.help -/usr/bin/host -/usr/bin/dig -/usr/bin/dnsquery -/usr/bin/addr -/usr/man/man1/dig.1 -/usr/man/man1/host.1 -/usr/man/man1/dnsquery.1 -/usr/man/man8/named.8 -/usr/man/man8/named.reload.8 -/usr/man/man8/named.restart.8 -/usr/man/man8/ndc.8 -/usr/man/man8/named-xfer.8 -/usr/man/man8/nslookup.8 -/usr/man/man3/gethostbyname.3 -/usr/man/man3/resolver.3 -/usr/man/man3/getnetent.3 -/usr/man/man5/resolver.5 -/usr/man/man7/hostname.7 -/usr/man/man7/mailaddr.7 - -%files -%doc README -%doc USAGE -%config /etc/sysconfig/atm -%config /etc/atmsigd.conf -%config /etc/sysconfig/network-scripts/ifcfg-atm0 -%config /etc/sysconfig/network-scripts/ifup-atm -%config /etc/hosts.atm -/usr/sbin/tcpdump -/usr/lib/libatm.a -/usr/lib/libatmd.a -/usr/lib/libarequipa.a -/usr/include/atm.h -/usr/include/atmd.h -/usr/include/atmsap.h -/usr/include/arequipa.h -/usr/sbin/atmaddr -/usr/sbin/atmtcp -/usr/sbin/zntune -/usr/bin/atmdiag -/usr/bin/atmdump -/usr/bin/sonetdiag -/usr/man/man8/atmaddr.8 -/usr/man/man8/atmdiag.8 -/usr/man/man8/atmdump.8 -/usr/man/man8/atmtcp.8 -/usr/sbin/clip -/usr/sbin/atmarp -/usr/man/man8/clip.8 -/usr/man/man8/atmarp.8 -/usr/bin/aping -/usr/bin/aread -/usr/bin/awrite -/usr/bin/br -/usr/bin/bw -/usr/bin/ttcp_atm -/usr/bin/window -/usr/sbin/delay -/usr/sbin/aqtest -/usr/sbin/ed -/usr/sbin/encopy -/usr/sbin/endump -/usr/sbin/zndump -/usr/sbin/znth -/usr/sbin/atmsigd -/usr/man/man4/atmsigd.conf.4 -/usr/man/man8/atmsigd.8 -/usr/sbin/atmarpd -/usr/man/man8/atmarpd.8 -/usr/sbin/ilmid -/usr/sbin/zeppelin -/usr/man/man8/zeppelin.8 -/usr/sbin/les -/usr/sbin/bus -/usr/sbin/lecs -/usr/man/man8/les.8 -/usr/man/man8/lecs.8 -/usr/man/man8/bus.8 -/usr/sbin/arequipad -/usr/sbin/aqpvc -/usr/man/man8/arequipad.8 -/usr/man/man8/aqpvc.8 -/usr/man/man7/qos.7 diff -ur --new-file old/atm/atm-0.30-1.spec new/atm/atm-0.30-1.spec --- old/atm/atm-0.30-1.spec Thu Jan 1 01:00:00 1970 +++ new/atm/atm-0.30-1.spec Thu Apr 10 12:56:09 1997 @@ -0,0 +1,138 @@ +Summary: ATM (Asynchronous Transfer Mode) +Name: atm +Version: 0.30 +Release: 1 +Source: atm-0.30.tar.gz +Source: lrcftp.epfl.ch:/pub/linux/atm/dist/atm-0.30.tar.gz +Copyright: distributable +Group: Networking/ATM +ExclusiveArch: i386 +ExclusiveOS: Linux + +%description +Programs, libraries, and configuration files required for using ATM +on Linux. Note that you still need to patch your kernel. + +%package ans +Summary: ANS (ATM Name Server) +Group: Networking/ATM + +%description ans +ANS is a version of BIND with extensions for ATM. This package contains +the complete BIND distribution, including tools like nslookup and dig. + +%prep + +%setup -n atm + +%build +make +cd extra +make tcpdump +make ans + +%install +INSTPREFIX=/usr make -e +cd config/redhat-4.0 +make install +cd ../../extra +INSTPREFIX=/usr make -e install + +%files ans +/usr/lib/libresolv.a +/usr/include/arpa/inet.h +/usr/include/arpa/nameser.h +/usr/include/netdb.h +/usr/include/resolv.h +/usr/include/sys/bitypes.h +/usr/lib/lib44bsd.a +/usr/sbin/named +/usr/sbin/named-xfer +/usr/sbin/named.restart +/usr/sbin/named.reload +/usr/sbin/ndc +/usr/bin/nslookup +/usr/lib/nslookup.help +/usr/bin/host +/usr/bin/dig +/usr/bin/dnsquery +/usr/bin/addr +/usr/man/man1/dig.1 +/usr/man/man1/host.1 +/usr/man/man1/dnsquery.1 +/usr/man/man8/named.8 +/usr/man/man8/named.reload.8 +/usr/man/man8/named.restart.8 +/usr/man/man8/ndc.8 +/usr/man/man8/named-xfer.8 +/usr/man/man8/nslookup.8 +/usr/man/man3/gethostbyname.3 +/usr/man/man3/resolver.3 +/usr/man/man3/getnetent.3 +/usr/man/man5/resolver.5 +/usr/man/man7/hostname.7 +/usr/man/man7/mailaddr.7 + +%files +%doc README +%doc USAGE +%config /etc/sysconfig/atm +%config /etc/atmsigd.conf +%config /etc/sysconfig/network-scripts/ifcfg-atm0 +%config /etc/sysconfig/network-scripts/ifup-atm +%config /etc/hosts.atm +/usr/sbin/tcpdump +/usr/lib/libatm.a +/usr/lib/libatmd.a +/usr/lib/libarequipa.a +/usr/include/atm.h +/usr/include/atmd.h +/usr/include/atmsap.h +/usr/include/arequipa.h +/usr/sbin/atmaddr +/usr/sbin/atmtcp +/usr/sbin/zntune +/usr/bin/atmdiag +/usr/bin/atmdump +/usr/bin/sonetdiag +/usr/man/man8/atmaddr.8 +/usr/man/man8/atmdiag.8 +/usr/man/man8/atmdump.8 +/usr/man/man8/atmtcp.8 +/usr/sbin/clip +/usr/sbin/atmarp +/usr/man/man8/clip.8 +/usr/man/man8/atmarp.8 +/usr/bin/aping +/usr/bin/aread +/usr/bin/awrite +/usr/bin/br +/usr/bin/bw +/usr/bin/ttcp_atm +/usr/bin/window +/usr/sbin/delay +/usr/sbin/aqtest +/usr/sbin/ed +/usr/sbin/encopy +/usr/sbin/endump +/usr/sbin/zndump +/usr/sbin/znth +/usr/sbin/atmsigd +/usr/man/man4/atmsigd.conf.4 +/usr/man/man8/atmsigd.8 +/usr/sbin/atmarpd +/usr/man/man8/atmarpd.8 +/usr/sbin/ilmid +/usr/sbin/zeppelin +/usr/man/man8/zeppelin.8 +/usr/sbin/les +/usr/sbin/bus +/usr/sbin/lecs +/usr/man/man8/les.8 +/usr/man/man8/lecs.8 +/usr/man/man8/bus.8 +/usr/sbin/arequipad +/usr/sbin/aqpvc +/usr/man/man8/arequipad.8 +/usr/man/man8/aqpvc.8 +/usr/man/man7/qos.7 diff -ur --new-file old/atm/atm.patch new/atm/atm.patch --- old/atm/atm.patch Fri Apr 4 22:35:42 1997 +++ new/atm/atm.patch Thu Apr 10 13:15:43 1997 @@ -432,8 +432,8 @@ + return devs; +} --- /dev/null Mon Jul 18 01:46:18 1994 -+++ work/drivers/atm/atmtcp.c Thu Feb 6 19:27:13 1997 -@@ -0,0 +1,317 @@ ++++ work/drivers/atm/atmtcp.c Mon Apr 7 14:11:46 1997 +@@ -0,0 +1,316 @@ +/* drivers/atm/atmtcp.c - ATM over TCP "device" driver */ + +/* Written 1995,1996 by Werner Almesberger, EPFL LRC */ @@ -662,8 +662,7 @@ + if (walk->vpi == ntohs(hdr.vpi) && walk->vci == + ntohs(hdr.vci)) break; + if (walk) { -+ skb_queue_tail(&walk->recvq,skb); -+ wake_up(&walk->sleep); ++ vcc->push(vcc,skb); + nonblock = 1; + vcc->stats->rx++; + } @@ -752,8 +751,8 @@ + +#endif --- /dev/null Mon Jul 18 01:46:18 1994 -+++ work/drivers/atm/eni.c Fri Apr 4 19:58:42 1997 -@@ -0,0 +1,1953 @@ ++++ work/drivers/atm/eni.c Thu Apr 10 13:05:46 1997 +@@ -0,0 +1,1958 @@ +/* drivers/atm/eni.c - Efficient Networks ENI155P device driver */ + +/* Written 1995-1997 by Werner Almesberger, EPFL LRC */ @@ -823,7 +822,6 @@ +#define DPRINTK(format,args...) +#endif + -+ +#ifndef CONFIG_ATM_ENI_DEBUG + + @@ -1682,7 +1680,7 @@ + + DPRINTK(">do_tx\n"); + NULLCHECK(skb); -+ EVENT("do_tx: skb=0x%p, %d bytes\n",skb,skb->len); ++ EVENT("do_tx: skb=0x%p, %d bytes\n",(unsigned long) skb,skb->len); + vcc = skb->atm.vcc; + NULLCHECK(vcc); + eni_dev = ENI_DEV(vcc->dev); @@ -1968,10 +1966,16 @@ + save_flags(flags); + cli(); + while (skb_peek(&eni_vcc->tx->backlog) || eni_vcc->txing) { -+ printk("%d TX left\n",eni_vcc->txing); + DPRINTK("%d TX left\n",eni_vcc->txing); + sleep_on(&eni_dev->tx_wait); + } ++ /* ++ * Looping a few times in here is probably far cheaper than keeping ++ * track of TX completions all the time, so let's poll a bit ... ++ */ ++ while (eni_dev->reg[MID_TX_RDPTR(eni_vcc->tx->index)] != ++ eni_dev->reg[MID_TX_DESCRSTART(eni_vcc->tx->index)]) ++ schedule(); + restore_flags(flags); +#if 0 + if (skb_peek(&eni_vcc->tx->backlog)) @@ -13968,8 +13972,8 @@ + +#endif --- /dev/null Mon Jul 18 01:46:18 1994 -+++ work/net/atm/atmarp.c Fri Apr 4 19:36:36 1997 -@@ -0,0 +1,624 @@ ++++ work/net/atm/atmarp.c Thu Apr 10 12:13:13 1997 +@@ -0,0 +1,635 @@ +/* atmarp.c - RFC1577 ATM ARP */ + +/* Written 1995-1997 by Werner Almesberger, EPFL LRC */ @@ -14218,10 +14222,21 @@ + +static void attach_entry(struct atm_vcc *vcc,struct atmarp_entry *entry) +{ ++ struct sk_buff_head copy; ++ struct sk_buff *skb; ++ unsigned long flags; ++ ++ save_flags(flags); ++ cli(); + AE(vcc) = entry; + entry->old_push = vcc->push; + vcc->push = atm_push_ip; + entry->vcc = vcc; ++ skb_migrate(&vcc->recvq,©); ++ vcc->rx_inuse = 0; ++ restore_flags(flags); ++ /* re-process everything received between connection setup and MKIP */ ++ while ((skb = skb_dequeue(©))) atm_push_ip(vcc,skb); +} + + @@ -14651,11 +14666,11 @@ + +#endif --- /dev/null Mon Jul 18 01:46:18 1994 -+++ work/net/atm/ipcommon.h Wed Apr 2 22:39:38 1997 -@@ -0,0 +1,73 @@ ++++ work/net/atm/ipcommon.h Thu Apr 10 09:16:09 1997 +@@ -0,0 +1,74 @@ +/* net/atm/ipcommon.h - Common items for all ways of doing IP over ATM */ + -+/* Written 1996 by Werner Almesberger, EPFL LRC */ ++/* Written 1996,1997 by Werner Almesberger, EPFL LRC */ + + +#ifndef NET_ATM_IPCOMMON_H @@ -14724,11 +14739,12 @@ + int (*hard_start_xmit)(struct sk_buff *skb,struct device *dev), + unsigned short extra_flags); +int ipcom_pick_number(int number); ++void skb_migrate(struct sk_buff_head *from,struct sk_buff_head *to); + +#endif --- /dev/null Mon Jul 18 01:46:18 1994 -+++ work/net/atm/ipcommon.c Fri Apr 4 19:31:40 1997 -@@ -0,0 +1,213 @@ ++++ work/net/atm/ipcommon.c Thu Apr 10 10:39:03 1997 +@@ -0,0 +1,232 @@ +/* net/atm/ipcommon.c - Common items for all ways of doing IP over ATM */ + +/* Written 1996,1997 by Werner Almesberger, EPFL LRC */ @@ -14942,9 +14958,28 @@ + } + return number; +} ++ ++ ++/* ++ * skb_migrate moves the list at FROM to TO, emptying FROM in the process. ++ * This function should live in skbuff.c or skbuff.h. Note that skb_migrate ++ * is not atomic, so turn off interrupts when using it. ++ */ ++ ++ ++void skb_migrate(struct sk_buff_head *from,struct sk_buff_head *to) ++{ ++ struct sk_buff *prev; ++ ++ prev = from->prev; ++ from->next->prev = (struct sk_buff *) to; ++ prev->next = (struct sk_buff *) to; ++ *to = *from; ++ skb_queue_head_init(from); ++} --- /dev/null Mon Jul 18 01:46:18 1994 -+++ work/net/atm/arequipa.c Tue Mar 11 23:10:33 1997 -@@ -0,0 +1,445 @@ ++++ work/net/atm/arequipa.c Thu Apr 10 12:13:20 1997 +@@ -0,0 +1,452 @@ +/* net/atm/arequipa.c - Application requested IP over ATM */ + +/* Written 1996,1997 by Jean-Michel Pittet and Werner Almesberger, EPFL LRC */ @@ -15143,6 +15178,8 @@ +static void make_aq_vcc(struct socket *lower,int incoming) +{ + struct atm_vcc *vcc; ++ struct sk_buff_head copy; ++ struct sk_buff *skb; + unsigned long flags; + + save_flags(flags); @@ -15161,8 +15198,13 @@ + aq_list = vcc; + } + vcc->generation = aq_generation++; ++ skb_migrate(&vcc->recvq,©); ++ vcc->rx_inuse = 0; + restore_flags(flags); + lower->file->f_count++; ++ /* re-process everything received between connection setup and ++ AREQUIPA_INCOMING*/ ++ while ((skb = skb_dequeue(©))) atm_push_arequipa(vcc,skb); +} + + diff -ur --new-file old/atm/doc/usage.tex new/atm/doc/usage.tex --- old/atm/doc/usage.tex Fri Apr 4 22:22:37 1997 +++ new/atm/doc/usage.tex Thu Apr 10 12:10:44 1997 @@ -1,7 +1,7 @@ %%def%:= %:\begin{verbatim} -%:Usage instructions - ATM on Linux, release 0.29 (pre-alpha) +%:Usage instructions - ATM on Linux, release 0.30 (pre-alpha) %:------------------------------------------------------------- %: %:\end{verbatim} @@ -38,14 +38,14 @@ \title{ATM on Linux \\ User's guide \\ - Release 0.29 (pre-alpha)} + Release 0.30 (pre-alpha)} \author{Werner Almesberger \\ {\tt werner.almesberger@lrc.di.epfl.ch} \\ \\ Laboratoire de R\'eseaux de Communication (LRC) \\ EPFL, CH-1015 Lausanne, Switzerland} -\date{April 4, 1997} +\date{April 10, 1997} \begin{document} \maketitle @@ -81,7 +81,7 @@ In order to install this package, you need \begin{itemize} \item the package itself - \url{ftp://lrcftp.epfl.ch/pub/linux/atm/dist/atm-0.29.tar.gz} + \url{ftp://lrcftp.epfl.ch/pub/linux/atm/dist/atm-0.30.tar.gz} \item the Linux kernel, version 2.0.25, e.g. from \url{ftp://ftp.cs.helsinki.fi/pub/Software/Linux/Kernel/v2.0/linux-2.0.25.tar.gz} \item Perl, version 4 or 5 @@ -98,7 +98,7 @@ distribution: \begin{verbatim} -tar xfz atm-0.29.tar.gz +tar xfz atm-0.30.tar.gz \end{verbatim} and the kernel source: diff -ur --new-file old/atm/doc/usage.txt new/atm/doc/usage.txt --- old/atm/doc/usage.txt Fri Apr 4 22:31:12 1997 +++ new/atm/doc/usage.txt Thu Apr 10 12:53:55 1997 @@ -1,4 +1,4 @@ -Usage instructions - ATM on Linux, release 0.29 (pre-alpha) +Usage instructions - ATM on Linux, release 0.30 (pre-alpha) ------------------------------------------------------------- For updates of ATM on Linux, please check the Web page at @@ -17,7 +17,7 @@ In order to install this package, you need - the package itself - ftp://lrcftp.epfl.ch/pub/linux/atm/dist/atm-0.29.tar.gz + ftp://lrcftp.epfl.ch/pub/linux/atm/dist/atm-0.30.tar.gz - the Linux kernel, version 2.0.25, e.g. from ftp://ftp.cs.helsinki.fi/pub/Software/Linux/Kernel/v2.0/linux-2.0.25.tar.gz - Perl, version 4 or 5 @@ -33,7 +33,7 @@ all the files listed above there. Then extract the ATM on Linux distribution: -tar xfz atm-0.29.tar.gz +tar xfz atm-0.30.tar.gz and the kernel source: diff -ur --new-file old/atm/saal/sscop.c new/atm/saal/sscop.c --- old/atm/saal/sscop.c Wed Apr 2 19:51:20 1997 +++ new/atm/saal/sscop.c Mon Apr 7 16:03:36 1997 @@ -1001,22 +1001,26 @@ /* K */ curr = 0; i = dsc->vr_r; - while (NORM_RX(i) < NORM_RX(dsc->vr_h)) { - if (queue_lookup(&dsc->rx_buf,i)) { - INC24(i); - continue; - } - dsc->list[curr++] = htonl(i); - if (curr >= dsc->cf_max_stat) { - send_pdu(dsc,SSCOP_STAT,dsc->list,curr*4); - curr = 0; + if (i != dsc->vr_h) { + while (NORM_RX(i) < NORM_RX(dsc->vr_h)) { + if (queue_lookup(&dsc->rx_buf,i)) { + INC24(i); + continue; + } + dsc->list[curr++] = htonl(i); + if (curr >= dsc->cf_max_stat) { + send_pdu(dsc,SSCOP_STAT,dsc->list,curr*4); + curr = 0; + dsc->list[curr++] = htonl(i); + } + do INC24(i); + while (i != dsc->vr_h && !queue_lookup(&dsc->rx_buf,i)); + if (i == dsc->vr_h) break; /* append is done right b4 send_pdu */ dsc->list[curr++] = htonl(i); + INC24(i); /* short-cut, since i < VR(H) && SD.N(S) == i in RB */ } - do INC24(i); - while (i != dsc->vr_h && !queue_lookup(&dsc->rx_buf,i)); dsc->list[curr++] = htonl(i); } - if (NORM_RX(i) > NORM_RX(dsc->vr_h)) dsc->list[curr++] = htonl(i); send_pdu(dsc,SSCOP_STAT,dsc->list,curr*4); } diff -ur --new-file old/atm/sigd/io.c new/atm/sigd/io.c --- old/atm/sigd/io.c Wed Mar 26 17:40:13 1997 +++ new/atm/sigd/io.c Wed Apr 9 13:24:24 1997 @@ -337,6 +337,7 @@ memset(&qos,0,sizeof(qos)); qos.aal = ATM_AAL5; qos.rxtp.traffic_class = qos.txtp.traffic_class = ATM_UBR; + qos.rxtp.max_sdu = qos.txtp.max_sdu = 1; /* smallest possible SDU size */ if (setsockopt(s,SOL_ATM,SO_ATMQOS,&qos,sizeof(qos)) < 0) diag(COMPONENT,DIAG_FATAL,"setsockopt SO_ATMQOS: %s",strerror(errno)); memset(&addr,0,sizeof(addr));