Version 0.79 to 2.4.0 (18-OCT-2001) ===================== Bug fixes --------- - defined 'now' in src/lib/timer.c - ia64 build fix for ASN (Chas Williams) New features ------------ - the driver for the Marconi ForeRunnerHE is in src/extra/drivers (Chas Williams, Eric Kinzie) Other changes ------------- - In general, the source tree was rearranged and the old cruft was removed - Old ad hoc build system replaced in favor of a standardized autoconfiscation - Build configuration options are now controlled by 'configure' script instead of changes to the previous 'Rules.make' file - libatm and libatmd merged into one lib: libatm - Both static and shared libraries are built by default. Binaries now built with shared library by default. - Sample atmsigd.conf and hosts.atm are now installed when doing 'make install' - RPM spec file is now available in src/extra/ - New RedHat init scripts available in src/config/init-redhat/ (John Strange) (old RedHat 4.0 scripts removed) - ATM on Linux HOWTO now included in doc/ (much derived from usage.tex). We will publish this on the home page as well as linuxdoc.org - tcpdump and libpcap ATM patches/build removed (they have been integrated into their respective packages; see www.tcpdump.org) - ATM Name Service (ANS) files coalesced into src/extra/ANS - ANS bind patch upgraded to bind-4.9.8 (untested) - rtf2e164_cc.pl removed in favor of src/extra/ANS/pdf2e164_cc.pl. The ITU no longer provides E.164 country codes in RTF format. PDF used instead. Version 0.78 to 0.79 (15-AUG-2001) ==================== Bug fixes --------- - uni.c fix for newer versions of gcc - mpoad/io.c quick fix for undefined OPEN_MAX Version 0.77 to 0.78 (7-JUL-2000) ==================== Bug fixes --------- - skb_migrate wasn't protected against functions accessing the list via skb->list - removal of MOD_xxx races in FORE 200E and atmtcp (by Jeff Garzik) - CONFIG_ATM_NICSTAR_USE_IDT77105 set NEED_SUNI_MX instead of NEED_IDT77105_MX (fix from mainstream) - ambassador.c: changed string concatenation and offset calculation breaking compilation with gcc 2.96 (by Jakub Jelinek) - nicstar.c: various locking fixes for SMP (by Rui Prior) - LANE vs. bridging build conflict solved (from mainstream) - %%u instead of %u in mpc.c - fixed formatting of /proc/net/atm/svc - /proc/net/atm/clip always added + after public address, not only if followed by private address - atmsigd now returns EINVAL if attempting to change max_sdu - atm_change_qos now calls adjust_to for additional parameter checking - sendmsg now returns error if size > max_sdu (reported by Alan Kennington) - removed explicit defaults in Config.in (by Christoph Hellwig) - Fore200E: removed #ifdef MODULE - ipcommon.c didn't export skb_migrate to modules (by Mitchell Blank) - ENI: /proc/net/atm/eni:* claimed backlog was in bytes instead of packets - br, bw, window: changed variables receiving possibly negative return values from size_t to ssize_t (reported by Alan Kennington) - LANE: fixed stray errors on lack of ATM address, ATM address change, or ESI change (by Heikki Vatiainen) - LANE: could loop forwever when trying to connect to LECS (by Heikki Vatiainen) New features ------------ - upgraded to the 2.4.0-test3-pre4 kernel Other changes ------------- - as_reject now returns the errno value in msg->reply - removed save_qos hack in svc_change_qos - atmsigd: sap_encode now always includes both max_sdu fields, even if one contains the null value for some reason (by Mohsen Souissi) - PCI updates for Ambassador, FORE 200E, Horizon, Iphase, nicstar, ENI, and ZATM (by Jeff Garzik) - removal of unnecessary #ifdef MODULE for nicstar, idt77105, and FORE 200E (by Jeff Garzik) - generalized skb_migrate to append to an arbitrary sk_buff list - iphase.c: timer initialization cleanup (from mainstream) - clip: dev->name initialization change (from mainstream) - idt77105: cleaned up timer initialization - clip.c: some general cleanup - removed redundant return in clip.c (by Heikki Vatiainen) - changed atm_change_qos to static - fore200e.c: re-enabled anti-unloading code - lec.c: now drops packets on overrun instead of growing infinite queue (by Heikki Vatiainen) - COPYING still mentioned the old led code with partial DEC copyright (reported by Chris Pimlott) - Horizon: removed const warning by casting to (hrz_flags *) - Iphase: tried to print unsigned long with %x when errors are enabled - ENI: eni_send tries to use do_tx instead of tasklet_schedule to reduce delay - ENI: removed eni_dev->backlog_len (information is already in backlog->qlen) - changed the kernel source tree references from .gz to .bz2 compression - changed mkdiff to allow more flexible selection of additional patch Version 0.76 to 0.77 (29-APR-2000) ==================== Bug fixes --------- - atmaddr.8, atmarp.8, atmdump.8, atmloop.8, esi.8 didn't print all options in bold - atmsigd crashed if an interface had more than one local ATM address - atmarpd continued to use VCs after closing if they were closed because ATMARP_SETENTRY failed (reported by Joseph Gooch) New features ------------ - upgraded to the 2.3.99-pre6 kernel Other changes ------------- - CLIP now uses NETDEV_GOING_DOWN instead of NETDEV_DOWN; also avoids "clip_device_event: unknown event 9" warning - added ubr:pcr example to qos(7) - added -V option to atmaddr, atmarp, atmarpd, atmloop, atmsigd, atmtcp, esi, ilmid - sock->sk->sleep now points to vcc->sleep (by Alexander Viro) - CLIP: ATMARP server now reponds to query for local IP address (suggested by Joseph Gooch) - updated t2a.pl Version 0.75 to 0.76 (13-APR-2000) ==================== Bug fixes --------- - ttcp_atm declared port as "short" instead of "unsigned short", yielding confusing diagnostic output New features ------------ - upgraded to the 2.3.99-pre5 kernel Other changes ------------- - eliminated eni_send-tasklet synchronization - PCA200: merged unconditional #inclusion of linux/pci.h from pre5 Version 0.74 to 0.75 (7-APR-2000) ==================== Bug fixes --------- - ENI: moved send operation into tasklet to correct synchronization (reported by Heikki Vatiainen) - MPOA: possible deadlock fix (by Heikki Vatiainen) - atm_vcc_flags_t was too small on PPC, causing an overlap with vcc->family (fixed by Chas Williams) - CLIP: needs spin_lock_irqsave instead of only spin_lock (by Rui Prior) - CLIP: clip_push may be called from an interrupt, so the kfree_skb has to become dev_kfree_skb_any (by Heikki Vatiainen) Other changes ------------- - removed INCLUDES from atm/ilmid/asn1/Makefile (suggested by Jean Marc Lacroix) - atm/maint/Makefile no longer special-cases atmdiag.c (suggested by Jean Marc Lacroix) Version 0.73 to 0.74 (2-APR-2000) ==================== Bug fixes --------- - atm_poll tried to sleep on two wait queues, which is no longer possible. Removed vcc->wsleep to solve this. (Reported by Joseph Gooch) - lec.c:lec_arp_clear_vccs changed the VCC flags of the wrong VCC, fortunately only in commented-out code - major revision of MPOA ingress and egress cache locking (Heikki Vatiainen) Other changes ------------- - removed last remnants of bogus bridging lock from lane_mpoa_init.c (reported by Heikki Vatiainen) - removed last traces of TNET1570A driver - atmdev_init still knew about ENI, but ENI now uses new-style initialization - improved Fore 200E configuration to catch useless settings already at configuration time (by Christophe Lizzi) Version 0.72 to 0.73 (29-MAR-2000) ==================== Bug fixes --------- - ambassador.c and horizon.c had module loading races (fixed by Giuliano Procida) - fore200e: one set_bit was accidently converted to clear_bit, preventing VCs from being opened (fixed by Christophe Lizzi) Other changes ------------- - fore200e: moved interrupt handler work to tasklet (by Christophe Lizzi) - fore200e: fixed SBUS DMA direction flags (by Christophe Lizzi) - fore200e: the compile no longer fails when the driver is compiled without any hardware support (and displays a warning; by Christophe Lizzi) - oops, atm/README was lagging behind a few versions Version 0.71 to 0.72 (25-MAR-2000) ==================== Bug fixes --------- - fore200e.h and lec.h didn't #include (fixed by David S. Miller ?) - atmloop.c always assumed -q to be present New features ------------ - upgraded to the 2.3.99-pre3 kernel Other changes ------------- - kernel patch still included wd.c hack (reported by David S. Miller) - removed bogus initialization of skb->rx_dev (spotted by Alexey Kuznetsov) - removed bogus lane_bridge_hook_lock (by Heikki Vatiainen) - added sparc64 support for ATM_QUERYLOOP (by Christophe Lizzi) - minor Fore driver cleanup (by Christophe Lizzi) - eni.c: moved interrupt handler work to tasklet Version 0.70 to 0.71 (21-MAR-2000) ==================== Bug fixes --------- - eni.c: fixed potential SMP deadlock on tx_wait - clip.c and lec.c didn't initialize skb->rx_dev - net/atm/svc.c:svc_connect left wait entry in queue on return in some cases - idiot bug in skb_migrate caused weird crashes - atmloop usage erroneously claimed -s was optional New features ------------ - upgraded to the 2.3.99-pre2 kernel - added atmloop.8 man page - added enqueuing result NET_XMIT_BYPASS for qdiscs that send packets on a path without dequeue (e.g. sch_atm) Other changes ------------- - ambassador.c: removed warnings when compiling with CONFIG_SMP (by Giuliano Procida) - changed drivers/atm target from atm.a to atm.o, to make initcalls work - converted eni.c to use pci_register_driver and initcall - cleaned up #ifdef hell in net/atm/signaling.c:sigd_put_skb Version 0.69 to 0.70 (20-MAR-2000) ==================== Bug fixes --------- - LEC compilation as a module still left it in the kernel Other changes ------------- - moved LANE-bridging interface code from lec.c to lane_mpoa_init.c (by Heikki Vatiainen) - made SONET and ATM statistics counters atomic to avoid cli() when reading (not updated: similar mechanism in idt77105.c and private shadow statistics of ambassador.c) - changed access to VCC and device flags (ATM_VF_* and ATM_DF_*) to bit set operations - changed flag types to structs to fail compilation of old code - changed last argument of atm_dev_register to a pointer to a bit set for easier migration - net/atm/*.c: eliminated all sleep_on and cli (except in lec.c) - ditto for eni.c and suni.c - corrected indentation of some "permanent" debugging code in zatm.c - made skb_migrate partially atomic, obsoleting yet another cli() in clip.c Version 0.68 to 0.69 (19-MAR-2000) ==================== Bug fixes --------- - ambassador.c: corrected location of initial PLX window for use on Alpha (by Giuliano Procida) - zeppelin: fixed address initialization (found by Christophe Lizzi) - atmsigd.conf man page erroneously described the option "q.2963.1" as "q2963_1" - LANE didn't compile when bridging was enabled (fixed by Heikki Vatiainen; note that bridging also needs an update which is being merged via the mainstream kernel) New features ------------ - atmsigd: added command-line option -u to set the UNI mode - added ioctl ATM_QUERYLOOP to determine supported loopback modes - added atmloop(8) option -q Other changes ------------- - added CREDITS entry of Giuliano Procida - various cosmetic changes to horizon.c (by Giuliano Procida) - ambassador.c: various bits of cleanup (by Giuliano Procida) - added -S option to ttcp_atm to set the IPv4 TOS byte (this is not really related to ATM) - changed loopback mode values to a bit set - idt77105_ioctl: returned sizeof(int) instead of 0 on ATM_GETLOOP - added phy_ops->stop to suni.c and uPD98402_stop, cleaned up suni.c in the process - removed (very obsolete) mmuio.o from net/atm/Makefile Version 0.67 to 0.68 (28-FEB-2000) ==================== Bug fixes --------- - removed potential dev_kfree_skb(NULL) from *_send of eni.c, zatm.c, iphase.c - eni.c, zatm.c, iphase.c sometimes returned PCI error codes instead of errno codes - arpd/io.c could try to de-reference entry->addr with addr == NULL (fixed by Thomas Dietz) - LANE copied more than dev->addr_len address bytes (fixed by Heikki Vatiainen) - sch_atm didn't remove filters on destroy - fixed typo in esi.c error message - esi.8 claimed to be the man page of atmarp, and it wasn't installed - added checking for VPI/VCI when sending AAL0 cells (by Mitchell Blank) - atmtcp allowed sending on receive-only VCs - various ioctl permission checks were missing (fixed by Mitchell Blank) - fore200e.c and horizon.c didn't always free skbs on send error (fixed by Mitchell Blank) - included an ugly hack to fix the wd.c driver that was broken around 2.3.47 (not related to ATM at all...) New features ------------ - upgraded to the 2.3.48 kernel - added device-independent SAR/PHY loopback setting interface (with many good ideas from Greg Banks and Mitchell Blank), and removed old loopback ioctls - new utility atmloop to set loopback mode - added "stop" to atmphy_ops (requested by Mitchell Blank) Other changes ------------- - mkdiff can now also use pre-release kernels - changed *kfree_skb to dev_kfree_skb_{irq,any} in eni.c, zatm.c, and raw.c, where necessary (with help from Heikki Vatiainen) - changed {dev_,}kfree_skb to dev_kfree_skb_any in ambassador.c, horizon.c, iphase.c, and nicstar.c (needs further cleanup) - softnet updates for LANE (by Heikki Vatiainen) - fixed firmeware license of Fore 200E driver and general 0.46/0.47 updates (Christophe Lizzi) - more CREDITS file additions - softnet updates for sch_atm - softnet updates for CLIP (also cleaned up flow control for > 1 VCC/itf; reported by Alexey Kuznetsov) - updated documentation for iproute2-2.2.4-now-ss000225 and streamlined the build procedure - PCI DMA updates for ENI driver - changed the default install location of executables and man pages from /usr/local to /usr - make install no longer installs align, aping, br, bw, delay, isp, svctor, sw_debug, sw_tcp, swc, and window - eni.c: made highly controversial aal5 = ... line more readable - moved /proc/atm to /proc/net/atm - added vcc->send function to allow for AAL-specific processing (may be set to dev->ops->send) - atm_do_connect_dev now calls bind_vcc before AAL initialization to make vcc->dev available - change_qos no longer allows changing of AAL or traffic class (by Mitchell Blank) - changes for new loopback support to fore200e driver and sparc64 code (by Christophe Lizzi) Version 0.66 to 0.67 (2-FEB-2000) ==================== New features ------------ - upgraded to 2.3.42 - added sunimode utility to set SUNI loopback mode (by Christophe Lizzi) Other changes ------------- - removed unused variable warning in net/sched/sch_atm.c - changed ENI_SETMULT from ATMIOC_SARPRV+1 to ATMIOC_SARPRV+7 - changed atmarpd's complaint about VCC-less non-ATMARP-server entries from DIAG_ERROR to DIAG_INFO (the condition is okay for an ATMARP server) Version 0.65 to 0.66 (31-JAN-2000) ==================== Bug fixes --------- - atmsigd crashed on reception of as_accept, etc., because of inverted NULL pointer test (reported by Kevin Vargo, Rui Prior, fixed by Julian Cable) - fixed various SPARC build problems (by Christophe Lizzi) - atmsigd insisted that calling party number is local in switch mode - debug switch didn't initialize any ports - net/atm/signaling.c:sigd_enq didn't properly zero the message, yielding kernel pointers partially containing junk - accept(2) didn't copy local ATM address to VCC descriptor (reported by Pedro Brandao) - ilmid/io.c didn't compile on SPARC (reported by Christophe Lizzi) - usage.txt didn't define the %: macro, leaving garbage in usage.txt New features ------------ - upgraded to 2.3.41 - Fore 200E driver now also works for SBA-200E (by Christophe Lizzi) Other changes ------------- - added various CREDITS entries - changed TIOC{IN,OUT}Q to SIOC{IN,OUT}Q (no user space rebuild required; the values are identical) - added script atm/switch/tcp/mkfiles for automatic extraction of configuration files - atmsigd called ATM_GETLINKRATE "ATM_GETLINERATE" in complaints - atmsigd tried to obtain link speed in switch mode, although it's not used - Ambassador NIC: various files still had the wrong copyright/licensing text (patch by Giuliano Procida) Version 0.64 to 0.65 (21-JAN-2000) ==================== Bug fixes --------- - fixed 32/64 bit %p formatting problem in /proc/atm/vc - atmtcp: fixed RX/TX statistics (by Jens Axboe) - sparc64-specific ioctl 32/64 bit marshalling fixes (by Christophe Lizzi, with further improvements by Jens Axboe) - zeppelin -l option handling (reported by Mike Prudence, fixed by Heikki Vatiainen) - mkpatch didn't include drivers/atm/eni.h - updated eni.h (tx->backlog_len was missing) - fixed various uint32_t build problems of user space tools by including atm.h before anything other ATM headers (first reported by Rashmi Dravid) - "natmtcp virtual" didn't parse the command line properly - natmtcp's TCP link changed VPI/VCI to 0.0 on close - CLIP: fixed crash after sending ARP (reported by Rui Prior) New features ------------ - upgraded to 2.3.40 (with help from Jens Axboe) - added sparc64 changes for ENI driver (by Heikki Vatiainen) - added the Fore PCA-200E(/SBA-200E) driver (by Uwe Dannowski and Christophe Lizzi) - added the Interphase ATM PCI (i)Chip (x575, x525, x531, etc.) driver (by Monalisa Agrawal and Peter Wang) - added ABR fields to struct atm_trafprm (by Peter Wang) - nicstar driver now supports setting of the CLP bit (by Rui Prior) - added ENI_SETMULT ioctl and enitune utility to change ENI buffer size multipliers at run time Other changes ------------- - atmsigd: changed default UNI version from 3.0 to dynamic (which defaults to 3.0) - atmtcp: removed ugly ../../net/atm/protocols.h include - ioctls now internally return -ENOIOCTLCMD if ioctl command number is not recognized - removed ATM_CREATE_LEAF ioctl (wasn't used and suggested the wrong design approach anyway) - updated README.DRIVERS - natmtcp now uses port 2812 (assigned by IANA) - moved Documentation/atm.txt to Documentation/networking - improved atm_kptr_int_t for non-Sparc architectures (by Christophe Lizzi) - removed two compiler warnings from nicstar.c - some minor nicstar cleanup (by Rui Prior) - added "vbr" and "abr" to text2qos/qos2text ("vbr" not used for anything right now) - natmtcp: added commands "create", "remove", "switch", corresponding to options -p, -r, and -s of atmtcp - natmtcp: added link type "print" (write PDU content to stdout) - natmtcp: now uses atm_kptr_int_t for VCC kernel pointer instead of unsigned long - added apologetic man page for natmtcp - renamed natmtcp to atmtcp and removed the old atmtcp - changed some user-space code to avoid patronizing "ambiguous `else'" warnings from egcs, adding as few ugly redundant curly braces as possible - fixed some other compiler warnings - kernel part: trimmed operations structure initializers which consisted mainly of NULL pointers - kernel pointers sent as opaque references to user space are now of type atm_kptr_t. Added support functions kptr_eq and kptr_print. (With help from Richard Johnson and Mitchell Blank) - removed various "overriding commands" warnings in user-space build process - mkdist now creates arcvie in current directory if ~/l/arch doesn't exist - make clean && make now works also if dependencies are present (make clean used to remove sigd/q.out.h, which the dependencies required) - atmtcp uses command bg instead of -b for backgrounding. Also, listen-bg listens and backgrounds before calling accept. Version 0.63 to 0.64 (1-DEC-1999) ==================== Bug fixes --------- - atmapi.h logic was still wrong (fixed by Christophe Lizzi) - LANE: fixed BUS filtering and net/atm/lec.c cleanup (by Heikki Vatiainen) - arpd/io.c assumed that diag() preserves errno - atmarpd didn't include QOS in output if getsockopt failed New features ------------ - /proc/atm/eni:* now also shows transmit queue and backlog length - added option "sndbuf" to atmarp - added option "sndbuf" to tc ... atm ... - /proc/atm/vc lists internal details for all VCs (flags, buffers, etc.); added ATM_VF2TXT_MAP to atmdev.h to allow translation of flag values Other changes ------------- - ATM now uses sk->sndbuf/rvcbuf instead of atm_vcc->tx_quota/rx_quota - removed rx_quota hack from zatm.c - removed net/atm/tunable.h - CLIP and sch_atm now only send packets if the VC's send queue allows them to - implemented correct "requeue" function in sch_atm - updated zeppelin(8) man page (Heikki Vatiainen) - atmarp: atmarp -q qos_spec usage is obsolete; use atmarp -q qos qos_spec instead - /proc/atm/svc now prints "N/A@xxxxxxxx" instead of "Unassigned", with the address of the descriptor in xxxxxxxx - removed all traces of CONFIG_MMU_HACKS - obsoleted ATM_SETSC (single-copy control) Version 0.62 to 0.63 (22-NOV-1999) ==================== Bug fixes --------- - horizon.c: cleared weird rate_lock/rates_lock patch conflict - saaldump output formatting was completely wrecked; added option -q for "quiet" output (no Q.2931 printing) - fixed LANE Ethernet interface MTU mapping (patch by Rob Scott) - atmsigd incorrectly rejected CONNECTION AVAILABLE (Q.2963.1) - SVC address was wrong in /proc/atm/arp if using private and public part - RESTART ACKNOWLEDGE was not sent with the correct global call reference value (reported by Peter Ryan) - zatm: usec timestamps need 64 division of x86, so this option must be unavailable on other architectures (reported by Matti Aarnio) - nicstar: added "fix3" and "fix4" (by Rui Prior) - LANE: non-proxy didn't filter packets coming from BUS (fix by Marko Kiiskila and Heikki Vatiainen) New features ------------ - upgraded to kernel version 2.3.28 - atmtcp now reports VC open/close and generates timestamps (Note: the protocol used between the kernel and the atmtcp utility has changed) - new utility "natmtcp" which combines the ATMTCP protocol, ATMTCP ("virtual") interfaces, "real" ATM interfaces, and log files (experimental) - added ILMI 4.0 MIB variables atmfPortMyIdentifier and atmfMySystemIdentifier (by Thomas Seidel) - zeppelin: new command line option -I to select interface, allowing the use of LANE with multiple physical interfaces (by Heikki Vatiainen) - UltraSparc (sparc64) support (by Christophe Lizzi) - nicstar: added IDT77105 PHY support (by Greg Banks) - added utility loop25 to control ForeRunner LE loopback mode (by Greg Banks) - added support for DNS lookup of NSAP addresses (by Rui Prior) - added utility debug/dnstest (by Rui Prior) Other changes ------------- - net/atm/tunable.h cleanup - removed SO_BCTXOPT, SO_BCRXOPT, and struct atm_buffconst - removed obsolete field "next" from struct atm_blli - changed potentially unaligned 32 bit accesses in SAAL to use read_netl (spotted by Christophe Lizzi) - added __attribute__ ((aligned(8))) to many structures containing structures which are shared by kernel and user space to enfore uniform packing on sparc64 (with help from Christophe Lizzi) - changed unsigned long to unsigned int at API for compatibility with architecture where sizeof(long) differs between user and kernel space (e.g. sparc64; suggested by Christophe Lizzi) - changed struct atmsvc_msg.{vcc,listen_vcc} from unsigned long to new type atm_kptr_int_t; changed atmsigd accordingly (NB: debugging output may strip upper bits) - changed various casts pointer->int to pointer->long->int (where the pointer does indeed only contain an int, e.g. in ioctl) for Alpha (reported by Matti Aarnio) - nicstar: changes card->membase from u32 to unsigned long - added __attribute__ ((unused)) to mpc.c and mpoa_caches.c to remove warnings about variables used only for debugging - drivers/atm/Config.in: changed ! "$foo" = "x" to "$foo" != "x" Version 0.61 to 0.62 (27-AUG-1999) ==================== Bug fixes --------- - lib/diag.c:set_logfile didn't set log_to_initialized (reported by Lars Burgstahler) - sch_atm did not use classifiers attached to the x:0 class (reported by Lars Burgstahler) - net/atm/atm_misc.c EXPORT'ed atm_return, which is an inline function (fixed by Mitchell Blank) - work-around for SO_LEVEL range problems (by Mitchell Blank) - nicstar oops fix (by Rui Prior and John Brosnan) - nicstar should now work also as non-module (by Rui Prior) - nicstar fix for chip bug showing up on 64-bit CPCI bus systems (by Jay Talbott) - cleared confusion about inclusion of suni.o when building both nicstar and ENI - suni.c now always exports suni_init - various fixes and cleanups in the Madge drivers (by Giuliano Procida) - fixed new set of atm_pdu2truesize problems by introducing atm_alloc_charge which handles the allocation too (problem report and work-around by Alexey Kuznetsov) - getsockname on unbound PVC socket caused an oops - LANE: Token Ring source route bridge support fix (by Heikki Vatiainen) New features ------------ - upgraded to kernel version 2.3.15 (mainly by Alexey Kuznetsov and Mitchell Blank) - new socket option SO_ATMPVC to retrieve the "PVC" address (PVC & SVC) (based on a patch by Jay Talbott) - zeppelin -l now also accepts only the selector byte (by Robert Slaski) Other changes ------------- - removed obsolete drivers/atm/nicstar.c.old_skb - removed all references to Arequipa (obsolete) - SO_BCTXOPT/SO_BCRXOPT are now obsolete, given that the final verdict on page flipping has been spoken in linux-kernel - interface statistics are now counted in struct net_device_stats instead of struct enet_statistics (by Mitchell Blank) - added pointer to mailing list to Documentation/atm.txt - Documentation/Configure.help now points to Documentation/atm.txt instead of directly to the Web page. - usage.tex: clarified the consequences of interrupting atmtcp - changed the highly misleading "atmarpd:ITF: no such interface" message to DIAG_DEBUG Version 0.60 to 0.61 (11-JUN-1999) ==================== Bug fixes --------- - nicstar: driver sometimes crashed when starting for 25 Mbps cards (Rui Prior) - Zeitnet driver: uPD98402.c wasn't compiled with -DEXPORT_SYMTAB when building as a module - net/atm/raw.c didn't export atm_init_aal5, so ATMTCP didn't load as a module - atmtcp could still be accessed after loading and then unloading, yielding an Oops Other changes ------------- - PPC configuration now also includes ATM (Jay Talbott) - lots of cleanup in the Madge drivers (Giuliano Procida) - tamed down a bit the tone in README Version 0.59 to 0.60 (3-JUN-1999) ==================== New features ------------ - upgraded to kernel version 2.3.3 (main change is slightly different wait queue handling; affects all drivers) Other changes ------------- - mkdiff script now takes .bz2 kernel if no .gz can be found - made a few changes to the Madge drivers to reduce the number of warnings Version 0.58 to 0.59 (3-JUN-1999) ==================== New features ------------ - upgrade to kernel version 2.2.9 - zeppelin now adjusts MTU when joining ELAN (Heikki Vatiainen) Other changes ------------- - adjusted tr interface name limit to 8 characters (down from a wasteful 9) Version 0.57 to 0.58 (3-JUN-1999) ==================== Bug fixes --------- - ENI drivers sometimes directly dereferenced pointers instead of using readl/ writel (fixed by Mitchell Blank) - nicstar driver no longer uses floating point (fixed by Rui Prior) - nicstar driver may have refused CBR VC in some cases even with enough bandwidth available (fixed by Rui Prior) - usage.tex failed to build (fixed by Bill Brooks) - zeppelin got byte order in BLLI wrong (reported by Chas Williams; fixed by Mitchell Blank and Heikki Vatiainen) - zeppelin did not work when the host had multiple ATM addresses (reported by Benoit Steiner; fixed by Heikki Vatiainen) - zeppelin incorrectly parsed -i command line option (reported by Benoit Steiner; fixed by Heikki Vatiainen) - atm_connect_vcc and /proc/atm/pvc report AAL0 now properly (reported by Zhu Qun Ying and Uwe Dannowski) New features ------------ - nicstar driver now support SONET diagnostics (by Rui Prior) - nicstar driver now works on PowerPC (by Jay Talbott) - LANE now also supports Token Ring (Heikki Vatiainen, with testing by Holger Smolinski) Other changes ------------- - major non-i386 architecture and other cleanup in ENI driver (by Mitchell Blank) - number of lec devices is 40+8 (lec0-lec39 are Ethernet and lec40-lec47 are Token Ring; Heikki Vatiainen) - lec.c and mpc.c now use atm_force_charge (Heikki Vatiainen) - net/802/tr.c limited interface names to 4 characters (fixed by Heikki Vatiainen) - zeppelin man page updated (Heikki Vatiainen) - "zeppelin.new" is now "zeppelin", the old "zeppelin" is gone - set "atm_connect" printk to KERN_DEBUG - removed ATM_SAAL from include/linux/atm.h (there never was any support for SAAL in the kernel) Version 0.56 to 0.57 (18-MAY-1999) ==================== Bug fixes --------- - atmarpd complained "invalid control msg type" when changing interface characteristics (reported by Soo-Khim Ho) - sch_atm didn't compile without CLIP (reported by Zhu Qun Ying) - LANE & MPOA: plugged a few memory leaks after failure to atm_charge (Heikki Vatiainen) - mpcd could not be killed if MPS's address was not known (fixed by Heikki Vatiainen) - nicstar: fixed the sleeping in interrupt issue (Rui Prior) New features ------------ - drivers for the Madge "Ambassador" and "Horizon [Ultra]" NICs, also known as Collage PCI 155 Server, 25, and 155 Client (by Giuliano Procida) Other changes ------------- - MPOA code cleanup and debugging printks are now conditional (Heikki Vatiainen) - removed both led/USAGE files - removed the old atmsigd (was in atm/sig.old/) - nicstar driver now works around TSQ bug on older chips (77201) (by Rui Prior, with the detective work by Jay Talbott) Version 0.55 to 0.56 (22-APR-1999) ==================== Bug fixes --------- - atm/doc/Makefile assumed . to be included in PATH when invoking rlatex (fix by Heikki Vatiainen) - usage.txt leaked Arequipa configuration examples (fix by Heikki Vatiainen) - plugged a small memory leak in led.new which occurred when using the LANE client as a proxy (Heikki Vatiainen) - atmarpd crashed when printing ATMARP table entries with flag 0x8000 set (reported by Vinay Kulkarni) - CLIP interfaces now follow netmask changes - Nicstar: 25.6 Mbps cell rate corrected (by Rui Prior) - atm_equal could loop forever when comparing NSAP-encoded E.164 addresses (reported by Valley Zhizhkun) - [AP]F_ATM[PS]VC definitions in lib/atm.h conflicted with glibc 2.1 (reported by Heikki Vatiainen and Jens Vagelpohl) - changed a few non-int main to int main (reported by Heikki Vatiainen) - changed lib/diag.c work with glibc 2.1, where stderr is no longer a constant (based on a patch by Heikki Vatiainen, also reported by Giuliano Procida) - make clean didn't remove qgen/q.test.c, qgen/qd.out.h, qgen/qd.test.c, sigd/q.out.h and sigd.old/q.out.h (reported by Giuliano Procida) - optional headers were installed even with system headers present if INSTROOT was different from / (reported by Giuliano Procida) - lib/stdint.h was used even on systems that had a "real" stdlib.h (based on a patch by Heikki Vatiainen, also reported by Giuliano Procida) - renamed net/atm/misc.c to atm_misc.c to avoid name clash with drivers/char/misc.c on include/linux/modules/misc.* (reported by Borek Lupomesky) New features ------------ - new ioctl ATM_GETLINKRATE to query link rate of an interface (suggested by Vitaly Lavrov) - new atmsigd.conf option io max_rate to specify rate to signal if application requests the "maximum" - added decription of CONFIG_ATM_LANE and CONFIG_ATM_MPOA to the kernel configuration help (Heikki Vatiainen) - added description of LANE to usage.tex (Heikki Vatiainen) - new function atm_force_charge to unconditionally add data to a receive buffer Other changes ------------- - atmsigd now determines maximum link rate by querying interfaces (suggested by Vitaly Lavrov) - moved local address registry from a global table to VPCI structures - changed unknown net device notification severity from KERN_ERR to KERN_WARNING - atmarpd now overwrites old atmarpd.table on startup (it used to keep it until the first configuration change) - shutdown(2) of native ATM VCs now returns 0 instead of -EOPNOTSUPP (suggested by Mitchell Blank) - Nicstar: IRQ sharing is now allowed (by Rui Prior) - Nicstar: default maximum number of cards is now 4 (by Rui Prior) - Nicstar: when compiled as a module, the driver may no longer be removed while in use (by Rui Prior) - Nicstar: loss of cells is no longer reported as a plain CRC error (by Rui Prior) - atmsigd now always clears the endpoint reference flag if in UNI 3.0 mode (based on a patch by Heikki Vatiainen) Version 0.54 to 0.55 (1-MAR-1999) ==================== Bug fixes --------- - SELECT_TOP_PCR didn't take intro account the "pcr" field, causing SVC with QoS pcr=xxx to be set up at link speed - qos_equal didn't detect differences in the "pcr" fields - sch_atm only accepted parent == root or absent (reported by John Loughney) - sch_atm:atm_tc_put accessed flow structure after kfree'ing it - sch_atm:atm_tc_change didn't put excess traffic class if class creation failed - sch_atm:atm_tc_dump_class didn't return class ID in tcm->tcm_handle - sch_atm:atm_tc_delete refused to delete classes because it expected ref == 1, but ref == 2 (reported by John Loughney) Version 0.53 to 0.54 (19-FEB-1999) ==================== Bug fixes --------- - led.new: fixed build problem and warning (Heikki Vatiainen) - fixed LANE arp cache timeouts (Heikki Vatiainen) - ilmid -i option fell through into -l, causing logging to go into a file named after the local address - flipping the highest bit of ep_ref made it negative which was erroneously interpreted to mean "absent" (reported by Giuliano Procida and Chas Williams) - ilmid used the result of AsnOidCompare inconsistently, causing network prefix registration to fail with some switches (based on a patch by Giuliano Procida) New features ------------ - tc:q_atm: new option "clip" to select Classical IP processing of inbound traffic - new sch_atm class attribute TCA_ATM_STATE to retrieve VC state Other changes ------------- - led.new: improved handling of LANE flush protocol (Heikki Vatiainen) - copied USAGE from led/ to led.new/ - added description of ilmid options -i and -u to USAGE (Heikki Vatiainen) - ilmid -u now also works without -DDYNAMIC_UNI (all values but the default are refused) - tcpdump patch updated to tcpdump version 3.4 (Heikki Vatiainen) - updated "tc" patch to iproute2 version 2.1.99-now-ss990203 Version 0.52 to 0.53 (9-FEB-1999) ==================== Bug fixes --------- - atmsigd: selecting the UNI version via compile-time options didn't yield the desired result in some cases (reported by Vinay Kulkarni and others) - ATM VCCs now use struct sock, as required by protocol-independent layer starting with recent 2.1 kernels (by Mitchell Blank) - led fixes: htons/htonl bugs in LANEv2 code, one duplicate close() removed (by Heikki Vatiainen) New features ------------ - upgraded to the 2.2.1 kernel (by Mitchell Blank) - LANE: added bridging support (by Heikki Vatiainen) - complete rewrite of led (in led.new), which is now leaner and no longer contains code (c) Digital (by Heikki Vatiainen) - added macros for local AESA format and group addresses, and support in atm2text (by Heikki Vatiainen) Other changes ------------- - ENI: buffer sizes are now limited to MID_MAX_BUF_SIZE even if max_sdu > MID_MAX_BUF_SIZE/3 (reported by Andrew Lunn) - plenty of NICStAR changes (Rui Prior and Mitchell Blank) - LANE interface to upper layer looks more like Ethernet, so adding bridge and 802.1Q support is easier, and tcpdump does not need any extra patches (by Heikki Vatiainen) Version 0.51 to 0.52 (5-DEC-1998) ==================== Bug fixes --------- - atmsigd crashed when receiving STATUS ENQUIRY for call in Null state (reported by Heikki Vatiainen) - outbound endpoint reference didin't have the 16th bit toggled (fixed by Andrew Lunn) - lec.c: fixed a bug in kernel which could cause kernel part to deadlock when signalling was not started successfully (by Heikki Vatiainen) - MPOA: bug fixes and other changes, see atm/mpoa/CHANGELOG (by Heikki Vatiainen) New features ------------ - LANE: both kernel & daemon: support for ELANs which have MTUs greater than 1516 (by Eric H. Kinzie) - MPOA: can now ask LECS for configuratino information (by Heikki Vatiainen) Other changes ------------- - zeppelin.8: updated (Heikki Vatiainen) Version 0.50 to 0.51 (6-NOV-1998) ==================== Bug fixes --------- - atmsigd: typo prevented kernel.c from compiling with UNI30 disabled (fix by Andrew Lunn and Uwe Dannowski) - option -u crashed ilmid (reported by Michael Wolf) Other changes ------------- - bearer capability is now set to "CBR" for CBR (suggested by Heikki Vatiainen) Version 0.49 to 0.50 (3-NOV-1998) ==================== Bug fixes --------- - atmsigd didn't compile for -DUNI31 -DALLOW_UNI30 (fixed by Richard Gooch) - atmsigd crashed on as_bind and also had problems with as_connect after as_bind (reported by Heiko Krupp, Heikki Vatiainen, and many others) Other changes ------------- - atmsigd now enables tracing by default (use -t 0 to turn it off) - added "terminate" message to test/isp - mpoad defaults to UBR if service category is absent (by Heikki Vatiainen) - LANE now avoids blocking intact connections when other connections have problems by queuing packets independently per destination while waiting for a connection (by Heikki Vatiainen) Version 0.48 to 0.49 (1-NOV-1998) ==================== Bug fixes --------- - q_atm.c passed TCA_ATM_EXCESS even if zero, while the kernel expected it to be absent in this case (changed q_atm.c) - q_atm: tc class show didn't separate fields properly with blanks - removed double inclusion of atm/config from mkdist New features ------------ - upgraded to the 2.1.126 kernel Other changes ------------- - "new" atmsigd is now the default (atm/sigd got renamed to atm/sigd.old, atm/sigd.new to atm/sigd) - updated extra/tc/README Version 0.47 to 0.48 (30-OCT-1998) ==================== Bug fixes --------- - ilmid didn't recognize the -u option - ATM_GETCIRANGE copied wrong amount of data (fix by Heikki Vatiainen) - sch_atm didn't compile without policing enabled (reported by Calin Poenaru) - BHLI octets: qgen/msg.fmt allowed nine instead of eight bytes for ISO and user specified, include/linux/atmsap.h:ATM_MAX_HLI was 7 instead of 8 (by Damian Gilmurray and Paisit Thamsakorn) - MPOA: bug fixes and other changes, see atm/mpoa/CHANGELOG (by Heikki Vatiainen) New features ------------ - ilmid: new option -i to set local IP address (suggested by Andrew May) - ilmid now also supports the MIB variables atmfAtmLayerMaxVpiBits and atmfAtmLayerMaxVciBits (based on a patch by Uwe Dannowski) Other changes ------------- - ilmid: search for local IP address didn't consider LANE interfaces (lec*) - consolidated most of the various calls to gethostbyname and friends into text2ip (libatmd) - corrected some glitches in net/sched/sch_atm.c (untested) - removed debug/encopy, debug/endump, and debug/zndump from the distribution. They were almost useless and caused problems with make depend - SYMFILES in qgen/Makefile now determines location of atmsap.h at run time to avoid problems when kernel headers are not in /usr/include/linux (reported by Uwe Dannowski) Version 0.46 to 0.47 (6-OCT-1998) ==================== Bug fixes --------- - qgen didn't build for all UNI versions (fixed by Richard Gooch) New features ------------ - ilmid: new option -u to set UNI version (3.0, 3.1, or 4.0). Only available if compiled with -DDYNAMIC_UNI. Other changes ------------- - ilmid: getIpAddr: improved robustness and added debugging output Version 0.45 to 0.46 (5-OCT-1998) ==================== Bug fixes --------- - ENI and ZATM driver used to read IRQ directly from PCI configuration, bypassing any fixups (reported by Richard Gooch) - atmsigd.new: removed "Known bug" memory leak (when tracing) - led/lec_ctrl.c: signalling bug fixed, max_sdu now has correct value instead of 1 (by Heikki Vatiainen, reported by Josh Baratz and Wolfgang Platzer ) - lots of MPOA bug fixes and other changes, see atm/mpoa/CHANGELOG (by Heikki Vatiainen) - atmsigd reported "Q.2931.1" when configured to support Q.2963.1 New features ------------ - atmsigd.new now supports run-time configuration of the signaling protocol version (via atmsigd.conf) Other changes ------------- - added 16W bursts to ENI burst size configuration (NB: 16W may actually be *slower* than 8W) - lec_ctrl.c: zeppelin now uses LE_REGISTER protocol when TLVs are associated with client's MAC address (by Heikki Vatiainen) Version 0.44 to 0.45 (1-OCT-1998) ==================== Bug fixes --------- - ENI driver didn't do four-word bursts on RX for sizes < 8 words - arequipad, atmarpd, bus, lecs, les, mpcd, sw_*, and zeppelin silently ignored extra command-line arguments instead of complaining New features ------------ - ENI: added configuration options to fine-tune burst sizes (in reponse to incompatibility found by Dave Airlie) Other changes ------------- - changed the way how ATM-specific data is stored in skbs. Tentatively updated the the stack, including drivers. Use CONFIG_ATM_SKB to enable the new-style skbs. - Rules.make no longer discards the previous value of LDLIBS - sw_tcp now only establishes bi-directional VCs if both directions are really requested in the QoS structure - moved manual switch control from sw_tcp to the generic switch code; "tcpswc" is now called "swc", the corresponding switch.conf clause is now 'control ' instead of 'option control ""' Version 0.43 to 0.44 (24-SEP-1998) ==================== Bug fixes --------- - CONNECT messages no longer contain the AAL type IE if EP ref is present and non-zero (reported by Heikki Vatiainen) - SSCOP: added mode for partial compatibility with Q.SAAL1 (to get rid of warnings reported by Heikki Vatiainen and of interoperability problems with Virata switches reported by Damian Gilmurray) - ilmid now returns a valid response for atmfMyIpNmAddress (by Uwe Dannowski) - configuration on-line help for CLIP didn't work because tag was different from configuration variable - atmsigd crashed when adding multiple local addresses on an interface (reported by Heiko Krupp) - atmaddr.8 said "ATMARP" in the header (reported by Hans Einsiedler) - net/atm/misc.c didn't include linux/config.h and linux/module.h, causing symbols to be missing when rebuilding the kernel after enabling modules (reported by Thomas Parvais) New features ------------ - new maintenance utility tcpswc to control sw_tcp "switches" (description at the end of switch/tcp/README) - added support for setting the CLP bit (untested; see doc/README.CLP) - added support for policing to the ATM qdisc (untested; see extra/tc/README) - ilmid: added support for atmfAtmLayerUniVersion (by Uwe Dannowski) Other changes ------------- - updated the NICStAR driver to version 008b (by Rui Prior) - new switch fabric function fab_option to pass configuration options - atm2text now also supports unspecified and wildcard components in PVC addresses - added configuration option CONFIG_ATM_CLIP_NO_ICMP to discard packets for which no ATMARP entry exists silently instead of sending an ICMP (this is an ugly hack-around for the revalidation problem reported by Gerald Hanusch) - various minor documentation updates - atmarpd now sends InARP requests when active VC setup completes in order to tell the peer our IP address(es) Version 0.42 to 0.43 (21-AUG-1998) ==================== Bug fixes --------- - trying to use atmtcp when compiled as a module with the module not loaded crashed the kernel New features ------------ - upgraded to the 2.1.117 kernel - included NICStAR driver by Rui Prior at INESC (this driver also includes parts of an earlier driver written by Matt Welsh, then enhanced by R. D. Rechenmacher and Jawaid Bazyar) - new atmsigd with support for multiple signaling entities (experimental) Other changes ------------- - removed register dumping code from suni.c (leaked out into the distribution) Version 0.41 to 0.42 (19-AUG-1998) ==================== Bug fixes --------- - atm.patch was out of sync again :-( Version 0.40 to 0.41 (19-AUG-1998) ==================== Bug fixes --------- - 0.40 contained an older atm.patch than the one that was supposed to go with it (some changes to sch_atm and MPOA were missing) - kernel didn't build with LANE enabled and MPOA disabled (fix by Mitchell Blank Jr) New features ------------ - MPOA now also supports CBR SVCs (by Heikki Vatiainen and Sampo Saaristo) Other changes ------------- - atmtcp may work as a module (untested) - kernel code now uses capabilities instead of suser() - removed obsolete recycle_buffer code - distribution now also includes mkpatch, the script that's used to create atm.patch Version 0.39 to 0.40 (13-AUG-1998) ==================== Bug fixes --------- - ilmid defined the value of "invalid" as 0 instead of 2 (fix by Timo Parnanen) - bash-2 doesn't like for n in $(SUBDIR); ... if SUBDIR is undefined (fix by Heikki Vatiainen) - LANE still cleared ATM_VF_RELEASED instead of calling atm_async_release_vcc, which apparently led to stray kernel crashes in signaling (found with a lot of help from John McPherson) - ATM qdisc now properly re-allocates skb memory to grow headers, if necessary - atm/switch/Makefile didn't build SUBDIRS - atmarpd sent garbage ATM addresses in InARP responses over PVCs (reported by Stefan Keller-Tuberg) New features ------------ - MPOA (Multi-Protocol Over ATM) client support written by Heikki Vatiainen and Sampo Saaristo - LANE client (zeppelin) now also supports LANE2 (by Heikki Vatiainen) Other changes ------------- - accept() now also returns on ATM_VF_CLOSE - ATM qdisc now uses the same data format on rtnetlink as other qdiscs; new option for user-provided headers - atm/switch can now use "external" routing (e.g. provided by the fab control) Version 0.38 to 0.39 (4-AUG-1998) ==================== Bug fixes --------- - added missing #include in tcpsw.c (fixed by Heikki Vatiainen) - atmsigd allowed both sides to initiate PCR modification; Q.2963.1 only allows the connection owner (i.e. the caller) to do this - atmarpd no longer tries to use incoming SVCs with zero backward bandwidth for ATMARP - ENI and ZATM drivers didn't invoke vcc->pop on dev->ops->send failure - make install didn't probe correctly for presence of /usr/include/stdint.h (needed on GLIBC 1 systems) - net/atm/resources.c didn't export bind_vcc to modules (fix by Oliver Frommel) - net/arpd/atmarp didn't build without make depend (reported by Stefano Giacometti) - clip_mkip zeroed vcc->rx_inuse and didn't take into account that clip_push calls atm_return, which subtracts from vcc->rx_inuse too - fixed typos in qgen/uni.h (and msg.fmt) for causes 38, 41, and 43 - atmsigd wrote exit trace to stderr when it had a dump directory and vice versa - documentation still claimed that atmtcp yields messages at boot time New features ------------ - added flow to ATM VCC mapping queuing discipline (experimental) - module for setting up ATM PVC/SVC mappings with "tc" in extra/tc (see extra/tc/README) - atmarpd: new request type art_query to request resolution without VC setup - atmarp: new undocumented option -Q to test art_query - added ATMTCP interfaces that survive disconnects (persistent; new atmtcp(8) options -p and -r; new ioctls ATMTCP_CREATE and ATMTCP_REMOVE) Other changes ------------- - zeppelin didn't explicitly set the AAL type for outbound connections (by Heikki Vatiainen) - CLIP also allows SVCs to have no idle timeout at all (timeout = 0) - moved SUNI private ioctls (SUNI_GETLOOP and SUNI_SETLOOP) from drivers/atm/suni.h to include/linux/atm_suni.h - atmarpd now shows QoS information for VCs where it differs from the default or where no default is applicable - removed the file atm/WARNING, which gave an overly pessimistic perspective of the state of things - switch: fab_op now returns the cause value plus (optionally) a pointer to diagnostics in the callback instead of a simple okay/not okay indication - updated and corrected the atmtcp man page - further cleanup of the build procedure - README now mainly refers to http://lrcwww.epfl.ch/linux-atm/info.html - updated and trimmed BUGS - added a note to CREDITS indicating its obsolescence Version 0.37 to 0.38 (25-JUN-1998) ==================== Bug fixes --------- - fixed the remaining few #include - invoking fcntl() or socketpair() on an ATM socket caused an "Oops" (reported by Jonathan Chan) - CLIP PVCs caused an "Oops" when cat'ing /proc/atm/pvc (reported by Marko Kiiskila and Robert Olsson) - atm/qgen/default.nl wasn't removed after build failure - debugging switch (sw_debug) did not stop operations after the first error - svc_accept returned apparent success instead of -EAGAIN, usually leading to a later -ENOTCONN - ttcp.c didn't initialize port_name, leading to erratic behaviour when making slight changes to the build process - atm_pdu2truesize diverged from alloc_skb, leading to sudden failure of VCs or of ATMARP (reported by Robert Olsson) - corrected use of '~' when applied to unsigned longs representing memory addresses in aread, ENI, and ZATM (reported by Wai-Sun Chia) - atmtcp and LANE didn't use bind_vcc when setting up control VCs - atmtcp got ENOMEM/EBUSY wrong when failing to create an interface - sig level in atmsigd.conf didn't affect UNI diagnostics New features ------------ - upgraded to the 2.1.105 kernel - added ATMTCP "switch" in atm/switch/tcp - atmtcp: new mode -s to connect to an ATMTCP "switch" - atmtcp: new option -d for debugging output - added -b option (the usual "background") to switch/relay.c Other changes ------------- - changed "PDU" to "SDU" in the atmtcp(8) man page - atmarpd now includes the interface netmask in ATMARP table dumps - added ATM devices also to the Alpha architecture, because at least ATMTCP works (by Wai-Sun Chia) - added the removal of -Wmissing-prototypes to the 0.37 changes - removed -Wcast-align from Rules.make because of a conflict with /usr/include/socketbits.h of glibc 2 on Alphas (reported by Wai-Sun Chia) - atmsigd.conf.4: documented that debug log stderr works too - sap_equal now also allows wildcard matches for BHLI (with SXE_COMPATIBLE) - atmsigd now uses -m instead of -N and -A - atmsigd.conf now uses sig mode instead of sig net Version 0.36 to 0.37 (6-JUN-1998) ==================== Bug fixes --------- - lib/atm.h defined AF_ATMPVC to 20, but the correct value is 8. Likewise, AF_ATMSVC should be 20, not 21. (Reported by Luke Diamand) - fixed bad ASN encoding in ilmid (by Vesa-Matti Puro) - make install and make instdirs didn't stop on error New features ------------ - upgraded to the 2.1.104 kernel - included a script to demonstrate the debug switch (see switch/debug/README) Other changes ------------- - moved definitions not used by the kernel from linux/atmarp.h to atmarp.h - removed linux/atm_stdint.h (linux/types.h has now caught up) - changed ENI and ZATM driver to use new PCI interface - net/atm/clip.c no longer uses ether_setup (suggested by Alexey Kuznetsov) - more header file cleanup (main change: applications should now #include instead of #include ) - removed -Wmissing-prototypes from Rules.make because of a conflict with include/linux/byteorder/swab.h Version 0.35 to 0.36 (23-APR-1998) ==================== Bug fixes --------- - changed the numeric values of PF/AF_ATMPVC/SVC and SOL_ATM/AAL to avoid conflicts with other allocations. This breaks binary compatibility with ATM programs compiled under older kernels - RESTART ACK was sent with the wrong class when acknowledging the restart of the indicated virtual channel (fix by Mohsen Souissi) - RELEASE was retransmitted forever (to avoid having to perform a RESTART), although it's sufficient to retransmit once and then drop the connection - esi.c checked the kernel version code without including linux/version.h - CLIP changes magically fixed hangs on SICGIFCONF (reported by Wayne Salamon) - atmsigd usually didn't set pvc.sap_family in ISP messages New features ------------ - added build-time option -DTHOMFLEX to send RESTART when SAAL comes up, which works around a bug in some Thomson Thomflex 5000 switches (by Mohsen Souissi) - atmtcp: new option "-i itf" to request a specific interface number - the "debug switch" (switch/debug/sw_debug) is now capable of successfully signaling a UNI 3.x call (see switch/debug/README for details) Other changes ------------- - atm_equal can now also compare PVC addresses. The argument type has therefore been changed from struct sockaddr_atmsvc * to struct sockaddr * - moved driver-private data from skb->atm.* into skb->cb - complete redesign of communication between atmarp(8) and atmarpd(8) (now uses a UNIX domain socket; suggested by Alexey Kuznetsov) - atmarp -a now also produces correct output if atmarpd is running with -d - removed clip(8) - moved atmarp(8) from atm/ip into atm/arpd, removed atm/ip - /proc/atm/svc shows listening sockets again - cleaned up a few cases where diag(...,DIAG_FATAL,...) was followed by an "else" or a "return". - atmsigd now uses Unix domain sockets (instead of named pipes) to communicate with non-kernel ISP users (updated test/isp too) - net/atm/resources.c:atm_dev_register can now be asked to assign a specific interface number (-1 yields the old behaviour) Version 0.34 to 0.35 (27-MAR-1998) ==================== Bug fixes --------- - ilmid compared memcmp results with -1,1, which fails under optimization (fixed by Damian Gilmurray) - various fixes and cleanup in how CLIP interacts with the neighbour cache (spotted by Alexey Kuznetsov) - Rules.make complained about missing "optprocess" command on some occasions New features ------------ - upgraded to the 2.1.90 kernel - added some components for ATM switch control (not properly integrated yet, so they don't do anything useful at the moment; written by Roman Pletka) Other changes ------------- - eliminated various compiler warnings when compiling with glibc2 - removed clip_hard_header (suggested by Alexey Kuznetsov) Version 0.33 to 0.34 (13-MAR-1998) ==================== Bug fixes --------- - eni.c didn't include config.h (fix by Pete Wyckoff) - (yet another) VCC list handling bug (fixed by Heikki Vatiainen) - kernel also applied idle timeout to CLIP PVCs - make clean didn't remove test/errnos.inc - atmsigd errored as_connect and as_accept with as_close instead of as_error - eni: bandwidth was sometimes reserved for UBR VCs - eni: checking of bandwidth changes was broken - eni: error handling after failed bw change checks destroyed the free list - test/errnos.inc sometimes wasn't generated because of mtime granularity (fix by Brian Armstrong and Corinne Rosier) - fixed use of return code of get/put_user and copy_from/to_user - kernel: fixed a few minor race conditions - ATM_GETADDR left address list locked on fault - maximum length of high layer information was 7 bytes instead of 8 for ISO and User Specific high layer information (reported by Damian Gilmurray) - some tools didn't include errno.h although they use errno or Exxx - atmsigd usually accessed deallocated memory when writing traces, which sometimes led to crashes (reported by Heikki Vatiainen) - indentation of the first two lines of UNI signaling messages in traces was missing - LANE: duplicate data direct connections to entities where we already have a connection are now forbidden. LES and BUS can now co-reside. (Reported by Jean-Francois Moine, fixed by Heikki Vatiainen) - LANE: plugged a file descriptor leak (by Heikki Vatiainen) - atmsigd.conf.4 incorrectly stated that diagnostics must have a higher priority than the specified level to get printed (they're also printed if their priority is equal to that level) - zatm driver didn't virt_to_bus the back pointer of TX rings, leading to crash after sending the 32nd PDU of a VCC (reported by Ajay Bakre) - zatm_feedback sometimes returned with interrupts disabled - ENI driver didn't treat requests for UBR at link speed as "unlimited" and allocated one shaper for each such VCC - atm_async_release_vcc now has its own flag ATM_VF_CLOSE. Overloading ATM_VF_RELEASED caused hung SVCs under some conditions. - atmsigd sometimes released listening sockets before kernel completed its cleanup, yielding warnings and zombies - atmsigd accessed already deallocated data structures when handling unparseable signaling messages New features ------------ - upgraded to the 2.1.79 kernel - CLIP now handles NETDEV_CHANGE (proposed by Pete Wyckoff; untested) - various minor signaling changes for operation as switch control - new device operation proc_read: device drivers can now register in /proc (e.g. /proc/atm/eni:0) - added some more BHLI definitions to include/atmsap.h, including draft mapping of well-known TCP/UDP port numbers - added support for TIOCOUTQ/TIOCINQ on native ATM - new library function sap_equal - added convenience function atmpvc_addr_in_use to linux/atm.h - major overhaul of "isp", which is now a good tool for signaling regression tests. See atm/test/README.isp - LANE can now be compiled as a kernel module (by Heikki Vatiainen) - new tool debug/svctor.c to torture signaling by setting up and releasing lots of SVCs (see the source for details) Other changes ------------- - cleaned up the copying terms: libraries are now covered by LGPL instead of GPL and qgen doesn't "taint" the code it generates - atmarpd: IP addresses are now __u32 instead of unsigned long - atmarpd: changed printf("... %08x ...",(unsigned long) ptr) to %p ...",ptr - /proc support now allocates inode numbers dynamically - added comment to clarify motivation for useless buffer alignment in aread.c (reported by Jeon Jong Hwan) - suni.c and uPD98402.c: SONET_GETSTATZ no longer clears the statistics if the copy faults - ilmid should now work on any interface (patch by Heikki Vatiainen) - changed all __uNN of tools to uintNN_t for glibc2-compatibility - added stdint.h to lib for compatibility with future versions of glibc2 - various other evil hacks in tools to make things compile with glibc2 - the NIC debugging programs ed, encopy, endump, zndump, and znth are no longer built and installed by default - for compatibility with POSIX 1003.1g, accept now returns ECONNABORTED instead of ECONNREFUSED if connection is already gone (proposed by Heikki Vatiainen) - listening sockets now return instantly if the signaling demon dies - various minor LANE updates to track API changes (by Heikki Vatiainen) - SUNI now also warns if signal is missing at initialization time - zatm: added work-around for unfair buffer space accounting - clarified some of atmarpd's diagnostics - documentation updates Version 0.32 to 0.33 (19-NOV-1997) ==================== Bug fixes --------- - SSCOP did poll sequence number comparisons in the (data) sequence number space, typically leading to periodic SSCOP restarts (reported by Heikki Vatiainen) - atmsigd now releases calls on receipt of STATUS with call state 0 (reported by Heikki Vatiainen) - qgen tried to print the names of unnamed groups (fix by Simon Leinen) - make clean in qgen left all the .c and .h files produced by qgen - minor fixes to signaling message format description (qgen/msg.fmt, previously qgen/uni*) - /usr/include/atm.h was calling itself "atmlib" (found by Leena Chandran) - atmsigd: the address format of the calling party number was used to determine the format of the called party number in a SETUP message - added some semicolons to Rules.make for bash 2.0 compatibility (by Tan Chang Hu and Rolf Kunisch) - select/poll indicated an exception when a non-blocking connect terminated. Now it indicates writability, and an error only if the connect failed. - LES/BUS can now co-exist at the same address (by Heikki Vatiainen) - fixed race condition between asynchronous release (e.g. on ATMARP idle timer expiration) and signaling demon response - fixed a typo "[itf]." instead of "[itf.]" in atmsigd.conf.8 - "ATM drivers" kernel configuration section is no longer a top-level menu item but it's now under "Network devices" - sigd_close forgot to purge VCs not connected to devices (e.g. closing ones), so they hung - the list of unconnected VCs was sometimes garbled - atmsigd printed null string for as_itf_notify message name when debugging - Arequipa: check_aq_vcc also accepted VCs that were already released by signaling - ATM_VF_PARTIAL and ATM_VF_BOUND had the same value - atmaddr still used old calling convention of ATM_GETNAMES - the atmarpd man page referred to atmarpd as "atmsigd" - various atmtcp bug fixes - atm_recvmsg sometimes returned with interrupts disabled (reported by Pete Wyckoff) - fixed ttcp_atm dependencies (.depend contains dependencies for "ttcp.o") - UNI message format: "more" was missing for def_pck_size - eni/suni didn't compile as modules (fixed by Pete Wyckoff and Ladislav Lhotka) - further net/atm/Makefile cleanup - arequipa_close always left the socket with arequipa_expect enabled. Now it returns it to the previous state. - ENI driver was leaking buffer memory on failure of set_tx - atmarpd didn't print symbolic names of "new" flags (ATF_ARPSRV, etc.) - ATM ARP server didn't make client entries public (reported by Tom Mahieu) - drivers/atm/Config.in had extra "endmenu" (fixed by Ladislav Lhotka) - atmarpd got confused when receiving InARP reply without source ATM address - atmsigd sometimes didn't stop timers if Q.2963.1 wasn't enabled - when rejecting a call, the kernel freed the VCC twice New features ------------ - merged source tree (except Arequipa, single-copy, and various NIC drivers) with 2.1.65-Linus tree - qgen can now handle repeated information elements - added ATM_SETESI[F] ioctl and esi utility (boards without a real ESI in ROM should now set the default ESI to 0x000000000000) - new socket option SO_ATMSAP along with struct atm_sap (using a fixed-size BLLI array instead of the linked list in struct sockaddr_atmsvc) - added Q.2963.1 PCR modification in signaling and the ENI driver - aread: new option -c to print received data as characters (similar to od -c) - new tool test/align to test handling of mis-alignment in NIC drivers - atmsigd now supports policy restrictions for incoming/outgoing calls (see atmsigd.conf.4, "policy") - atmsigd can now also use a pair of named pipes (or, actually, any named object in the file system) for communicating with the user of signaling (normally the kernel) - new tool called "isp" (for "Internal Signaling Protocol") to talk ISP with atmsigd over named pipes - new functions sap2text and text2sap to converts SAPs to/from textual representation, and a sap(7) man page - new traffic parameter field "pcr" to indicate the desired PCR. min_pcr and max_pcr can the be used to indicate the acceptable range. - new function atm_pcr_goal to help drivers to interpret traffic parameters Other changes ------------- - removed some more obsolete CLIP-related ioctls - qgen: simplified generation of engines with a prefix other than "q" or "qd" - ENI and ZATM drivers now use shareable interrupts - cleaned up some 32bit-isms in ENI driver - cleaned up several 32bit-isms in SSCOP (reported by Tan Chang Hu) - SSCOP: work-arounds for buggy ntohl prototype in some early versions of glibc (reported by Tan Chang Hu, further explored by David S. Miller and Richard Henderson) - started updating the ZATM driver for 2.1 (still crashes under load) - added missing 2.1 pieces in ENI's SUNI driver - added __initfunc and __initdata where appropriate - tools tree now compiles under 0.31 (2.0.25 kernel) and 0.33 (2.1.55 kernel) - gratuitous improvement of identifier tree allocation in qgen - the interface number is now optional for sonetdiag (like for atmdiag) - started implementing the kernel side of point-to-multipoint signaling support - /proc/atm/arp now displays "resolving" or "expired" (with the number of times the entry is referenced) instead of "incomplete". - moved ATM_MAX_BLLI from linux/atm.h to linux/atmsap.h - changed ttcp_atm to use SO_ATMSAP (if available) to set BHLI Note: ttcp_atm previously didn't use a BHLI, so old and new versions of ttcp_atm don't interoperate. - updated all other programs using SAPs too, except for LANE - ENI: failure to allocate a traffic shaper now yields EBUSY instead of EAGAIN - instead of just complaining, the ENI driver now handles all kinds of mis-alignment in the TX path properly - re-implemented send and receive side of Arequipa - merged qgen/uni3x and qgen/uni40 into msg.fmt - added missing Q.2931/UNI 4.0 items to qgen/q2931.h and msg.fmt - also added BLLI L3 H.310 codepoint with related encodings - various file name and identifier changes to give a more appropriate name (e.g. "uni" or "call") to something that's never been Q.2931 - added library dependencies - atmsigd produces more readable and usually more comprehensive debugging output - atmsigd.conf.4 now mentions that -d is the debugging output addict's choice - all programs accepting -l syslog now also accept -l stderr. (This is useful for atmsigd if atmsigd.conf sets logging to something else.) - atmsigd now issues ATM_GETADDR ioctls on the signaling socket, not on the kernel socket - WARNING: text2qos: "pcr" is no longer a synonym for "max_pcr" ! - text2qos now refuses min_pcr=max - device driver interface: removed vcc->peek; device drivers now choose their own allocation strategy (change motivated by bug report from Furquan Ansari) - drive driver interface: new helper functions atm_charge/atm_return to handle buffer space allocation - device driver interface: vcc->push no longer allocates buffer space. This is now done by the driver, via atm_charge - updated eni, zatm, and atmtcp to use the new mechanism - zero padding in eni driver failed due to mis-alignment on some systems (fixed by Pete Wyckoff) - various compiler warnings removed (by Pete Wyckoff) - removed support for pre-AREQUIPA_WORK mechanism - arequipa close mechanism cleanup - further cleaned up QOS parameter checking - new ISP message as_identify for parallel call processing (not supported yet) - zatm: renamed struct zatm_thist to struct zatm_t_hist after wondering myself what on earth "this t" could be ... - doc/Makefile now invokes dvips with -o Version 0.31 to 0.32 (10-JUL-1997) ==================== Bug fixes --------- - manipulation of local ATM addresses didn't check for permission New features ------------ - ilmid now supports the system group and a couple of ILMI MIB objects (by Scott Shumate) - device and VCC allocation is now dynamic - E.164 addressing support and corrections to address coding in uni3x/uni40 (by S. A. Wright, T. C. Jepsen, and Z. Zhang) - support for device de-allocation via per-device operation dev_close Other changes ------------- - upgrade to kernel version 2.1.37 - ENI driver cleanup (uses readl/writel, skb_put, etc.) - socket option handling has changed: optval is now void * (to improve compile-time type checking) and optlen is int (not int *) in getsockopt - socket option "names" now encode the level and the size (based on an idea of Elwyn Davies) - cleaned up some of the #includes in net/atm/proc.c - total rewrite of ATMTCP (now the data forwarding is done in user space, which makes things slower but a lot more flexible) - separated PDU parsing and printing from SSCOP state machine - new per-device operation dev_close to shut down devices - changed a few DIAG_WARNs to DIAG_INFO in ilmid Removed features ---------------- - polled ATM devices are no longer supported - CLIP is gone (use ATMARP instead) - Arequipa and LANE don't work yet (will come back later) Version 0.30 to 0.31 (22-APR-1997) ==================== Bug fixes --------- - atmarpd even refused IP address changes by the ATMARP server, which typically led to the creation of one extra SVC - ATMARP timeouts were computed at the wrong place (found by Gerald Hanusch) - aqtest's usage didn't mention the -v option - some tools used 0x%p instead of %p (which is fine in the kernel, by the way) - skb_migrate didn't update skb->list - zeppelin: incurred spurious core dumps on unsuccessful attempts to connect to LANE servers, ESI parsing from command line seg faulted, obtaining ESI from NIC left an ATM socket hanging, man page didn't describe all options (by Marko Kiiskila and Heikki Vatiainen) Other changes ------------- - arequipa_close now only returns after the Arequipa connection has been successfully closed. This allows applications to reliably close and re-create Arequipa SVCs, e.g. to change the traffic parameters. - the arequipad operations 3rd party close and synchronization are now handled inside the kernel and survive arequipad restarts 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) ==================== Bug fixes --------- - saal/sscop.c: NORMALIZE macro was weird and broken (fix by Ngo Bach Long) - InARP queries didn't contain the target ATM address, even if it is known, which stretches the allowances RFC1577 makes for violating RFC1293 (found by Juha Heinanen) - tcp_conn_request: Arequipa modification to MTU size calculation used wrong socket (fix by Gerald Hanusch) - kernel ATMARP table handling had some obscure races - temporary work-around: added A2T_LOCAL when using A2T_NAME in atmsigd and atmarpd. Before, systems using ANS where the name server is reached via (IP over) ATM exhibited truly bizarre failure patterns when refreshing ATMARP entries. (With a lot of help from Juha Heinanen) - ditto for arequipad, although the effects were less dramatic - atmarpd: if not using -m, incoming connections for which a valid entry already existed (e.g. due to manual configuration) were not entered in the kernel ATMARP table until after the entry timed out for the first time (by Gerald Hanusch) - skb data areas are now aligned using skb_reserve instead of directly tampering with skb->data (and forgetting skb->tail in the process ...) (found by Uwe Dannowski) New features ------------ - atmarpd is now automatically notified of IP over ATM interfaces already existing at startup. This greatly simplifies the atmarpd restart ritual. (All ATMARP table entries and the default QoS are still lost, though.) Other changes ------------- - cleaned up some weird and partially dead code in arpd/arp.c (found by Gerald Hanusch) - removed superfluous continue in arp.c:atmarp_setentry - device-driver specific declarations now reside in /usr/include/linux/atm_.h, so that disgusting hacks like #include "/usr/src/linux/..." can be avoided (based on proposal by Uwe Dannowski) - updated the list of supported NICs in README and the on-line help - arpd/atmarpd.8: documented that atmarpd -m may violate RFC1577 in subtle ways (pointed out by Gerald Hanusch) - updated MPR usage description to version 1.5 and removed mpr.patch - removed MEM_DEBUG from the build process (MPR 1.5 initializes itself automatically) Version 0.27 to 0.28 (27-MAR-1997) ==================== Bug fixes --------- - atmarpd restarted timers on as_valid -> as_valid transitions, illegally delayed necessary refreshes (reported by Juha Heinanen) - SSCOP cleared POLL timer on IDLE timer expiry (fix by Ngo Bach Long) - atmsigd didn't initialize "now" soon enough, causing an unnecessary retransmission of the first BGN PDU (by Ngo Bach Long) - atmsigd responded to RELEASE COMPLETE in ss_rel_ind with a STATUS instead of entering ss_wait_close (by Steve Pope) New features ------------ - new tool aqpvc to declare incoming Arequipa traffic on a PVC to the system (caveat: removing such a PVC can turn out to be surprisingly difficult) Other changes ------------- - removed some useless code in atmarpd's handling of VC disconnects - removed unused signaling state ss_hold (equivalent to ss_wait_rel) Version 0.26 to 0.27 (11-MAR-1997) ==================== Bug fixes --------- - oops, forgot to include atm/lib/rtf2e164_cc.pl in the distribution - atmsigd's VCI allocation in -N mode was too simplistic and failed after some signaling activity (reported by Richard Jones) - atm_connect was rejecting ATM_{VPI,VCI}_ANY - aq_prev in the list of Arequipa connections wasn't set properly, leading to random crashes when using Arequipa (found and fixed by Richard Jones, after weeks of tearing his hair out) - arequipa_close didn't remove the Arequipa route, which kept the upper layer protocol connection alive for a rather long time (reported by Richard Jones) New features ------------ - ilmid enhancements: vastly improved retry mechanism, workaround for a bug in the ATML Virata switch, -v option for very detailed debug output (Scott Shumate) - atmsigd now also accepts the signaling VC as a command line argument - qos2text appended colon to traffic type even if nothing else followed - new program debug/aqtest to test Arequipa (based on work by Mehdi Tazi) Other changes ------------- - added a few missing NULLs to struct atmdev_ops initialization in various drivers (this change does not alter any semantics) - changed printk ...%lx... (unsigned long) ptr to ...%p... ptr at many places - removed atm/lib/rtf2cc.pl and atm/lib/cc.inc (they were only used by an interim version of cc_len) - atmarp's usage no longer contains lines longer than 80 characters - added get_logfile() and get_verbosity() to libatm (for ilmid, by Scott Shumate) - select() consumed CPU time unnecessarily if testing for one direction while there's a lot of activity in the other direction (e.g. atmarpd wasted cycles in select() for each outbound packet while waiting for ARP messages) - the value of ATM_AAL0 has changed (from zero to 13), so all programs using AAL0 need to be recompiled - MAX_ATM_QOS_LEN has changed, so most programs using qos2text need to be recompiled - the AAL can now also be set along with the QoS parameters. This approach should be used instead of specifying it in the socket() call. - if no AAL is specified, the kernel now defaults to AAL5 (was AAL0) - updated most demons, tools, and library functions to set the AAL along with the QoS parameters Version 0.25 to 0.26 (29-JAN-1997) ==================== Bug fixes --------- - ATMARP VCCs could stay around forever even after timing out, because the process was not woken up. - the ATMARP "fix" in 0.25 introduced an infinite loop. Fixed that one too. - bit 8 in octets 6 and 7 of BLLI ("ext") were set to 1 instead of 0 when using ATM_L2_USER/ATM_L3_USER (reported by ukl2@rz.uni-karlsruhe.de) - qlib added silly offset (which fortunately happened to be zero most of the time) to dumps of large fields (fixed by Jean-Francois Moine) - IP over ATM restricted MTU changes to valid Ethernet MTU sizes - LANE: fixed two bugs that crashed zeppelin when the connection to the servers failed (by Marko Kiiskila) New features ------------ - lib/ans.c now properly computes the length of the country prefix of E.164 addresses for reverse lookups (needs file /etc/e164_cc, see USAGE) - if the new -m option is set, atmarpd now merges incoming calls into the ATMARP table if the ATM address is known (see atmarpd.8 for details) - included an RPM spec file (this is still very experimental) - NICStAR driver now also works with IP over ATM (by Stuart Daniel) - usage.txt: added description of how to run ATM NICs back-to-back (by Richard Jones) Other changes ------------- - signaling traces now also include SAAL up/down transitions - qgen no longer (unnecessarily) depends on libatm.a - started work on letting qgen handle items that appear at more than one place, e.g. repeated IEs (after an idea by Jean-Francois Moine) - did some cleanup and added comments to qlib.[ch] - added -m option to atmarp in config/redhat-4.0/atm.init - added new make target "filenames" to generate a list of all the files which are installed - config/redhat-4.0 now contains an example hosts.atm file and also a Makefile for more convenient installation - atmsigd now reads atmsigd.conf before parsing the command-line options, thereby allowing values set in the file to be superseeded - atmsigd now also logs the internal reference and the caller's address on calls establishment - ilmid: very dirty hack to give switches some time to process ILMI cold start (by Joseph Evans) Version 0.24 to 0.25 (20-DEC-1996) ==================== Bug fixes --------- - net/atm/atmarp.c:idle_timer_check only expired every other entry (reported by Marko Kiiskila) New features ------------ - LANE now also supports IPX (SNAP and 802.3; by Marko Kiiskila) - NICStAR driver now supports VPI != 0 and has configurable settings in nicstar.h (by Stuart Daniel) Other changes ------------- - ENI: TX DMA scratch are is now stored per device. This should allow multiple NICs to coexist. Version 0.23 to 0.24 (29-NOV-1996) ==================== Bug fixes --------- - atm/test/window.c was missing in 0.23 - atm/debug/delay didn't build unless atm/lib headers were already installed in /usr/include - atm/debug/znth had undefined return value - SSCOP: fixed typo (that could probably kill the SSCOP connection in case of a retransmission); fix by Olivier Bonaventure - corrected unnecessarily large buffer allocation in zatm.c:pool_index (by Jonathan Larmour) - hosts2ans.pl generated reverse addresses for the domain "ATM.INT" instead of "ATMA.INT" - atmarpd "forgot" any pre-set QOS when receiving new ARP information for the respective entry (reported by Gerald Hanusch) - window scale didn't scale the window sent in the SYNACK packet (reported by Juan-Antonio Ibanez) - LANE: better connection failure handling in zeppelin (by Marko Kiiskila) - LEC kernel timer wasn't restarted when restarting zeppelin (found by Gerald Hanusch, fixed by Marko Kiiskila) - LANE: le_flush_request was sent too early when establishing connection (by Marko Kiiskila) - zeppelin stopped operation (unwantedly) in random cases when LANE servers were down (by Marko Kiiskila) - LANE: non-blocking connections, VCC and LE ARP timeouts, and TLV fields in LE_CONFIG_RESPONSE fixed (by Marko Kiiskila) New features ------------ - atm2text now also uses ANS - signaling traces now also contain error reports from qgen - added new build-time configuration option "CISCO" (in atm/Rules.make) to work around a bug in Cisco's point-to-multipoint signaling - included example configuration files for RedHat 4.0 (see atm/config/redhat-4.0/README) Other changes ------------- - local variable "link" in atm/debug/delay.c:loop was shadowing "link" system call - cleaned up various Makefiles - qgen: bytes left in qet_space are now more meaningful - named (ANS) now also starts even if atmsigd is not running and retries to create the ATM socket in 15 minute intervals until is succeeds (by Marko Kiiskila) - LANE: (too) short le_flush_responses (Cisco 7010, sw ??.??) are now handled (by Marko Kiiskila) Version 0.22 to 0.23 (16-NOV-1996) ==================== Bug fixes --------- - fixed stupid typos in atm/lib/atmres.h and an unnecessary dependency on libresolv.a in atm/lib/Makefile (reported by Gerald Hanusch) - fixed warning about implicit declaration of function bigphysarea_init in init/main.c - I think I fixed the SSCOP VR(MR) problems that were first reported by Edouard Lamboray in '95, then by Heinz Schuerch, and that finally led to a total SSCOP breakdown (in 0.22) reported by Gerald Hanusch New features ------------ - integrated the IDT 77201 (NICStAR) driver by Matt Welsh and Stuart Daniel . Note that this driver currently only supports native ATM. - new throughput and latency benchmark test/window (by Matt Welsh) Other changes ------------- - upgrade to kernel version 2.0.25 - changed drivers/atm/eni.c:do_tx:dma to static in order to reduce kernel stack use (by 480 bytes). Note that this hack may crash systems with more than one ENI adapter. - qlib now also complains if changing a field without a fixed list of values - made a few changes to the native ATM data delivery path to handle some strangeness required by the IDT driver Version 0.21 to 0.22 (13-NOV-1996) ==================== Bug fixes --------- - (dummy) depend target was missing in atm/man (reported by Bernd Wolf) - net/atm/arequipa.c:make_aq_vcc didn't set ATM_VF_AQINUSE, thereby allowing race conditions to slip through - fixed a few potential race conditions when activating Arequipa - text2qos didn't complain if unit was omitted after multiplier, allowing misleading settings like pcr=50M (that's 19.2 Gbps) - SSCOP: took wrong branch if POLL_AFTER_RETRANSMISSION was enabled (fix by Jonathan Larmour) - SSCOP: rel_ind for ENDAK and BGREJ PDU in sscop_inconn was sent with "user" = 1 (must be 0 for "Source := SSCOP") - initialize_vr_mr now initializes vr_mr to a constant value (instead of garbage plus constant value) - atm_recvmsg now ignores msg->msg_name, as it should by POSIX 1003.1g (fix by Mike Wooten) - atm_sendmsg now fails with EISCONN instead of with EINVAL if msg->msg_name is set, as it should by POSIX 1003.1g (reported by Mike Wooten) - atm_recvmsg and atm_sendmsg now return ENOTCONN if not connected and EOPNOTSUP if flags are passed, as they should by POSIX 1003.1g - the QOS zeppelin uses for its connections can now be set with the option -q - atmarpd didn't include the QOS in PVC entries, so atmarp -a complained about them New features ------------ - kernel changes to support tcpdump with LANE (by Marko Kiiskila) - patch for tcpdump 3.0.4 (installed as tcpdump_atm) to support Classical IP and LANE (by Marko Kiiskila) - patch for BIND 4.9.5 to support ANS (ATM Name Service) functionality (by Marko Kiiskila) - added hierarchy extra/ for packages for which only patches are contained in the ATM on Linux distribution - enhanced text2atm to use ANS if local lookups fail (atm2text will be updated later) - wrote script extra/hosts2ans.pl to convert hosts.atm file to ANS zone files Other changes ------------- - changed ATM_VF_AQINUSE to ATM_VF_AQDANG and changed aq_list membership to be for dangling VCs only - added the new command-line options to ttcp_atm's online help (finally !) - atm_sendmsg now returns error codes from the driver's send function (suggested by Jonathan Larmour) - text2qos now performs a syntax check if NULL is passed in the qos argument - various minor LANE cleanup (Marko Kiiskila) - upgraded to the latest version of t2a.pl - {A2T,T2A}_REMOTE is obsolete; instead, {A2T,T2A}_LOCAL should be used if ANS lookups are _not_ desired Version 0.20 to 0.21 (18-OCT-1996) ==================== Bug fixes --------- - net/atm/common.c:atm_connect didn't refuse traffic_class == ATM_NONE in both directions - include/linux/atmsvc.h:SELECT_TOP_PCR didn't default to ATM_MAX_PCR if min_pcr == 0 && max_pcr == 0 - debug/delay swallowed one-byte packets - oops, forgot man/Makefile, so qos.7 wasn't installed - atmarpd left max_sdu at zero for automatically generated entries - atmarpd now only uses the default QOS if the traffic type is set in neither direction - signaling: if the listen queue was full, new connections were rejected with as_close instead of as_reject, thereby upsetting atmsigd - svc_accept didn't adjust the listen queue quota when rejecting incoming connection requests - fixed a few bad font selections in atmsigd(8) New features ------------ - included the window scale patch by Randy Scott and Robert Hill - -q option for ilmid to set the QOS (like in atmsigd) - new script mkbindist to install the utilities into a tar.gz file Other changes ------------- - debug/delay now prints the usage if invoked without arguments - removed the pretentious usec resolution for delays in debug/delay - removed the UBR semantics change warning - qos.7: clarified that bps are the user data rate - arequipa_attach_unchecked now also adjusts the upper layer MTU (which can violate RFC1122, but I'll tackle that later) - text2qos now also accepts fractional values, e.g. 9.6kbps Version 0.19 to 0.20 (14-OCT-1996) ==================== Bug fixes --------- - fixed a few typos and errors in the 0.18 to 0.19 change log - signaling traces only included hl_type bytes instead of hl_length bytes - TNET1570 driver: various fixes (DMA allocation, seg ring overflow, timeouts, etc.) (Christian Paetz) - TNET1570 driver: removed most compiler warnings (Christian Paetz) - listen() on an arequipa_preset() socket and arequipa_preset() on a listening socket now both return EPROTO - oops, forgot to enable the "rm" in make uninstall - kernel didn't set interface number field in act_create messages to atmarpd New features ------------ - added ioctl ATM_SETSC to enable or disable RX and TX single-copy per VC - new device driver operation change_qos (not yet implemented) - TNET1570 driver supports DEC Alphas and 64 bit PCI transfer (for CIA PCI chipsets) (Christian Paetz) - TNET1570 driver also supports the UniNET1570 board (Christian Paetz) - new functions text2qos and qos2text to convert between textual and binary QOS specifications (the format is described in man qos) - atmarp -q ip_addr qos sets the default QOS to use for all VCs created for that IP interface - new utility debug/delay to use machine as AAL5-level delay line Other changes ------------- - NLPIDs and vendor-specific application identifiers are now collected in the new file /usr/include/atmsap.h - SO_ATMQOS now attempts to change the QOS settings when invoked on an active connection - included Matt Welsh's bigphysarea patch (this isn't related to ATM, but it keeps my development source tree simpler) - arequipa_preset now initializes max_sdu to RFC1626_MTU+RFC1483LLC_LEN if zero - atmarp: new option qos to set the QOS parameters (uses text2qos) Use of pcr is deprecated. - ttcp_atm's -P option now also accepts a QOS specification string. (use of -P is deprecated. - atmsigd: new option -q and configuration clause io qos to set the QOS of the signaling VC. Use of -P or io pcr is deprecated. - removed the backward compatibility #define class traffic_class in linux/atm.h - removed obsolete keywords from atmsigd.conf language - atmarp -a now also includes QOS parameters - UBR now respects txtp.max_pcr if set - new rules for the use of [rt]xtp.traffic_class: both fields must be either equal or zero, e.g. ATM_CBR in TX and ATM_UBR in RX no longer works - doc/usage.tex now points to the man pages instead of repeating their content Version 0.18 to 0.19 (27-SEP-1996) ==================== Bug fixes --------- - sscop.c:data_sd had a comparison inversed, so generation of USTAT PDUs was wrong in some cases (by Juhana Rasanen) - sigd_enq: accessed vcc->qos without checking for vcc == NULL, causing an "Oops" in atmaddr - svc_accept: generated a general protection fault when atmsigd was killed while a process was waiting for new incoming connections - atmaddr didn't zero the address structure before calling text2atm - LANE: fixed usage of kernel timers and LE_ARP_REQUESTs should now get sent until the entry expires or a response is received (by Marko Kiiskila) - less compiler warnings from LANE servers (Marko Kiiskila) - SSCOP: fixed SDU size in AA-RETRIEVE.indication (reported by Heinz Schuerch) - NULL encapsulation for ATMARP works now (reported by Gerald Hanusch) - fixed stray EINVAL from get{sock,peer}name on PVCs (reported by Gerald Hanusch) - clip now sets max_sdu to RFC1626_MTU+RFC1483LLC_LEN when using LLC/SNAP encapsulation - if parsing of a Q.2931 message fails, atmsigd now aborts the call instead of (stupidly) trying to process the incomplete and probably inconsistent data - SUNI driver didn't properly mask out unused highest bits of some statistics counters, thereby yielding absurdly high values - zatm: changed timing of RX channel closing, so the dreaded "can't close RX channel" message should be history - fixed race between Arequipa attachment due to packet reception and closing of the Arequipa VC - local address validity check (for ATM_???ADDR) was all wrong (reported by David Simpson) - message dumper ignored fatal errors if debugging was not enabled New features ------------ - man pages for lecs, les, bus, and zeppelin (Marko Kiiskila) - configuration file name for les and bus can be defined (Marko Kiiskila) - zatm: new kernel configuration option CONFIG_ATM_ZATM_EXACT_TS now supports reception timestamps with microsecond resolution (the accuracy is only in the ms range, though) - new utility znth (ZeitNet Timer History) to monitor timer synchronization - LANE now supports up to 4 LEC network interfaces (Marko Kiiskila) - the Q.2931 message parser now recovers nicely from IE errors, logs the event, and continues parsing. The higher layers of the signaling stack don't use this information yet, though. Other changes ------------- - Arequipa's BHLI now uses a "vendor-specific application identifier" under the EPFL OUI - moved buffer/queue handling from lib/libatmd to saal/, because it is rather SSCOP-specific anyway - atm_release_vcc now complains if rx_inuse != 0 when closing (if this ever happens, it may point out dangerous races with upper layer protocols) - SO_ATMQOS now issues a warning when using UBR with {min,max}_pcr != 0 - max_sdu is now set by atmarpd to MTU+RFC1483LLC_LEN (atmarp could still override this, if necessary) - atmdump: new option -i to display the arrival interval instead of the absolute time. Also changed the time format to be more readable. - updated the kernel configuration documentation to indicate that the SMC ATM Power155 adapters are compatible with the Efficient ENI-155 - atmarpd now deletes the old table file (containing stale information) if invoked with -d (debug) Version 0.17 to 0.18 (9-SEP-1996) ==================== Bug fixes --------- - atmsigd didn't respond to SETUP followed by RELEASE with a RELEASE COMPLETE - atmsigd now implements incoming call rejection (as_indicate -> as_close) - kernel now opens the VC before sending the as_accept. This a) allows to check if the parameters are acceptable, and b) avoids a race condition between the sender and the local VC open procedure, which frequently led to loss of the beginning of the first PDU sent on a new connection. - qdump: _q_parse used the wrong length when dumping variable-length fields, yielding a fatal internal error - clip didn't set rxtp.max_sdu - svc_accept didn't set ATM_VF_HASQOS, so getsockopt SO_ATMQOS didn't work (by Marko Kiiskila) - ttcp_atm calculated Mbps as 2^20 bits/sec instead of 10^6, thereby making all results come out approximately 5% too low (by Fraz Ahmad) - added $(LDLIBS) to linking of lane/lecs (by Lawrence MacIntyre) - interface number allocation in clip and atmarp did not check for collision with the respective other name space - atmarp's -c option didn't work when omitting the "atm" in the interface name New features ------------ - new man page: arequipad.8 Other changes ------------- - simplified the internal signaling protocol by adding the as_reject message (sent by kernel in response to as_indicate; not acknowledged by demon) - packets received from Arequipa are no longer forwarded to other hosts - further ilmid improvements to use RSTADDR less frequently (by Gerald Hanusch; with a slight modification) Version 0.16 to 0.17 (2-SEP-1996) ==================== Bug fixes --------- - lib/diag.c didn't fflush when logging to a file - arequipad didn't accept the -l option - qgen: possible weird crashes because second.c:find_required accessed value->tag even if vt_id - qgen: fixed wrong PC indication in one error message in _q_parse - make spotless didn't know about new $(*PGMS) targets - atmsigd: fixed memory leak when sending messages to the kernel - atmarpd: fixed memory leak when sending messages to the network - atmsigd: didn't send final as_close when kernel closed connection immediately after requesting it (as_connect) - several minor corrections New features ------------ - added make target "uninstall" to remove all files installed by make install - atmsigd has two new options: -D dump_dir to set the dump directory and -t trace_length to set the length of the trace buffer - wrote a few man pages: atmarp.8, atmarpd.8, atmsigd.8, atmsigd.conf.4 - added automatic support for memory debugging if MPR is installed (and included a patch to make MPR 1.1 work with ELF). atmarpd and atmsigd currently use this feature. Other changes ------------- - changed "class" to "traffic_class" everywhere - make install is now implemented in a more elegant way - q.dump is now much better at finding symbolic names for numbers - q.dump no longer prints zero-length fields - qgen no longer includes constructor "microcode" in dumper - atmarp now gives more informative error messages on ioctl failure - removed obsolete ioctls SIOCGIFATMADDR and SIOCSIFATMADDR - added hack to allow ilmid to be less hostile to locally configured addresses (by Gerald Hanusch; with slight modifications) - atmarpd now automatically sets ATF_PERM of PVC entries with NULL encapsulation Version 0.15 to 0.16 (29-AUG-1996) ==================== Bug fixes --------- - fixed an "unterminated character constant" warning by CPP in qgen/uni3x - atm/sigd/q2931.c always tried to read the Cause IE of RELEASE COMPLETE messages even if it wasn't included - LANE: fixed buffer allocation and VCC timeouts (Marko Kiiskila) - LANE: when connecting directly to LES, name of the ELAN was not set properly (discoverd by Gerald Hanusch; fixed by Marko Kiiskila) - LANE, ATMARP, signaling: control sockets didn't account for messages sent back from demons (fixed by Marko Kiiskila) - permanent ATMARP entries for SVCs were ignored if no ATMARP server was configured (reported by Gerald Hanusch) - atmarp option "temp" mis-spelled as "term" (fixed by Gerald Hanusch) - forgot to undo experimental rcvbuf/sndbuf change to unsigned long - make modules didn't generate ATM modules - atmtcp_attach_hook wasn't defined when compiling ATMTCP as a module - ATM patch set dev->ip_atm to ether_arp in net/ppp.c and net/eql.c, so they failed to work as modules New features ------------ - added LANE servers (LECS, LES, and BUS) by Marko Kiiskila - Rules.make: new variable INSTROOT for easier cross-installation - atmsigd: added option -P to set the maximum PCR used on the signaling VC - atmarp: added option "pcr " (proposed by Gerald Hanusch) - added the usual -l option to arequipad Other changes ------------- - upgrade to kernel version 2.0.14 - SVCs can now be bound with any SEL value - messages of size > quota can be sent if the send buffer is empty - ilmid no longer empties the address list when refreshing the NSAP address (by Gerald Hanusch) - LANE client should now survive network reset (e.g. restart) gracefully (Marko Kiiskila) - LANE: major cleanup of zeppelin code (Marko Kiiskila) - improved loadable module support for eni and zatm (i.e. loading works now) - the message dumper can now be linked to programs that also use the compilation/parsing functions Version 0.14 to 0.15 (31-JUL-1996) ==================== Bug fixes --------- - zatm: fixed traffic shaper settings for UBR (with a little help from Joern Wohlrab) - atmsigd compilation didn't use the same UNI version configuration as qgen - field "class" in struct atm_traform broke compilation of ATM applications written in C++, so it has been renamed to "traffic_class" (reported by Furquan Ansari) - AAL parameters IE wasn't included in CONNECT, which violated RFC1755 (discovered by Robert Olsson) - zatm: removed broken sanity check for in-sequence skb delivery on RX - clip didn't have clip_open function, so SIOCSIFFLAGS on the interface failed with ENODEV - single-copy compiles again - zatm: driver doesn't pretend any longer to support single-copy (but single-copy will come back later) - QOS IE was sent with the wrong coding standard when using UNI 3.1 (with help from Fraz Ahmad) - zatm: forgot to remove some debugging code (around ZATM_TUNE) - qlib.c didn't zero the length array, leading to (rare) "not enough space" errors from QMSG (actually, the "break" mechanism seems to be flaky - will have to check) - fixed Arequipa race condition when the upper layer protocol and signaling decided to close the SVC at the same time - alloc_tx used to return NULL in out of memory conditions, thereby possibly hanging atm_sendmsg New features ------------ - ttcp_atm now also accepts names with -p - (finally !) added send/receive buffer limits and cleaned up the use of vcc->[rt]x_{inuse,quota} - added mkdiff script for automatic generation of diffs - Arequipa now works for PVCs too (but arequipad is now required for any use of Arequipa, not only for incoming connections) Other changes ------------- - atm/atm-.patch is now called atm/atm.patch (to make the diffs more useful) - the maximum SDU size is now checked in net/atm/common.c:adjust_tp - text2atm/atm2text now accepts/generates E.164 addresses with a leading + sign, as required by ANS (atm95-1532) - internal signaling protocol: added message as_error to un-overload as_close - internal signaling protocol: split as_establish into as_connect and as_accept - internal signaling prococol: as_close.reply no longer contains positive numbers - internal signaling prococol: as_bind now also carries the AAL type - atmsigd: now also checks the AAL type in as_bind messages - kernel signaling: a few minor changes - STANDARDS (i.e. UNI version) configuration option has been moved from atm/qgen/Makefile to atm/Rules.make - atmsigd's startup message now gives more useful indication of which UNI version(s) it supports - signaling no longer uses sa[sp]_[rt]xtp, so ... - sa[sp]_[rt]xtp is gone - removed atm/sigd/svc.c from the distribution. We now have many other tools for testing SVCs, so it's superfluous. - atmarpd: revalidation is now less frequent (use -DFREQUENT_REVAL for the faster timeout) - ioctl CLIP_PVC now returns the number of the new interface and clip prints its name to standard output (like atmarp -c) - clip now issues the CLIP_PVC ioctl after binding, which avoids wasting interface numbers on failed setup attempts - atmsigd -d now sets the debug level for qgen and SSCOP to DIAG_INFO, and doesn't set q_dump - zatm: added protection against I > M - atm_peek_aal5 now only aligns to page boundaries for pdu_size >= PAGE_SIZE - eni driver now spits out CRC error messages at most every other second - zatm driver now repeats RX error messages at most every other second - ttcp_atm now sleeps for a second after setting up an SVC, because the switch seems to lag behind (need to examine this further) - moved SAAL from sigd/ to saal/ (for sharing with UNI 4.0 signaling) - Arequipa sockets are now closed via arequipad instead of via atmsigd (new ioctls AREQUIPA_CTRL and AREQUIPA_CLS3RD) - various minor changes Version 0.13 to 0.14 (19-JUL-1996) ==================== Bug fixes --------- - LANE: reaction to LE_ARP_RESPONSE's wasn't always correct - LANE: compiler warnings fixed - LANE: comparing ATM addresses in checking whether connection is formed was wrong - zntune didn't divide by 1024 when displaying the "k" - .depend wasn't deleted by make spotless - ATM_GETSTAT and ATM_GETSTATZ used wrong argument type for coding ioctl number. WARNING: programs using ATM_GETSTAT{,Z} need to be recompiled. - requests to set up SVCs with ATM_NONE in both directions are now caught by svc_connect (used to yield an invalid SETUP message) - signaling: fixed connection identifier setting when acting as network side (fix by Elwyn B Davies) - ATMARP server ARP entries were undeletable - atmarp showed wrong argument in error message when given an invalid ATM address - zatm: do_tx left interrupts turned off when returning with RING_BUSY - LANE ARP hash table handling bugs fixed - atmarp: act_create is now only sent on interface creation - atmarp: act_down is now only sent once per transition - demon control SVCs are no longer closed when atmsigd dies (new VCC flag ATM_VF_META) - netdevice notifier is now properly unregistered when atmarpd goes down (not doing so caused endless loop in kernel on atmarpd restart) - sigd_enq{_atomic} never calls schedule() - atmsigd no longer "forgets" to bring up ARP server SVC before sending an InARP - atmarpd no longer dies with "timer in state 3" when the ARP server becomes unreachable - atm/atmarp.c: clip_create() now refuses creation of already existing interface - Documentation/Configure.help gave an obsolete URL for CONFIG_AREQUIPA and doc/usage.tex also mentioned the old file name - Arequipa didn't work in the outbound direction for TCP, because net/ipv4/tcp.c was missing in the kernel patch - drivers/atm/eni.c:foo raced with initialization of eni_boards if the board lost the signal _immediately_ after being initialized - atmarpd: fixed a few uninitialized entry->timer pointers (discovered by Gerald Hanusch) - atmarpd: arps entry should no longer get stuck in as_resolv New features ------------ - compiles on SparcLinux too (but only atmtcp works) Other changes ------------- - upgrade to kernel version 2.0.0 - BHLI matching changed: SAPs without BHLI are now incompatible with calls that specify a BHLI - LANE: interface stays up when zeppelin dies -> possibility for wrapper script around zeppelin - LANE: LUNI interoperability test (ATM Forum/96-0805) is now followed in setting ELAN name in LE_CONFIG_RESPONSE and LE_JOIN_RESPONSE, there is also a delay of 1 second before sending LE_CONFIG_REQUEST and LE_JOIN_REQUEST. This allows 'slow' LE servers to catch up. - LANE: no longer uses sa[sp]_[rt]xtp - LANE: now adjusts better to ATM address changes - zeppelin: new option -m to select debugging output - updated aping, aread, awrite, br, bw, atmdump, ilmid, atmarp, clip, atmarpd, and zeppelin to use setsockopt SO_ATMQOS - added option -x for ilmid to disable variable bindings (caused interoperability problems with certain switches, e.g. the LS100) - changed SO_CIRANGE into a pair of ioctls - changed return value of fetch() (passed to atm_vcc->peek) from unsigned long to __u32 - atmarp now accepts arpsrv option also for -d - zatm driver can now also read ESIs of rev. 10 boards (with help from Nikos Anerousis) - awrite: fixed txtp.max_sdu calculation in awrite (was using uninitialized variable "offset") - atmarpd: IP interface removal now has the desired effect (used to do nothing) - atmarpd: now reports and ignores unexpected interface transitions - added sigd_enq_atomic for atomic sigd_enq (so that non-Arequipa SVCs can still use the "safe" but non-atomic version) - made SIOCGIF* failures in atmarpd non-fatal (itf.c:itf_up was handling them anyway) - moved Arequipa-specific code from net/atm/clip.c to net/atm/arequipa.c, and put code common to CLIP, Arequipa, and - to a lesser extent - ATMARP into net/atm/ipcommon.[ch] - Arequipa can now be complied without CLIP - various minor documentation changes - moved ATM device initialization from net/atm/pvc.c to drivers/block/genhd.c, where most other devices are initialized too - preparation for new binary locations: tools build process now knows about four types of programs: for booting, for system use, for users, and for internal use during build - make install now hides the for loops - non-user binaries are now installed in /usr/local/sbin - struct atm_iobuf.buffer is now of type void * (was int*). Also, ATM_GETNAMES now returns the length in bytes in that field. Version 0.12 to 0.13 (7-JUN-1996) ==================== Bug fixes --------- - BHLI type used the ATM_HL_* values (which are off by one) in qgen/uni3x - atmarpd ended up in a tight select-accept loop if atmsigd went away - removed sleep in ZATM's do_tx (so it works with IP over ATM again) New features ------------ - added experimental support for Application requested IP over ATM (Arequipa), prototyped by Jean-Michel Pittet - new traffic class ATM_ANYCLASS to accept incoming SVCs without looking at the traffic parameters - added (untested) support for SO_BCTXOPT/SO_BCRXOPT Other changes ------------- - SVCs used to listen are now marked as "LISTEN" in /proc/atm/svc - added option -Q to ttcp_atm to support AREQUIPA - cleaned up the FILE macro and removed atm_dir in net/atm/proc.c Version 0.11 to 0.12 (3-JUN-1996) ==================== Bug fixes --------- - atm/lib/Makefile: had to comment out PGMS=test - distribution didn't include atm/doc/usage.txt - patch didn't include arch/i386/config.in - return 0; was missing at the end of net/atm/mmuio.c:mmu_step - atm/ilmid didn't install into INSTBIN; also made some other Makefile changes - read() returned garbage instead of error when network drops connections - POLL_AFTER_RETRANSMISSION in SSCOP didn't even compile - SVCs: bind to wildcard addresses should now work even if no local address is known yet - make clean in atm/qgen left some dirt - ATM drivers didn't free skbs when detecting an error in TX direction - SIOCMKCLIP was in the wrong #ifdef, so CLIP had to be enabled to make ATMARP usable - signaling didn't respond properly to messages with non-existent call reference New features ------------ - merged in LAN Emulation client support written by Marko Kiiskila - new socket option SO_ATMQOS at SOL_ATM to set/get QOS parameters Other changes ------------- - t2a.pl now also works with Perl 5.001 - changed the TX side of the ZATM driver to use a ring instead of a list in order to improve stability and throughput (needs some more testing) Version 0.10 to 0.11 (21-MAY-1996) ==================== Bug fixes --------- - README.DRIVERS still referenced INSTALL (it's now in USAGE) - sap_decode didn't clear BLLI part of address structure - trying to connect to NULL address fails locally instead of yielding an invalid SETUP message - bind now properly sets the local address - SVC getname now returns the traffic parameters - oops, zatm open_tx didn't return PCR - awrite printed errors for connect() as "bind: ..." - atmsigd no longer generates dummy call references (0x7fffff) - atmtcp: changed a few kfree_skb to dev_kfree_skb, which should make it work better (does anybody care to try ?) - some more dev_kfree_skb fixed for control messages from or to demons (led to some minor memory leaks) - various major fixes for CBR SVCs - RELEASE was signaled for SVCs before all data was sent - single copy tried to access mem_map with user space addresses, leading to crashes or worse - zatm: sleep_on was racing with TX completion in close_tx, leading to hangs - zatm: now fails attempts to open AAL0 VCs (used to accept them and to crash later) - BHLI encoding/decoding was broken in several ways New features ------------ - hacked in primitive leaf-only p2m support (based on an idea by Marko Kiiskil{) - the socket layer, and the zatm, eni, and atmtcp drivers now support two-phase connect - PVCs now respect max_pcr (SVCs can't for now) - lib/diag.c can now also log to a file or to syslog, and atmarpd, atmsigd, and ilmid now have a -l option to use that - new option -c config_file for atmsigd - zatm and atmtcp now also support timestamps (but zatm timestamps can be improved a lot by using the timestamps the uPD98401 generates) - Classical IP over ATM support is now configurable - added on-line help texts for configuration - added atm/test/aping, a round-trip tester for PVCs - added "flags" field to struct atm_dev and to atm_dev_register, on request by Bureau 13 Other changes ------------- - past versions of the BUGS list aren't included in the distribution anymore because I didn't update them anyway - invalid connect() calls now return an error instead of panicing atmsigd - text2atm no longer clobbers sas_addr.{blli,bhli} - greatly simplified zatm traffic shaper settings calculation (and it's better than before too) - atmsigd: diagnostics class "sig" (in atmsigd.conf) now also includes "SAP" - DPRINTK now uses GNU-specific #define foo(bar...) - signaling: PCR is now also indicated (0) for directions in which ATM_NONE is requested, which is probably "cleaner" (for CBR) - added logging priorities to most printks - the default location for atmsigd.conf changed from . to /etc - ipv4/af_inet.c: atmtcp_attach_hook is now only included when using ATM over TCP - configuration options for extended driver debugging, (old) CLIP, and ATM over TCP are turned off by default Version 0.9 to 0.10 (21-MAR-1996) =================== Bug fixes --------- - zatm: deallocated UBR shaper when closing UBR VC, which the other UBR VCs didn't really appreciate - fixed nasty memory leak for native ATM (spotted by Rolf Fiedler) New features ------------ - added Rolf Fiedler's driver for his adapter based on the TI TNETA1570 - single-copy is back again ! Other changes ------------- - eni buffers are now slightly (50%) bigger, allowing for more effective overlapped operations - documented zntune Version 0.8 to 0.9 (14-MAR-1996) ================== Bug fixes --------- - oops, accidently removed ZN1221 from drivers/pci/pci.c (so /proc/pci reported it as "unknown") - sigd didn't poll for the default interface on startup - atmarpd didn't initialize timer field in newly allocated table entries, which led to crashes - removed a few stray debugging printks in net/atm/svc.c:svc_bind - ATMARP tried to send queued packet before adding new table entry, so the packet was always discarded - sigd/sap.c: didn't allow to use different traffic classes for fwd and bwd direction - atm2text accepted SVC addresses of all zeroes - atmsigd didn't refresh its local address list properly after ilmid restart - net/atm/common.c: returned positive error codes (-vcc->reply) instead of negative ones - forgot to include maint/zntune.c in the distribution New features ------------ - sigd/svc now accepts ATM addresses in all formats supported by text2atm Other changes ------------- - upgraded to kernel version 1.3.73 - the called party number must now match the local address (if bound) - renamed ttcp.atm to ttcp_atm - all executables are now explicitly linked (so make works even without dependencies) Version 0.7 to 0.8 (12-MAR-1996) ================== Bug fixes --------- - fixed stray segmentation violation in arpd/arp.c:learn - fixed coding standard of the QoS IE if using UNI 3.0 (and made coding standard variable) - made coding standard variable for Cause IE - SSCOP didn't properly set N(MR) - list elements in STAT PDUs had host byte order - SSCF didn't call sscop_estab_resp on restart (AA-EST.ind in 1/1) - signaling didn't handle SAPs with >= 2 BLLI IEs properly - uni3x: iso_hli and user_hli were confined to 7 bytes, but UNI allows up to 8 - q_read choked on non-variable-length fields - qgen sometimes didn't read all IEs of a signaling message - fixed usage line of test/bw - qgen no longer complains about missing required fields after a break - fixed compiler warning in zntune.c - fixed ATMARP table additions (caused GPF when flushing ATMARP entry at the end of the table and possibly other problems) - qgen: q_put or'ed data instead of overwriting it, which caused problems only on surprisingly few occasions New features ------------ - atm2text and text2atm now also do name lookups via a /etc/hosts.atm file - atmaddr, atmarpd, and atmsigd now pretty-print addresses using name translation (unless invoked with -n) - atmarpd now dumps its table into /var/run/atmarpd.table and atmarp -a reads it from there - started modularizing the ENI and ZATM drivers - ilmid and atmsigd now support multiple interfaces (untested) Other changes ------------- - the documentation is now available in LaTeX and in ASCII - rewrote most of the SAP handling code (now everything is in sigd/sap.c) - proto.c:lookup_sap now picks wildcard SAP last - signaling always includes SSCS type = 0 in SETUP messages (for LANE) - changed the message format for the the kernel-demon signaling protocol - qgen is now a bit more tolerant when being fed with bad data - qgen now assumes that q_report(Q_FATAL,...) doesn't return - marked sigd/test.c as obsolete - svc_accept failing in atm_connect no longer returns success - atmsigd -n is now atmsigd -N - qgen now puts the PC in q.out.c and qd.out.c at the beginning of the code line and not on a line by itself Version 0.6 to 0.7 (2-FEB-1996) ================== Bug fixes --------- - removed TTL setting ioctl (1234) used for something entirely unrelated to ATM, oops - changed kfree_skb in atm_pop_raw to dev_kfree_skb (this fixes the socket "leak") - more unusual configurations (no PCI, no IP, no /proc) should compile now - atm_equal didn't recognize wildcards in embedded E.164 addresses - fixed net/atm/proc.c:svc_addr (too many bugs to mention) - atmarpd didn't check for ARP traffic on inbound connections - atmarpd didn't properly merge incoming connections with existing entries - various other ATMARP fixes - free list was too short in ENI driver for worst case fragmentation on 2 MB boards - signaling didn't set ISO/IEC TR9577 IPI and NLPID correctly in active open - getname looked at *sockaddr_len, which is uninitialized (need to fix this later in the common socket code) - SSCOP generated incorrect error code ("1" instead of "B") for BGN PDU problems New features ------------ - new ioctls ATM_GETADDR, ATM_RSTADDR, ATM_ADDADDR, and ATM_DELADDR to manage local ATM addresses - signaling now handles incoming RESTART, SAAL failure, and SAAL re-establishment - ATMARP now times out idle connection; ATMARP_MKIP ioctl takes a timeout argument - ATMARP (kernel) now queues one skb per pending ARP request and limits the rate of requests for the same address (default 2 req/min) - atmsigd now prints cause values when receiving a RELEASE or a RELEASE COMPLETE and returns more informative error codes - atmarpd falls back to PVC-only operation if signaling is unavailable at startup - kernel can now assign next free number on IP interface creation (atmarp prints the interface name) - qgen -D generates a Q.2931 message dumper (see USAGE for details) - qgen now checks for proper use of repetition indicator (but doesn't support repeated IEs yet) - protocols and device drivers can now use their own memory allocator in the TX direction by changing vcc->alloc_tx Other changes ------------- - upgraded to kernel version 1.3.53 - build process now uses Perl - ATM ioctls writing back data now always return the size of the data structure written - struct atmif_sioc now has a length field (recompile all atmarpd, ilmid, debug/ed, and everything in maint) - PHY driver no longer has to check validity (permissions and access) for "standard" ioctls - signaling should now also work on an interface > 0 (but there's still only one interface using signaling per host) - make install now adds /usr/include/atm.h and /usr/include/atmd.h - atmarpd now also displays if SVC has been opened actively or passively - atmaddr(8) now uses new ioctls and has different command-line syntax and even has a man page - example IP addresses in USAGE now conform to RFC1597 - diagnostics now also include the application name (optional) Version 0.5 to 0.6 (21-DEC-1995) ================== Bug fixes --------- - ARP ioctls stopped working for most non-ATM devices, oops - ATMTCP driver counted lack of memory as rx_err instead of rx_drop - select on driver using polling may have hung - atmarp man page and usage didn't indicate that the interface number is optional - restricted atmarpd and signaling control, and SIOCSIFATMADDR to the super user - atmtcp: fixed handling of VPI/VCI <= 0 for setsockopt(SO_CIRANGE) - eni and zn driver had static UBR shaper pointer, making it difficult to have more than one such device per system - eni driver initialization didn't work properly in systems with ASIC Tonga - suni.[ch]: confused MC (Master Config) and MCT (Master ConTrol) registers - (SVC) accept now returns PVC -EAGAIN as -EBUSY because the operation cannot be retried - qgen: fixed several bugs in case handling (and made defaults work for parsing) - svc_dup passed PF_ATMSVC instead of AAL to svc_create - plugged a few skb leaks in svc_accept - text2atm didn't properly NUL-terminate E.164 addresses New features ------------ - ZN1221 driver works partially for AAL5 (still hangs after a few dozen MB) (also wrote maint/zntune to monitor/adjust free buffer pools) - ENI driver now supports new Tonga ASIC boards - added Scott Shumate's ILMI demon (for automatic address registration) - text2atm: added wildcard support for SVCs (syntax: addr/bits) - new library function atm_equal to compare SVC addresses - new ioctl ATM_GETTYPE to obtain interface type name - new ioctl ATM_GETESI to obtain ESI (parallels /proc/atm/devices) - new ioctls SONET_SETFRAMING, SONET_GETFRAMING, and SONET_GETFRSENSE to handle SONET vs. SDH framing - added socket option SO_AALTYPE (SOL_AAL) to query AAL type (getsockopt only) - signaling demon is now notified on address changes (new message as_itf_notify) Other changes ------------- - known bugs are now listed in a file called BUGS - all utility programs (aread, awrite, atmdump, br, bw, clip, ttcp) now use the notation [itf.]vpi.vci for PVCs (was itf vpi vci , except for ttcp, where it was only vpi vci (no itf)) - all ioctl values have changed Note: most programs have to be recompiled because of this - sigd and arpd now register their control sockets via ioctls - (old) clip now creates interfaces with an ioctl - text2atm now returns the wildcard length, i.e. a non-zero return value no longer implies failure - push_oam now returns an int (was void) - push_oam now has several flags (in a bit set) instead of the immed argument - the peek function must now update the statistics if it rejects a packet - (ATM device) close is now only invoked after a successful open - the SUNI_GETLOOP ioctl now has an int * argument (was unsigned long *) - uPD98402 driver no longer tries to detect return of the signal (didn't work anyway - would have to sample section errors) - ATMARP no longer supports mixed PVC/SVC entries (I'm sure this will be missed a lot :-) - ATMARP no longer supports "IP address discovery" via InARP for PVCs (maybe later) - specifying an invalid AAL now yields EPROTOTYPE - specifying an invalid address family (connect, bind) now yields EAFNOSUPPORT - make install now also installs libraries (in /usr/lib) - improved many header file comments - re-arranged some comments to simplify automated document generation - added copyright statement - UNI 3.0 IE fields are now always recognized (but we shouldn't generate them) - UNI 3.0 wants octet 5a when using BCOB-X, so we'll set it to twice "No indication" - aread, awrite, br, bw, ttcp, atmsigd, and atmdump now set max_sdu - aread and awrite no longer print strerror(errno) on success Version 0.4 to 0.5 (26-OCT-1995) ================== Bug fixes --------- - now only root can open a CLIP socket (thereby creating an IP interface) - now only root can issue CLIP_NULENCAP and CLIP_LLCENCAP ioctls - atmdump: forgot default in getopt switch - eni driver: called misc_int on every interrupt - Q.2931 message description: various fixes and improvements - linux/atm.h: ATM_*_UNSPEC used the same value as ATM_*_ANY, oops ! - SSCOP is now more careful about not accessing the descriptor if it might possibly have been deleted - typo in SSCF leading to wrong response to AA-RECOVER.indication - SSCOP now correctly copies N(PS) from POLL to STAT PDUs - SSCF now discards data when not ready instead of issuing a fatal error - AAL initialization failure no longer leaks memory - closing an SVC without VCC no longer yields a GPF New features ------------ - ZN1221 driver is starting to work - new, ARP-based mechanism for IP over ATM (with atmarpd, atmarp, etc.) - /proc/atm/pvc now displays more information for CLIP PVCs (after a patch by Raghavan Menon) - added max_pcr to struct atm_trafprm (also fixed a few comments in atm.h) Note: all programs using sockaddr_atm* will have to be recompiled. - qgen now handles value lists in named selections - signaling now supports bhli/blli, plus various other minor extensions - new ioctls to set/get local ATM address - added library with address to/from text conversion functions - finally implemented getname() Other changes ------------- - eni driver: avoided potential generation of superfluous code if extended debugging is disabled - eni driver: detects new boards using ASIC PCI chip (doesn't support them yet, though) - qgen: semicolon is now comment character and no longer used to terminate clauses - qgen: replaced term "item" with "field" - linux/include/atmsap.h: removed obsolete comment "protocol cannot be fully encoded in current structure". Also re-arranged some comments to simplify automated document generation. - saal,sscf,sscop: callbacks don't pass the pointer to the descriptor of the calling protocol anymore - SSCOP no longer prints a number for non-'V' errors - improved handling of STATUS messages - select now indicates ready for writing if max_sdu packet can be enqueued without blocking - select can now also be used to check status of non-blocking connect - moved some common demon functions from sigd into a common demon library Version 0.3 to 0.4 (27-SEP-1995) ================== Bug fixes --------- - various minor documentation fixes - clip.c:atm_push_clip now updates statistics before forwarding the skb to the upper layer (which may free and overwrite the skb) New features ------------ - added partial UNI 3.x signaling - added various adapter debugging programs to the distribution - new config option CONFIG_ATM_ENI_DEBUG to enable extended debugging in eni driver Other changes ------------- - upgraded to kernel version 1.3.24 - changed the distribution directory structure (programs are now in maint/, test/, ip/, debug/, and sigd/, see INSTALL) - ATM interfaces are no longer named, only numbered. This affects the ATM_GETNAMES ioctl, all ioctls using struct atmif_sioc, the usage of atmdiag and sonetdiag, and various diagnostic kernel messages. - ATM socket state is now recorded in field "flags" (this also replaces the SVC fields "released", "registered", and "state") - added #ifdef __KERNEL__ to some header files - added "int immed" argument to send_oam - some minor modifications to the distribution process (mkdist) - removed devmap.c - SVC sockets no longer hang if the signaling demon dies Version 0.2 to 0.3 (8-SEP-1995) ================== Bug fixes --------- - select(2) didn't work (was sleeping on sock->wait instead of &ATM_SD(sock)->sleep) - ENI driver did allow binding to VPI/VCI already in use - ENI driver now properly handles PDUs with CRC errors - ENI driver had race condition when discarding PDUs causing new PDUs to be shifted in adapter memory by one word (which confused the driver quite a bit) - ENI driver now enables VC _after_ setting all pointers (caused crashes if data was already coming in while opening VC) - various bugs fixes related to SVC sockets - fixed GPF (in kernel) when running atmdiag without arguments - atmdiag now left-adjusts interface names - fixed ttcp.atm crash when not specifying vpi.vci - clip_xmit now checks for NULL vcc (e.g. after failure to connect) New features ------------ - zatm driver now reads ESI correctly - blocking svc_connect is now interruptible - atmdump now also displays the numeric PTI value of incoming cells - added RX/TX buffer quotas (default is 64 kB) - added OAM hooks to device driver interface (but there's no OAM support yet) Other changes ------------- - ENI driver now checks ID field of reassembly buffer descriptors - ENI driver now uses vremap - ENI driver now prints more useful physical layer type information (e.g. "MMF" and "UTP" instead of "UTOPIA") - some redesign of the protocol used for signaling between kernel and demon - disabled "Grr, servicing VCC twice" message in ENI driver - device drivers now have to adapt AAL0 cell header byte order - some cleanup in common.c:atm_getsockopt - device drivers are now required to use the peek function; protocols now must provide it Version 0.1 to 0.2 (15-AUG-1995) ================== Bug fixes --------- - VCC family field is now correctly set to protocol family in common.c:atm_create (was pvc.c:pvc_create). With protocol set to zero, this created all types of strange problems, because the family field is used to indicate whether an VCC slot is busy/free. - fixed race condition in common.c:atm_read (reader might have blocked even if data is ready) - fixed dereferencing of uninitialized skb->dev pointer in clip.c:atm_push_clip - SIOCSIFATMTCP now refuses to attach the same socket twice - zatm.c: fixed setting of the VPI/VCI mask - USAGE said ttcp uses -B for the bandwidth, but it's -P - mkdist didn't include man pages New features ------------ - added some /proc/atm functionality - added support for ATM_{VPI,VCI}_ANY - SIOCSIFATMTCP now returns the interface number and atmtcp(8) prints it - wrote atmtcp man page - added kernel part of SVC support Other changes ------------- - common.c: only root is now allowed to bind to reserved VCIs - Classical IP interfaces are now removed by downing by ifconfig; clip(8) returns immediately - PVC-connect for non-existing device now returns ENODEV instead of EINVAL - new field (type) in struct atm_dev to indicate device type - moved getsockopt(SO_CIRANGE) to common.c (removed atmtcp's own version) - added ci_range to struct atm_dev (and removed it from atmtcp's private structure) - added code to read the ESI to zatm.c (but that code doesn't seem to work yet)