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-<version>.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 <atm_addr> 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)
