- from PLD
authorMarcin Krol <hawk@tld-linux.org>
Mon, 20 Jul 2015 14:51:15 +0000 (14:51 +0000)
committerMarcin Krol <hawk@tld-linux.org>
Mon, 20 Jul 2015 14:51:15 +0000 (14:51 +0000)
format-security.patch [new file with mode: 0644]
linux-atm-llh-vbr.patch [new file with mode: 0644]
linux-atm-syslog.patch [new file with mode: 0644]
linux-atm.spec [new file with mode: 0644]
vbr-linux-atm-diffs [new file with mode: 0644]

diff --git a/format-security.patch b/format-security.patch
new file mode 100644 (file)
index 0000000..6434258
--- /dev/null
@@ -0,0 +1,11 @@
+--- linux-atm-2.5.0/src/test/ttcp.c~   2005-04-18 18:18:28.000000000 +0200
++++ linux-atm-2.5.0/src/test/ttcp.c    2012-12-12 13:58:21.940736260 +0100
+@@ -663,7 +663,7 @@
+     exit(0);
+   usage:
+-    fprintf(stderr, Usage);
++    fprintf(stderr, "%s", Usage);
+     exit(1);
+ }
diff --git a/linux-atm-llh-vbr.patch b/linux-atm-llh-vbr.patch
new file mode 100644 (file)
index 0000000..40aaf8b
--- /dev/null
@@ -0,0 +1,293 @@
+--- linux-atm-2.4.1/src/include/atm.h.orig     2004-03-30 23:01:43.000000000 +0200
++++ linux-atm-2.4.1/src/include/atm.h  2004-03-30 23:17:27.548518848 +0200
+@@ -8,7 +8,7 @@
+ #include <stdint.h>
+ #include <sys/socket.h>
+-#include <linux/atm.h>
++#include "linux/atm.h"
+ /*
+--- linux-atm-2.4.1/src/include/linux/atm.h.orig       1970-01-01 01:00:00.000000000 +0100
++++ linux-atm-2.4.1/src/include/linux/atm.h    2004-03-30 23:17:16.516196016 +0200
+@@ -0,0 +1,279 @@
++/* atm.h - general ATM declarations */
++/* taken from linux-libc-headers-2.6.4.0-1 with VBR modifications */
++
++/* Written 1995-2000 by Werner Almesberger, EPFL LRC/ICA */
++ 
++
++/*
++ * WARNING: User-space programs should not #include <linux/atm.h> directly.
++ *          Instead, #include <atm.h>
++ */
++
++#ifndef _LINUX_ATM_H
++#define _LINUX_ATM_H
++
++/*
++ * BEGIN_xx and END_xx markers are used for automatic generation of
++ * documentation. Do not change them.
++ */
++
++#include <linux/atmapi.h>
++#include <linux/atmsap.h>
++#include <linux/atmioc.h>
++
++
++/* general ATM constants */
++#define ATM_CELL_SIZE             53  /* ATM cell size incl. header */
++#define ATM_CELL_PAYLOAD          48  /* ATM payload size */
++#define ATM_AAL0_SDU              52  /* AAL0 SDU size */
++#define ATM_MAX_AAL34_PDU      65535  /* maximum AAL3/4 PDU payload */
++#define ATM_AAL5_TRAILER           8  /* AAL5 trailer size */
++#define ATM_MAX_AAL5_PDU       65535  /* maximum AAL5 PDU payload */
++#define ATM_MAX_CDV             9999  /* maximum (default) CDV */
++#define ATM_NOT_RSV_VCI                   32  /* first non-reserved VCI value */
++
++#define ATM_MAX_VPI              255  /* maximum VPI at the UNI */
++#define ATM_MAX_VPI_NNI                 4096  /* maximum VPI at the NNI */
++#define ATM_MAX_VCI            65535  /* maximum VCI */
++
++
++/* "protcol" values for the socket system call */
++#define ATM_NO_AAL    0               /* AAL not specified */
++#define ATM_AAL0      13              /* "raw" ATM cells */
++#define ATM_AAL1      1               /* AAL1 (CBR) */
++#define ATM_AAL2      2               /* AAL2 (VBR) */
++#define ATM_AAL34     3               /* AAL3/4 (data) */
++#define ATM_AAL5      5               /* AAL5 (data) */
++
++/*
++ * socket option name coding functions
++ *
++ * Note that __SO_ENCODE and __SO_LEVEL are somewhat a hack since the
++ * << 22 only reserves 9 bits for the level.  On some architectures
++ * SOL_SOCKET is 0xFFFF, so that's a bit of a problem
++ */
++
++#define __SO_ENCODE(l,n,t)    ((((l) & 0x1FF) << 22) | ((n) << 16) | \
++                              sizeof(t))
++#define __SO_LEVEL_MATCH(c,m) (((c) >> 22) == ((m) & 0x1FF))
++#define __SO_NUMBER(c)                (((c) >> 16) & 0x3f)
++#define __SO_SIZE(c)          ((c) & 0x3fff)
++
++/*
++ * ATM layer
++ */
++
++#define SO_SETCLP     __SO_ENCODE(SOL_ATM,0,int)
++                          /* set CLP bit value - TODO */
++#define SO_CIRANGE    __SO_ENCODE(SOL_ATM,1,struct atm_cirange)
++                          /* connection identifier range; socket must be
++                             bound or connected */
++#define SO_ATMQOS     __SO_ENCODE(SOL_ATM,2,struct atm_qos)
++                          /* Quality of Service setting (with vbr support) */
++#define SO_ATMSAP     __SO_ENCODE(SOL_ATM,3,struct atm_sap)
++                          /* Service Access Point */
++#define SO_ATMPVC     __SO_ENCODE(SOL_ATM,4,struct sockaddr_atmpvc)
++                          /* "PVC" address (also for SVCs); get only */
++#define SO_MULTIPOINT __SO_ENCODE(SOL_ATM, 5, int)
++                          /* make this vc a p2mp */
++
++
++/*
++ * Note @@@: since the socket layers don't really distinguish the control and
++ * the data plane but generally seems to be data plane-centric, any layer is
++ * about equally wrong for the SAP. If you have a better idea about this,
++ * please speak up ...
++ */
++
++
++/* ATM cell header (for AAL0) */
++
++/* BEGIN_CH */
++#define ATM_HDR_GFC_MASK      0xf0000000
++#define ATM_HDR_GFC_SHIFT     28
++#define ATM_HDR_VPI_MASK      0x0ff00000
++#define ATM_HDR_VPI_SHIFT     20
++#define ATM_HDR_VCI_MASK      0x000ffff0
++#define ATM_HDR_VCI_SHIFT     4
++#define ATM_HDR_PTI_MASK      0x0000000e
++#define ATM_HDR_PTI_SHIFT     1
++#define ATM_HDR_CLP           0x00000001
++/* END_CH */
++
++
++/* PTI codings */
++
++/* BEGIN_PTI */
++#define ATM_PTI_US0   0  /* user data cell, congestion not exp, SDU-type 0 */
++#define ATM_PTI_US1   1  /* user data cell, congestion not exp, SDU-type 1 */
++#define ATM_PTI_UCES0 2  /* user data cell, cong. experienced, SDU-type 0 */
++#define ATM_PTI_UCES1 3  /* user data cell, cong. experienced, SDU-type 1 */
++#define ATM_PTI_SEGF5 4  /* segment OAM F5 flow related cell */
++#define ATM_PTI_E2EF5 5  /* end-to-end OAM F5 flow related cell */
++#define ATM_PTI_RSV_RM        6  /* reserved for traffic control/resource mgmt */
++#define ATM_PTI_RSV   7  /* reserved */
++/* END_PTI */
++
++
++/*
++ * The following items should stay in linux/atm.h, which should be linked to
++ * netatm/atm.h
++ */
++
++/* Traffic description */
++
++#define ATM_NONE      0               /* no traffic */
++#define ATM_UBR               1
++#define ATM_CBR               2
++#define ATM_VBR_NRT   3
++#define ATM_VBR               ATM_VBR_NRT     /* for backward compatibility */
++#define ATM_ABR               4
++#define ATM_ANYCLASS  5               /* compatible with everything */
++#define ATM_VBR_RT    6
++
++#define ATM_MAX_PCR   -1              /* maximum available PCR */
++
++struct atm_trafprm {
++      unsigned char   traffic_class;  /* traffic class (ATM_UBR, ...) */
++      int             max_pcr;        /* maximum PCR in cells per second */
++      int             pcr;            /* desired PCR in cells per second */
++      int             min_pcr;        /* minimum PCR in cells per second */
++      int             max_cdv;        /* maximum CDV in microseconds */
++      int             max_sdu;        /* maximum SDU in bytes */
++
++      /* extra params for VBR */
++      int             scr;            /* sustained rate in cells per second */
++      int             mbs;            /* maximum burst size (MBS) in cells */
++
++        /* extra params for ABR */
++        unsigned int  icr;            /* Initial Cell Rate (24-bit) */
++        unsigned int  tbe;            /* Transient Buffer Exposure (24-bit) */ 
++        unsigned int  frtt : 24;      /* Fixed Round Trip Time (24-bit) */
++        unsigned int  rif  : 4;       /* Rate Increment Factor (4-bit) */
++        unsigned int  rdf  : 4;       /* Rate Decrease Factor (4-bit) */
++        unsigned int nrm_pres  :1;      /* nrm present bit */
++        unsigned int trm_pres  :1;            /* rm present bit */
++        unsigned int adtf_pres :1;            /* adtf present bit */
++        unsigned int cdf_pres  :1;            /* cdf present bit*/
++        unsigned int nrm       :3;            /* Max # of Cells for each forward RM cell (3-bit) */
++        unsigned int trm       :3;            /* Time between forward RM cells (3-bit) */    
++      unsigned int adtf      :10;     /* ACR Decrease Time Factor (10-bit) */
++      unsigned int cdf       :3;      /* Cutoff Decrease Factor (3-bit) */
++        unsigned int spare     :9;      /* spare bits */ 
++};
++
++struct atm_qos {
++      struct atm_trafprm txtp;        /* parameters in TX direction */
++      struct atm_trafprm rxtp __ATM_API_ALIGN;
++                                      /* parameters in RX direction */
++      unsigned char aal __ATM_API_ALIGN;
++};
++
++/* PVC addressing */
++
++#define ATM_ITF_ANY   -1              /* "magic" PVC address values */
++#define ATM_VPI_ANY   -1
++#define ATM_VCI_ANY   -1
++#define ATM_VPI_UNSPEC        -2
++#define ATM_VCI_UNSPEC        -2
++
++
++struct sockaddr_atmpvc {
++      unsigned short  sap_family;     /* address family, AF_ATMPVC  */
++      struct {                        /* PVC address */
++              short   itf;            /* ATM interface */
++              short   vpi;            /* VPI (only 8 bits at UNI) */
++              int     vci;            /* VCI (only 16 bits at UNI) */
++      } sap_addr __ATM_API_ALIGN;     /* PVC address */
++};
++
++/* SVC addressing */
++
++#define       ATM_ESA_LEN     20              /* ATM End System Address length */
++#define ATM_E164_LEN  12              /* maximum E.164 number length */
++
++#define ATM_AFI_DCC   0x39            /* DCC ATM Format */
++#define ATM_AFI_ICD   0x47            /* ICD ATM Format */
++#define ATM_AFI_E164  0x45            /* E.164 ATM Format */
++#define ATM_AFI_LOCAL 0x49            /* Local ATM Format */ 
++
++#define ATM_AFI_DCC_GROUP     0xBD    /* DCC ATM Group Format */
++#define ATM_AFI_ICD_GROUP     0xC5    /* ICD ATM Group Format */
++#define ATM_AFI_E164_GROUP    0xC3    /* E.164 ATM Group Format */
++#define ATM_AFI_LOCAL_GROUP   0xC7    /* Local ATM Group Format */
++
++#define ATM_LIJ_NONE  0               /* no leaf-initiated join */
++#define ATM_LIJ               1               /* request joining */
++#define ATM_LIJ_RPJ   2               /* set to root-prompted join */
++#define ATM_LIJ_NJ    3               /* set to network join */
++
++
++struct sockaddr_atmsvc {
++    unsigned short    sas_family;     /* address family, AF_ATMSVC */
++    struct {                          /* SVC address */
++        unsigned char prv[ATM_ESA_LEN];/* private ATM address */
++        char          pub[ATM_E164_LEN+1]; /* public address (E.164) */
++                                      /* unused addresses must be bzero'ed */
++      char            lij_type;       /* role in LIJ call; one of ATM_LIJ* */
++      uint32_t        lij_id;         /* LIJ call identifier */
++    } sas_addr __ATM_API_ALIGN;               /* SVC address */
++};
++
++
++static __inline__ int atmsvc_addr_in_use(struct sockaddr_atmsvc addr)
++{
++      return *addr.sas_addr.prv || *addr.sas_addr.pub;
++}
++
++
++static __inline__ int atmpvc_addr_in_use(struct sockaddr_atmpvc addr)
++{
++      return addr.sap_addr.itf || addr.sap_addr.vpi || addr.sap_addr.vci;
++}
++
++
++/*
++ * Some stuff for linux/sockios.h
++ */
++
++struct atmif_sioc {
++    int number;
++    int length;
++    void *arg;
++};
++
++typedef unsigned short atm_backend_t;
++struct atm_trafprm_compat {
++      unsigned char   traffic_class;  /* traffic class (ATM_UBR, ...) */
++      int             max_pcr;        /* maximum PCR in cells per second */
++      int             pcr;            /* desired PCR in cells per second */
++      int             min_pcr;        /* minimum PCR in cells per second */
++      int             max_cdv;        /* maximum CDV in microseconds */
++      int             max_sdu;        /* maximum SDU in bytes */
++        /* extra params for ABR */
++        unsigned int  icr;            /* Initial Cell Rate (24-bit) */
++        unsigned int  tbe;            /* Transient Buffer Exposure (24-bit) */ 
++        unsigned int  frtt : 24;      /* Fixed Round Trip Time (24-bit) */
++        unsigned int  rif  : 4;       /* Rate Increment Factor (4-bit) */
++        unsigned int  rdf  : 4;       /* Rate Decrease Factor (4-bit) */
++        unsigned int nrm_pres  :1;      /* nrm present bit */
++        unsigned int trm_pres  :1;            /* rm present bit */
++        unsigned int adtf_pres :1;            /* adtf present bit */
++        unsigned int cdf_pres  :1;            /* cdf present bit*/
++        unsigned int nrm       :3;            /* Max # of Cells for each forward RM cell (3-bit) */
++        unsigned int trm       :3;            /* Time between forward RM cells (3-bit) */    
++      unsigned int adtf      :10;     /* ACR Decrease Time Factor (10-bit) */
++      unsigned int cdf       :3;      /* Cutoff Decrease Factor (3-bit) */
++        unsigned int spare     :9;      /* spare bits */ 
++};
++
++struct atm_qos_compat {
++      struct atm_trafprm_compat txtp; /* parameters in TX direction */
++      struct atm_trafprm_compat rxtp __ATM_API_ALIGN;
++                                      /* parameters in RX direction */
++      unsigned char aal __ATM_API_ALIGN;
++};
++
++#define SO_ATMQOS_COMPAT __SO_ENCODE(SOL_ATM,2,struct atm_qos_compat)
++                          /* Quality of Service setting (no vbr support) */
++#endif
diff --git a/linux-atm-syslog.patch b/linux-atm-syslog.patch
new file mode 100644 (file)
index 0000000..5957f6d
--- /dev/null
@@ -0,0 +1,11 @@
+--- atm/src/lib/diag.c~        Mon Aug 23 21:08:19 1999
++++ atm/src/lib/diag.c Fri Nov 17 16:33:48 2000
+@@ -86,7 +86,7 @@
+       return;
+     }
+     if (!strcmp(name,"syslog")) {
+-      if (app_name) openlog(app_name,LOG_CONS,LOG_DAEMON);
++      if (app_name) openlog(app_name,LOG_PID,LOG_DAEMON);
+       log_to = NULL;
+     }
+     else if (!(log_to = fopen(name,"w"))) {
diff --git a/linux-atm.spec b/linux-atm.spec
new file mode 100644 (file)
index 0000000..3ef386c
--- /dev/null
@@ -0,0 +1,227 @@
+#
+# Conditional build:
+%bcond_without oam     # without OAM (which needs ATM/OAM kernel patch)
+%bcond_without vbr     # without VBR (which needs ATM/VBR kernel patch)
+#
+Summary:       ATM on Linux
+Summary(pl.UTF-8):     Obsługa sieci ATM w Linuksie
+Name:          linux-atm
+Version:       2.5.2
+Release:       2
+License:       GPL v2+ (programs), LGPL v2 (library)
+Group:         Networking
+Source0:       http://download.sourceforge.net/linux-atm/%{name}-%{version}.tar.gz
+# Source0-md5: d49499368c3cf15f73a05d9bce8824a8
+Source1:       %{name}-2.4.0.1-pldrc.tar.gz
+# Source1-md5: c76c7dbac5797db883b2b22687243839
+Patch0:                %{name}-syslog.patch
+Patch1:                ftp://ftp.cmf.nrl.navy.mil/pub/chas/linux-atm/vbr/vbr-%{name}-diffs
+Patch2:                %{name}-llh-vbr.patch
+Patch4:                format-security.patch
+URL:           http://linux-atm.sourceforge.net/
+BuildRequires: autoconf
+BuildRequires: automake
+BuildRequires: flex
+BuildRequires: libtool
+BuildRequires: rpmbuild(macros) >= 1.268
+Requires:      %{name}-libs = %{version}-%{release}
+Obsoletes:     atm
+Obsoletes:     br2684ctl
+Conflicts:     kernel-headers < 2.4
+BuildRoot:     %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
+
+%description
+ATM (Asynchronous Transfer Mode) networking for Linux is still under
+development now but it works quite stable now and has been already
+included in 2.4.x series kernels. In PLD Linux it consists of some
+patches for current kernel version containing drivers for a few
+popular ATM cards (ex. Fore, Madge, IDT) and PVC and SVC support. It
+also includes programs and scripts providing the most popular ATM
+services, i.e. Classical IP (IP over ATM), LAN Emulation clients and
+servers, Multiprotocol Over ATM (MPOA) and some other goodies.
+
+%description -l pl.UTF-8
+Obsługa sieci ATM (Asynchronous Transfer Mode) w Linuksie, mimo iż
+jest nadal rozwijana, działa już bardzo stabilnie i została już
+włączona do jąder serii 2.4.x. W Linuksie PLD składa się ona z łat
+(patches) do bieżącej wersji jądra zawierających sterowniki do kilku
+popularnych kart (m.in Fore, Madge, IDT) i zapewniających zestawianie
+połączeń PVC i SVC oraz zestawu programów i skryptów (ten pakiet)
+realizujących najpopularniejsze usługi ATM, tj. Classical IP (IP over
+ATM), klientów i serwery LAN Emulation (LANE), Multiprotocol Over ATM
+(MPOA) i inne rozmaitości.
+
+%package libs
+Summary:       ATM on Linux - shared library
+Summary(pl.UTF-8):     Biblioteka współdzielona do obsługi sieci ATM w Linuksie
+License:       LGPL v2
+Group:         Libraries
+
+%description libs
+ATM on Linux - shared library.
+
+%description libs -l pl.UTF-8
+Biblioteka współdzielona do obsługi sieci ATM w Linuksie.
+
+%package devel
+Summary:       ATM on Linux - developer's package
+Summary(pl.UTF-8):     Obsługa sieci ATM w Linuksie - pliki nagłówkowe
+License:       LGPL v2
+Group:         Development/Libraries
+Requires:      %{name}-libs = %{version}-%{release}
+Obsoletes:     atm-devel
+
+%description devel
+Header files needed for development ATM applications for Linux.
+
+%description devel -l pl.UTF-8
+Pliki nagłówkowe niezbędne do opracowywania aplikacji ATM dla Linuksa.
+
+%package static
+Summary:       ATM on Linux - static libraries
+Summary(pl.UTF-8):     Obsługa sieci ATM w Linuksie - biblioteki statyczne
+License:       LGPL v2
+Group:         Development/Libraries
+Requires:      %{name}-devel = %{version}-%{release}
+Obsoletes:     atm-static
+
+%description static
+Static libraries for development ATM applications for Linux.
+
+%description static -l pl.UTF-8
+Biblioteki statyczne do opracowywania aplikacji ATM dla Linuksa.
+
+%package rc-scripts
+Summary:       ATM on Linux - rc-scripts
+Summary(pl.UTF-8):     Obsługa sieci ATM w Linuksie - skrypty startowe
+Group:         Base
+Requires(post,preun):  /sbin/chkconfig
+Requires:      %{name} = %{version}-%{release}
+Requires:      rc-scripts >= 0.2.9
+Obsoletes:     atm-rc-scripts
+
+%description rc-scripts
+rc-scripts for ATM support.
+
+%description rc-scripts -l pl.UTF-8
+Skrypty startowe dla wsparcia obsługi ATM.
+
+%package firmware
+Summary:       Firmware for Fore PCA/SBA 200e ATM NICs
+Summary(pl.UTF-8):     Firmware dla kart siecowych ATM Fore PCA/SBA 200e
+Group:         Base/Kernel
+BuildArch:     noarch
+
+%description firmware
+Firmware for Fore PCA/SBA 200e ATM NICs.
+
+%description firmware -l pl.UTF-8
+Firmware dla kart siecowych ATM Fore PCA/SBA 200e.
+
+%prep
+%setup -q -a1
+%patch0 -p1
+%if %{with vbr}
+%patch1 -p1
+%patch2 -p1
+%endif
+%patch4 -p1
+
+%build
+%{__libtoolize}
+%{__aclocal}
+%{__automake}
+%{__autoconf}
+%configure \
+       --sysconfdir=%{_sysconfdir}/atm \
+       --enable-cisco \
+       --enable-mpoa_1_1 \
+       --enable-multipoint
+
+%{__make}
+
+%install
+rm -rf $RPM_BUILD_ROOT
+install -d $RPM_BUILD_ROOT%{_sysconfdir}/{atm,sysconfig/interfaces,rc.d/init.d} \
+       $RPM_BUILD_ROOT/lib/rc-scripts \
+       $RPM_BUILD_ROOT/var/log/atm
+
+%{__make} install \
+       DESTDIR=$RPM_BUILD_ROOT
+
+install src/config/hosts.atm $RPM_BUILD_ROOT%{_sysconfdir}
+install src/extra/ANS/e164_cc $RPM_BUILD_ROOT%{_sysconfdir}
+
+install pld/atm/*.conf $RPM_BUILD_ROOT%{_sysconfdir}/atm
+install pld/init.d/atm $RPM_BUILD_ROOT/etc/rc.d/init.d
+install pld/sysconfig/atm $RPM_BUILD_ROOT/etc/sysconfig
+install pld/network-scripts/{ifup-*,ifdown-*} \
+               $RPM_BUILD_ROOT/lib/rc-scripts
+
+%clean
+rm -rf $RPM_BUILD_ROOT
+
+%post  libs -p /sbin/ldconfig
+%postun        libs -p /sbin/ldconfig
+
+%post rc-scripts
+/sbin/chkconfig --add atm
+%service atm restart
+
+%preun rc-scripts
+if [ "$1" = "0" ]; then
+       %service atm stop
+       /sbin/chkconfig --del atm
+fi
+
+%files
+%defattr(644,root,root,755)
+%doc doc/README.* doc/atm-linux-howto.txt AUTHORS BUGS COPYING ChangeLog README THANKS
+%config %{_sysconfdir}/e164_cc
+%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/hosts.atm
+%attr(750,root,root) %dir %{_sysconfdir}/atm
+%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/atm/atmsigd.conf
+%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/atm/ilmi.conf
+%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/atm/lane.conf
+%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/atm/lecs.conf
+%attr(755,root,root) %{_bindir}/*
+%attr(755,root,root) %{_sbindir}/*
+%attr(751,root,root) /var/log/atm
+%{_mandir}/man4/atmsigd.conf.4*
+%{_mandir}/man7/qos.7*
+%{_mandir}/man7/sap.7*
+%{_mandir}/man8/*
+
+%files libs
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir}/libatm.so.*.*.*
+%attr(755,root,root) %ghost %{_libdir}/libatm.so.2
+
+%files devel
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir}/libatm.so
+%{_libdir}/libatm.la
+%{_includedir}/atm*.h
+
+%files static
+%defattr(644,root,root,755)
+%{_libdir}/libatm.a
+
+%files rc-scripts
+%defattr(644,root,root,755)
+%doc pld/README.PLD pld/interfaces/ifcfg-*
+%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/atm
+%attr(755,root,root) /lib/rc-scripts/ifup-atm
+%attr(755,root,root) /lib/rc-scripts/ifup-atm.post
+%attr(755,root,root) /lib/rc-scripts/ifup-lec
+%attr(755,root,root) /lib/rc-scripts/ifup-nas
+%attr(755,root,root) /lib/rc-scripts/ifdown-atm
+%attr(755,root,root) /lib/rc-scripts/ifdown-lec
+%attr(755,root,root) /lib/rc-scripts/ifdown-nas
+%attr(754,root,root) /etc/rc.d/init.d/atm
+
+%files firmware
+%defattr(644,root,root,755)
+/lib/firmware/pca200e.bin
+/lib/firmware/pca200e_ecd.bin2
+/lib/firmware/sba200e_ecd.bin2
diff --git a/vbr-linux-atm-diffs b/vbr-linux-atm-diffs
new file mode 100644 (file)
index 0000000..2bd012c
--- /dev/null
@@ -0,0 +1,221 @@
+Index: linux-atm/configure.in
+===================================================================
+RCS file: /afs/cmf/project/cvsroot/linux-atm/configure.in,v
+retrieving revision 1.2
+diff -u -r1.2 configure.in
+--- linux-atm/configure.in     3 Jan 2002 01:59:00 -0000       1.2
++++ linux-atm/configure.in     9 Apr 2003 12:41:37 -0000
+@@ -13,7 +13,7 @@
+ AM_INIT_AUTOMAKE(linux-atm,2.4.0)
+-LIBVER_CURRENT="1"
++LIBVER_CURRENT="2"
+ LIBVER_REVISION="0"
+ LIBVER_AGE="0"
+ AC_SUBST(LIBVER_CURRENT)
+Index: linux-atm/src/include/atm.h
+===================================================================
+RCS file: /afs/cmf/project/cvsroot/linux-atm/src/include/atm.h,v
+retrieving revision 1.1.1.1
+diff -u -r1.1.1.1 atm.h
+--- linux-atm/src/include/atm.h        31 Dec 2001 18:03:10 -0000      1.1.1.1
++++ linux-atm/src/include/atm.h        8 Apr 2003 15:09:19 -0000
+@@ -83,7 +83,7 @@
+ #define MAX_ATM_ADDR_LEN (2*ATM_ESA_LEN+ATM_E164_LEN+5)
+                               /* 4 dots, 1 plus */
+ #define MAX_ATM_NAME_LEN 256  /* wild guess */
+-#define MAX_ATM_QOS_LEN 116   /* 5+4+2*(3+3*(7+9)+2)+1 */
++#define MAX_ATM_QOS_LEN 191   /* 7+1+4+2*(1+3+5*(8+8+1))+1 */
+ #define MAX_ATM_SAP_LEN       255     /* BHLI(27)+1+3*BLLI(L2=33,L3=41,+1)+2 */
+Index: linux-atm/src/lib/qos2text.c
+===================================================================
+RCS file: /afs/cmf/project/cvsroot/linux-atm/src/lib/qos2text.c,v
+retrieving revision 1.1.1.1
+diff -u -r1.1.1.1 qos2text.c
+--- linux-atm/src/lib/qos2text.c       31 Dec 2001 18:03:11 -0000      1.1.1.1
++++ linux-atm/src/lib/qos2text.c       8 Apr 2003 14:42:51 -0000
+@@ -2,6 +2,7 @@
+               representation */
+ /* Written 1996-2000 by Werner Almesberger, EPFL-LRC */
++/* VBR support added, kaczor@dgt-lab.com.pl */ 
+ #if HAVE_CONFIG_H
+ #include <config.h>
+@@ -33,6 +34,8 @@
+     FLD(pcr);
+     FLD(min_pcr);
+     FLD(max_sdu);
++    FLD(scr);
++    FLD(mbs);
+ }
+@@ -71,8 +74,16 @@
+       case ATM_CBR:
+           strcpy(buffer,"cbr");
+           pos += 3;
++          break;            
++        case ATM_VBR_RT:
++          strcpy(buffer,"rt-vbr");
++          pos += 6;
+           break;
+-      case ATM_ABR:
++      case ATM_VBR_NRT:
++          strcpy(buffer,"nrt-vbr");
++          pos += 7;
++          break;      
++        case ATM_ABR:
+           strcpy(buffer,"abr");
+           pos += 3;
+           break;
+Index: linux-atm/src/lib/text2qos.c
+===================================================================
+RCS file: /afs/cmf/project/cvsroot/linux-atm/src/lib/text2qos.c,v
+retrieving revision 1.1.1.1
+diff -u -r1.1.1.1 text2qos.c
+--- linux-atm/src/lib/text2qos.c       31 Dec 2001 18:03:11 -0000      1.1.1.1
++++ linux-atm/src/lib/text2qos.c       8 Apr 2003 15:12:52 -0000
+@@ -2,6 +2,9 @@
+               encoding */
+ /* Written 1996-2000 by Werner Almesberger, EPFL-LRC/ICA */
++/* VBR support added,  kaczor@dgt-lab.com.pl */
++
++
+ #if HAVE_CONFIG_H
+ #include <config.h>
+@@ -12,6 +15,7 @@
+ #include <string.h>
+ #include <ctype.h>
+ #include <limits.h>
++#include <stdio.h>
+ #include "atm.h"
+@@ -86,16 +90,16 @@
+     if (*(*text)++ != ':') return -1;
+     while (1) {
+       if (!**text) return -1;
+-      switch (fetch(text,"max_pcr=","pcr=","min_pcr=","max_sdu=","sdu=",
++      switch (fetch(text,"max_pcr=","pcr=","min_pcr=","max_sdu=","sdu=","scr=","mbs=", 
+         NULL)) {
+           case 0:
+               if ((value = __t2q_get_rate(text,0)) == RATE_ERROR) return -1;
+-              if (a) a->max_pcr = value;
++              if (a) a->max_pcr = value; 
+               if (b) b->max_pcr = value;
+               break;
+           case 1:
+               if ((value = __t2q_get_rate(text,0)) == RATE_ERROR) return -1;
+-              if (a) a->pcr = value;
++              if (a) a->pcr = value; 
+               if (b) b->pcr = value;
+               break;
+           case 2:
+@@ -112,6 +116,20 @@
+               if (a) a->max_sdu = value;
+               if (b) b->max_sdu = value;
+               break;
++          case 5: 
++              if ((value = __t2q_get_rate(text,1)) == RATE_ERROR) return -1;
++              if (value == ATM_MAX_PCR) return -1;
++              if (a) a->scr = value; 
++              if (b) b->scr = value;
++              break;
++          case 6:
++              value = strtol(*text,&end,10);
++              if (value < 0) return -1;
++              *text = end;
++              if (a) a->mbs = value; 
++              if (b) b->mbs = value;
++              break;
++    
+           default:
+               return 0;
+       }
+@@ -131,20 +149,26 @@
+     do {
+       static const unsigned char aal_number[] = { ATM_AAL0, ATM_AAL5 };
+       int item;
+-
+-      item = fetch(&text,"!none","ubr","cbr","vbr","abr","aal0","aal5",NULL);
++ 
++      item = fetch(&text,"!none","ubr","cbr","nrt-vbr","abr","aal0","aal5","rt-vbr","vbr",NULL);
+       switch (item) {
+           case 1:
+           case 2:
+-              /* we don't support VBR yet */
+-          case 4:
+-              traffic_class = item;
++          case 3: 
++              traffic_class = item;   /* ATM_UBR, ATM_CBR or ATM_VBR_NRT */
+               break;
++            case 7:
++                traffic_class = 6;    /* ATM_VBR_RT */
++                break;
++            case 8:
++                traffic_class = 3;    /* alias for ATM_VBR_NRT */
++                break;
+           case 5:
+           case 6:
+               aal = aal_number[item-5];
+               break;
+-          default:
++          
++            default: //  abr is switched off
+               return -1;
+       }
+     }
+Index: linux-atm/src/man/qos.7
+===================================================================
+RCS file: /afs/cmf/project/cvsroot/linux-atm/src/man/qos.7,v
+retrieving revision 1.1.1.1
+diff -u -r1.1.1.1 qos.7
+--- linux-atm/src/man/qos.7    31 Dec 2001 18:03:11 -0000      1.1.1.1
++++ linux-atm/src/man/qos.7    8 Apr 2003 15:12:03 -0000
+@@ -19,7 +19,12 @@
+ .IP \fBcbr\fP
+ Constant Bit Rate
+ .IP \fBabr\fP
+-Available Bit Rate
++Available Bit Rate (rarely implemented in drivers)
++.IP \fBnrt-vbr\fP
++Non-Real-Time Variable Bit Rate (rarely implemented in drivers).
++Can also be abbreviated as \fBvbr\fP.
++.IP \fBrt-vbr\fP
++Real-Time Variable Bit Rate (rarely implemented in drivers)
+ .P
+ The following AAL types are recognized:
+ .IP \fBaal0\fP
+@@ -50,11 +55,18 @@
+ .IP \fBmin_pcr=\fIrate\fP
+ The lower limit for the peak cell rate to assign. If omitted, any rate above
+ zero can be chosen.
++.IP \fBscr=\fIrate\fP
++Sustainable cell rate for nrt-vbr and rt-vbr.
+ .IP \fBsdu=\fIsize\fP
+ is a synonym for \fBmax_sdu=\fIsize\fP
+ .IP \fBmax_sdu=\fIsize\fP
+ The size of the largest packet that may be sent or received. If omitted,
+ a context-dependent default value is used.
++.IP \fBmbs=\fIsize\fP
++Maximum Burst Size parameter for nrt-vbr and rt-vbr. The number of cells
++that may be transmitted at the peek rate before switching to scr.
++cdvt currently cannot be defined for vbr and it is assumed to be as small
++as possible.
+ .P
+ Values are specified as follows:
+ .IP \fIrate\fP
+@@ -90,6 +102,7 @@
+   CBR:max_pcr=11Mbps,min_pcr=10mbps,sdu=8192
+   aal5,ubr:tx:none
+   cbr:tx:pcr=30000,rx:none
++  rt-vbr:pcr=100000,scr=10000,mbs=1000
+ .sp
+ .fi
+ The following specificiations are equivalent: