This document lists the API changes that have occurred in ATM on Linux since "Linux ATM API - Draft, version 0.4". For each change, the most relevant section(s) in the API draft and the release where the change first occurred are listed. All releases up to 0.38 are considered. Please send corrections to Werner.Almesberger@epfl.ch Inclusion of linux/* header files is deprecated (rel. 0.37) Applications should avoid directly including header files from /usr/include/linux. Including atm.h (from /usr/include) provides all declarations "normal" applications require. LIJ parameters (section 2.4; rel. ?) The fields "lij_type" and "lij_id" have been added to the field "sas_addr" of "struct sockaddr_atmsvc". For future use. SO_ATMSAP (sections 2.4.1, 2.8.2; rel. 0.33) The fields "bhli" and "blli" have been removed from the "sas_addr" field of "struct sockaddr_atmsvc". Instead, "struct atm_sap" with the socket option "SO_ATMSAP" has to be used. Multiple BLLI elements (section 2.4.2; rel. 0.33) BLLI elements are now stored in an array of length "ATM_MAX_BLLI" in "struct atm_sap". Unused elements must have all fields set to zero. Before, a linked list was used for BLLI elements. UNI 4.0 signaling additions (section 2.4.3; rel. 0.33) Various new elements have been added to "struct atm_blli" to support UNI 4.0. "class" is now "traffic_class" (section 2.6.1; rel. 0.17) For compatibility with C++, the field "class" in "struct atm_trafprm" has been changed to "traffic_class". Traffic class must agree in both directions (section 2.6.2; rel. 0.20) The traffic class in either direction must either be the same, or one of them may be ATM_NONE. Support for UBR peak-cell-rate limiting (sections 2.6.2, 2.6.3; rel. 0.20) Traffic parameters specifying a non-infinite PCR are no longer ignored for UBR. Instead, the PCR of the UBR VC is limited to that value. New library functions (section 2.7; rel. 0.20, 0.33, 0.34) "text2qos" and "qos2text" (atm.h) convert between the binary encoding of a QoS specification and its textual representation. The textual format is described in "man qos". "qos_equal" (atm.h) compares QoS specifications for equality. "text2sap" and "sap2text" (atm.h) convert between the binary encoding of a SAP (Service Access Point) specification and its textual representation. The textual format is described in "man sap". "sap_equal" (atm.h) compares SAP specifications for equality or compatibility, and optionally returns the resulting specification. "atmsvc_addr_in_use" and "atmpvc_addr_in_use" (linux/atm.h) test if an address structure is in use or not. New text2atm/atm2text flags (sections 2.7.1, 2.7.2; rel. 0.22) The flags "A2T_LOCAL" and "T2A_LOCAL" force name resolution to be local (i.e. not using ANS). Default AAL type is AAL5 (section 2.8.1; rel. 0.27) Specifying zero for the AAL type yields AAL5. (Before, the undocumented default was AAL0.) AAL type specified with QoS (sections 2.8.1, 2.8.2; rel. 0.27) The AAL type is no longer specified with the third argument of the "socket" system call but with the field "aal" of "struct atm_qos" and the "SO_ATMQOS" socket option. SO_ATMQOS (section 2.8.2; rel. 0.17 ?) The fields "sap_txtp" and "sap_rxtp" in "struct sockaddr_atmpvc", and "sas_txtp" and "sas_rxtp" in "struct sockaddr_atmsvc" have been removed. Applications must use the "SO_ATMQOS" socket option. SO_ATMQOS use for modification (section 2.8.4; rel. 20) Changing the socket option "SO_ATMQOS" on an open PVC or SVC socket will attempt traffic parameter modification. New ioctl ATM_SETSC (section 3; rel. 0.20) For future use. New ioctls ATM_SETESI, ATM_SETESIF (section 4.2; rel. 0.33) The ioctl "ATM_SETESI" can be used to set the ESI value of an ATM interface if the driver does not specify the ESI on interface initialization. "ATM_SETESIF" sets the ESI also if an ESI has already been set. PCR selection (section 2.6.3; rel. 0.33) A field "pcr" has been added to "atm_trafprm" to indicate the desired PCR. The PCR is now selected according to the following table: min max pcr result min max pcr result - - - * (UBR only) x - - x+ - - * * x - * * - - z z- x - z z- - * - * x * - x+ - * * * x * * * - * z z- x * z z- - y - y- x y - x+ - y * y- x y * y- - y z z- x y z z- * = maximum, - = absent (0), x = value "x", x+ = x or next value above x, x- = x or next value below. atm_equal supports both PVC and SVC addresses (section 2.7.3; rel. 0.36) "atm_equal" is no longer limited to SVC addresses. The address arguments of "atm_equal" are now of type "struct sockaddr *" instead of "struct sockaddr_atmsvc *".