You can subscribe to this list here.
2001 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
(2) |
Sep
(164) |
Oct
(104) |
Nov
|
Dec
|
---|---|---|---|---|---|---|---|---|---|---|---|---|
2003 |
Jan
|
Feb
|
Mar
|
Apr
(3) |
May
(17) |
Jun
|
Jul
(11) |
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2004 |
Jan
|
Feb
(8) |
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
(4) |
Oct
(1) |
Nov
|
Dec
(6) |
2005 |
Jan
(1) |
Feb
(2) |
Mar
|
Apr
(13) |
May
|
Jun
|
Jul
|
Aug
|
Sep
(7) |
Oct
(2) |
Nov
(6) |
Dec
|
2007 |
Jan
|
Feb
(3) |
Mar
|
Apr
(2) |
May
|
Jun
|
Jul
(6) |
Aug
(36) |
Sep
(3) |
Oct
(1) |
Nov
|
Dec
(23) |
2008 |
Jan
(33) |
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2009 |
Jan
|
Feb
|
Mar
(13) |
Apr
|
May
|
Jun
|
Jul
|
Aug
(32) |
Sep
|
Oct
|
Nov
(14) |
Dec
|
2010 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
(2) |
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
(13) |
2011 |
Jan
(16) |
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2013 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
(1) |
Nov
|
Dec
|
From: chas w. <ch...@us...> - 2008-01-01 00:15:26
|
Update of /cvsroot/linux-atm/linux-atm/src/lane In directory sc8-pr-cvs6.sourceforge.net:/tmp/cvs-serv24942/src/lane Modified Files: dump.c Added Files: .cvsignore Log Message: merge 2.5.0 branch into the head Index: dump.c =================================================================== RCS file: /cvsroot/linux-atm/linux-atm/src/lane/dump.c,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** dump.c 9 Oct 2001 22:33:06 -0000 1.2 --- dump.c 1 Jan 2008 00:14:50 -0000 1.3 *************** *** 186,190 **** case DT_FILE: va_start(args, format); ! printf_ret = vsprintf(buffer, format, args); assert(printf_ret > 0); printf_ret = fprintf(dump_filep, "%s%s%s", el_prefix[level], buffer, --- 186,190 ---- case DT_FILE: va_start(args, format); ! printf_ret = vsnprintf(buffer, BUFSIZE, format, args); assert(printf_ret > 0); printf_ret = fprintf(dump_filep, "%s%s%s", el_prefix[level], buffer, *************** *** 197,201 **** case DT_SYSLOG: va_start(args, format); ! printf_ret = vsprintf(buffer, format, args); assert(printf_ret > 0); syslog(el_to_log[level], "%s", buffer); --- 197,201 ---- case DT_SYSLOG: va_start(args, format); ! printf_ret = vsnprintf(buffer, BUFSIZE, format, args); assert(printf_ret > 0); syslog(el_to_log[level], "%s", buffer); *************** *** 221,225 **** va_start(args, format); ! sprintf_ret = vsprintf(buffer2, buffer, args); assert(sprintf_ret > 0); va_end(args); --- 221,225 ---- va_start(args, format); ! sprintf_ret = vsnprintf(buffer2, 2048, buffer, args); assert(sprintf_ret > 0); va_end(args); |
From: chas w. <ch...@us...> - 2008-01-01 00:15:25
|
Update of /cvsroot/linux-atm/linux-atm/src/config/init-redhat In directory sc8-pr-cvs6.sourceforge.net:/tmp/cvs-serv24942/src/config/init-redhat Modified Files: atm atm-sysconfig ifcfg-lec0 Added Files: .cvsignore ifcfg-atm0 ifcfg-nas0 Removed Files: Makefile.am Log Message: merge 2.5.0 branch into the head Index: atm =================================================================== RCS file: /cvsroot/linux-atm/linux-atm/src/config/init-redhat/atm,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** atm 9 Oct 2001 22:33:06 -0000 1.2 --- atm 1 Jan 2008 00:14:49 -0000 1.3 *************** *** 1,12 **** #!/bin/sh # ! # /etc/rc.d/init.d/atm - Bring up/down ATM # # Source function library. ! . /etc/rc.d/init.d/functions if [ ! -f /etc/sysconfig/atm ]; then ! exit 0 fi --- 1,64 ---- #!/bin/sh # ! # /etc/rc.d/init.d/atm - Bring up/down ATM ! # ! # chkconfig: 2345 09 91 ! # description: Loads/Unloads ATM drivers and starts/stops basic services # + ### BEGIN INIT INFO + # Provides: atm + # Required-Start: $local_fs dbus haldaemon + # Should-Start: + # Required-Stop: + # Should-Stop: + # Default-Start: 2 3 5 + # Default-Stop: + # Description: Loads/Unloads ATM drivers and starts/stops basic services + ### END INIT INFO # Source function library. ! ! # source function library ! if [ -f /etc/init.d/functions ]; then ! . /etc/init.d/functions ! alias start_daemon=daemon ! elif [ -f /etc/rc.d/init.d/functions ]; then ! . /etc/rc.d/init.d/functions ! alias start_daemon=daemon ! elif [ -f /lib/lsb/init-functions ]; then ! . /lib/lsb/init-functions ! elif [ -f /sbin/startproc ]; then ! alias start_daemon=/sbin/startproc ! else ! exit 0 ! fi ! ! if [ -f /etc/rc.status ]; then ! . /etc/rc.status ! else ! rc_reset() { RETVAL=0; } ! rc_failed() ! { ! if [ -z "$1" ]; then ! RETVAL=1; ! elif [ "$1" -ne 0 ]; then ! RETVAL=$1; ! fi ! } ! rc_check() { rc_failed $?; } ! rc_exit() { exit $RETVAL; } ! rc_status() ! { ! if [ "$?" = "-v" ]; then ! [ $RETVAL -eq 0 ] && success || failure ! fi ! } ! ! fi ! rc_reset if [ ! -f /etc/sysconfig/atm ]; then ! rc_failed 6 ! rc_exit fi *************** *** 15,61 **** [ "$ATM" != yes ] && exit 0 ! cd /etc/sysconfig/network-scripts case "$1" in ! start) ! echo -n "Starting ATM demons: " ! daemon atmsigd -b -l syslog -D /var/tmp -t 20 ! daemon ilmid -b -l syslog `[ -z "$ILMIQOS" ] || echo -q $ILMIQOS` ! sleep 3 # let's rest a second give signalling and ilmid a chance to get started. if [ "$LANE" = yes ]; then ! for i in /etc/sysconfig/network-scripts/ifcfg-lec[0-9]; do ! source $i ! zeppelin -n $ELAN -i $INTERFACEID -l $SELBYTE -F syslog & done fi - [ "$IPATM" = yes ] && daemon atmarpd -b -l syslog -m - # launch LANE demon(s) ... - [ "$AREQUIPA" = yes ] && daemon arequipad -b -l syslog - echo touch /var/lock/subsys/atm ;; ! stop) if [ "$LANE" = yes ]; then ! for n in ifcfg-lec[0-9]; do ! ./ifdown $n ! killproc zeppelin ! done ! fi ! if [ "$IPATM" = yes ]; then ! for n in ifcfg-atm[0-9]; do ! ./ifdown $n ! done fi ! echo -n "Stopping ATM demons: " ! if [ "$IPATM" = yes ]; then ! [ "$AREQUIPA" = yes ] && killproc arequipad ! killproc atmarpd fi killproc atmsigd # kill ILMID later, so we don't get complaints killproc ilmid ! echo rm -f /var/lock/subsys/atm ;; ! *) echo "Usage: atm {start|stop}" exit 1 esac --- 67,177 ---- [ "$ATM" != yes ] && exit 0 ! if [ -d /etc/sysconfig/network-scripts ]; then ! cd /etc/sysconfig/network-scripts ! elif [ -d /etc/sysconfig/network ]; then ! cd /etc/sysconfig/network ! else ! rc_failed ! rc_status -v ! rc_exit ! fi ! ! clipinterfaces=$(ls ifcfg-atm[0-9] 2> /dev/null | sed -e 's/^ifcfg-//g') ! laneinterfaces=$(ls ifcfg-lec[0-9] 2> /dev/null | sed -e 's/^ifcfg-//g') ! nasinterfaces=$(ls ifcfg-nas[0-9] 2> /dev/null | sed -e 's/^ifcfg-//g') case "$1" in ! start) ! echo -n "Starting ATM demons" ! ! [ -z "$ATMMODULES" ] || /sbin/modprobe "$ATMMODULES" ! ! start_daemon /usr/sbin/atmsigd -b -u uni31 -l syslog -D /var/tmp -t 20 -c /etc/atmsigd.conf ! rc_check ! start_daemon /usr/sbin/ilmid -b -u 3.1 -l syslog ${ILMIQOS:+ -q $ILMIQOS} ! rc_check ! if [ "$IPATM" = yes ]; then ! start_daemon /usr/sbin/atmarpd -b -l syslog -m ! rc_check ! for i in $clipinterfaces; do ! /usr/sbin/atmarp -c $i ! rc_check ! done ! fi ! if [ "$BR2684" = yes ]; then ! for i in $nasinterfaces; do ! (. ifcfg-$i ! ! ITF=`echo $i | sed -e 's/nas//'` ! start_daemon /usr/sbin/br2684ctl -b \ ! -c $ITF \ ! ${PAYLOAD:+ -p $PAYLOAD } \ ! ${ENCAPSULATION:+ -e $ENCAPSULATION} \ ! ${QOS:+ -q $QOS} \ ! ${VPIVCI:+ -a $VPIVCI} ! rc_check ! ) ! done ! fi if [ "$LANE" = yes ]; then ! for i in $laneinterfaces; do ! (. ifcfg-$i ! ! ITF=`echo $i | sed -e 's/lec//'` ! start_daemon /usr/sbin/zeppelin -b \ ! -i $ITF -l $ITF \ ! ${VLAN:+ -n $VLAN} \ ! ${LECS:+ -c $LECS} \ ! ${VERSION:+ -$VERSION} \ ! ${MTU:+ -t $MTU} \ ! ${ESI:+ -e $ESI} \ ! ${V2CAPABLE:+ -2} \ ! ${DEBUG:+ -m $DEBUG} \ ! -F /var/log/${DEVICE} ! rc_check ! ) done fi touch /var/lock/subsys/atm + rc_status -v ;; ! ! stop) ! echo -n "Stopping ATM demons" if [ "$LANE" = yes ]; then ! for i in $laneinterfaces; do ! ./ifdown $i ! [ -f "/var/run/${i}.pid" ] && kill -TERM `cat /var/run/${i}.pid` ! done fi ! if [ "$BR2684" = yes ]; then ! for i in $nasinterfaces; do ! ./ifdown $i ! [ -f "/var/run/br2684ctl-${i}.pid" ] && kill -TERM `cat /var/run/br2684ctl-${i}.pid` ! done fi + if [ "$IPATM" = yes ]; then + for i in $clipinterfaces; do + ./ifdown $i + done + killproc atmarpd + fi killproc atmsigd # kill ILMID later, so we don't get complaints killproc ilmid ! ! [ -z "$ATMMODULES" ] || /sbin/modprobe -r "$ATMMODULES" ! rm -f /var/lock/subsys/atm + rc_status -v ;; ! ! restart) ! $0 stop ! $0 start ! ;; ! ! *) ! echo "Usage: atm {start|stop|restart}" exit 1 esac + rc_exit Index: atm-sysconfig =================================================================== RCS file: /cvsroot/linux-atm/linux-atm/src/config/init-redhat/atm-sysconfig,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** atm-sysconfig 9 Oct 2001 22:33:06 -0000 1.2 --- atm-sysconfig 1 Jan 2008 00:14:49 -0000 1.3 *************** *** 4,8 **** ATM=yes # enable ATM support at all IPATM=no # Classical IP over ATM (using ATMARP) ! AREQUIPA=no # Application REQUested IP over ATM ! LANE=yes # LAN Emulation (client; doesn't work yet) # ILMIQOS="ubr:pcr=100kbps" # optional: QOS to use on the ILMI VC --- 4,11 ---- ATM=yes # enable ATM support at all IPATM=no # Classical IP over ATM (using ATMARP) ! BR2684=no # RFC1483/2684 ! LANE=no # LAN Emulation (client) # ILMIQOS="ubr:pcr=100kbps" # optional: QOS to use on the ILMI VC + ATMMODULES= + ATMSIGD_OPTIONS="-u uni31 -l syslog -D /var/tmp -t 20 -c /etc/atmsigd.conf" + ILMID_OPTIONS="-u 3.1 -l syslog" Index: ifcfg-lec0 =================================================================== RCS file: /cvsroot/linux-atm/linux-atm/src/config/init-redhat/ifcfg-lec0,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** ifcfg-lec0 9 Oct 2001 22:33:06 -0000 1.2 --- ifcfg-lec0 1 Jan 2008 00:14:49 -0000 1.3 *************** *** 6,10 **** NETWORK=169.144.155.0 ELAN=canvas - SELBYTE=00 - INTERFACEID=0 ONBOOT=yes --- 6,8 ---- --- Makefile.am DELETED --- |
From: chas w. <ch...@us...> - 2008-01-01 00:15:25
|
Update of /cvsroot/linux-atm/linux-atm/src/debug In directory sc8-pr-cvs6.sourceforge.net:/tmp/cvs-serv24942/src/debug Modified Files: svctor.c Added Files: .cvsignore Log Message: merge 2.5.0 branch into the head Index: svctor.c =================================================================== RCS file: /cvsroot/linux-atm/linux-atm/src/debug/svctor.c,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** svctor.c 9 Oct 2001 22:33:06 -0000 1.2 --- svctor.c 1 Jan 2008 00:14:49 -0000 1.3 *************** *** 22,25 **** --- 22,26 ---- #include <stdio.h> #include <unistd.h> + #include <stdlib.h> #include <fcntl.h> #include <signal.h> |
From: chas w. <ch...@us...> - 2008-01-01 00:15:25
|
Update of /cvsroot/linux-atm/linux-atm/src/br2684 In directory sc8-pr-cvs6.sourceforge.net:/tmp/cvs-serv24942/src/br2684 Added Files: .cvsignore Makefile.am br2684ctl.8 br2684ctl.c Log Message: merge 2.5.0 branch into the head |
Update of /cvsroot/linux-atm/linux-atm In directory sc8-pr-cvs6.sourceforge.net:/tmp/cvs-serv24942 Modified Files: BUGS COPYING ChangeLog INSTALL Makefile.am NEWS README autotools configure.in Added Files: .cvsignore Removed Files: acconfig.h config.h.in Log Message: merge 2.5.0 branch into the head Index: BUGS =================================================================== RCS file: /cvsroot/linux-atm/linux-atm/BUGS,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** BUGS 20 Aug 2001 21:03:47 -0000 1.1 --- BUGS 1 Jan 2008 00:14:49 -0000 1.2 *************** *** 1,6 **** ! Known bugs and restrictions in version 0.56 ! =========================================== - - some recently discovered message sequences crash ilmid - ENI driver: closing an AAL0 socket while data is arriving at a high rate hangs in the close system call --- 1,5 ---- ! Known bugs and restrictions in version 2.5.0 ! ============================================ - ENI driver: closing an AAL0 socket while data is arriving at a high rate hangs in the close system call Index: COPYING =================================================================== RCS file: /cvsroot/linux-atm/linux-atm/COPYING,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** COPYING 20 Aug 2001 21:03:47 -0000 1.1 --- COPYING 1 Jan 2008 00:14:49 -0000 1.2 *************** *** 1,6 **** Program code, documentation and auxiliary programs, except for the parts ! listen below, are ! Copyright 1995-2000 EPFL-LRC/ICA ! All rights reserved. This package is free software; you can redistribute it and/or modify --- 1,7 ---- Program code, documentation and auxiliary programs, except for the parts ! listen below, are: ! ! Copyright 1995-2000 EPFL-LRC/ICA ! All rights reserved. This package is free software; you can redistribute it and/or modify *************** *** 18,23 **** in the top-level directory of the kernel (i.e. the GPL, version 2). ! The libraries libatm, libatmd, libarequipa (in atm/lib/), libsaal (in ! atm/saal/), and qlib (in atm/qgen/) are covered by the more permissive Library General Public License. See the file COPYING.LGPL for details. --- 19,24 ---- in the top-level directory of the kernel (i.e. the GPL, version 2). ! The libraries libatm, libatmd, libarequipa (in src/lib/), libsaal (in ! src/saal/), and qlib (in src/qgen/) are covered by the more permissive Library General Public License. See the file COPYING.LGPL for details. *************** *** 32,40 **** Some of the files used by ilmid are Copyright (C) 1992 Michael Sample and the University of British Columbia ! See asn1/*.[ch] for copying terms. The LAN Emulation code is Copyright by Tampere University of Technology ! - Telecommunications Laboratory. See lane/COPYRIGHT.TUT and ! led/COPYRIGHT.TUT for copying terms. The Multi-Protocol Over ATM (MPOA) code was developed at Tampere --- 33,41 ---- Some of the files used by ilmid are Copyright (C) 1992 Michael Sample and the University of British Columbia ! See src/ilmid/asn1/*.[ch] for copying terms. The LAN Emulation code is Copyright by Tampere University of Technology ! - Telecommunications Laboratory. See src/lane/COPYRIGHT.TUT and ! src/led/COPYRIGHT.TUT for copying terms. The Multi-Protocol Over ATM (MPOA) code was developed at Tampere Index: ChangeLog =================================================================== RCS file: /cvsroot/linux-atm/linux-atm/ChangeLog,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** ChangeLog 15 Oct 2001 21:14:58 -0000 1.3 --- ChangeLog 1 Jan 2008 00:14:49 -0000 1.4 *************** *** 1,2 **** --- 1,37 ---- + Version 2.4.1 to 2.5.0 (30-DEC-2007) + ====================== + + Bug fixes + --------- + + - building outside the source tree should now work properly + - TimeTicks (in ilmid) should be unsigned + - fix zeppelin's handling of LE_ARP REMOTE_ADDRESS flag + + New features + ------------ + + - zeppelin now has a -b option (run in background) + - zeppelin creates /var/run/lec[itf].pid at startup + - ilmid updates from ek...@cm... + - atmswitch from ele...@in... + - point to multipoint signalling support + - routed br2684 support from ek...@cm... + + Other changes + ------------- + + - updated to support later versions of autoconf + + + Version 2.4.0 to 2.4.1 (25-APR-2003) + ===================== + + Bug fixes + --------- + + - vsprintf's changed to vsnprintf's to prevent possible stack overflows + + Version 0.79 to 2.4.0 (18-OCT-2001) ===================== Index: INSTALL =================================================================== RCS file: /cvsroot/linux-atm/linux-atm/INSTALL,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** INSTALL 17 Oct 2001 19:27:21 -0000 1.1 --- INSTALL 1 Jan 2008 00:14:49 -0000 1.2 *************** *** 1,6 **** Basic Installation ================== ! These are generic installation instructions. The `configure' shell script attempts to guess correct values for --- 1,18 ---- + Installation Instructions + ************************* + + Copyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002, 2004, 2005, + 2006 Free Software Foundation, Inc. + + This file is free documentation; the Free Software Foundation gives + unlimited permission to copy, distribute and modify it. + Basic Installation ================== ! Briefly, the shell commands `./configure; make; make install' should ! configure, build, and install this package. The following ! more-detailed instructions are generic; see the `README' file for ! instructions specific to this package. The `configure' shell script attempts to guess correct values for *************** *** 9,37 **** It may also create one or more `.h' files containing system-dependent definitions. Finally, it creates a shell script `config.status' that ! you can run in the future to recreate the current configuration, a file ! `config.cache' that saves the results of its tests to speed up ! reconfiguring, and a file `config.log' containing compiler output ! (useful mainly for debugging `configure'). If you need to do unusual things to compile the package, please try to figure out how `configure' could check whether to do them, and mail diffs or instructions to the address given in the `README' so they can ! be considered for the next release. If at some point `config.cache' ! contains results you don't want to keep, you may remove or edit it. ! The file `configure.in' is used to create `configure' by a program ! called `autoconf'. You only need `configure.in' if you want to change ! it or regenerate `configure' using a newer version of `autoconf'. The simplest way to compile this package is: 1. `cd' to the directory containing the package's source code and type ! `./configure' to configure the package for your system. If you're ! using `csh' on an old version of System V, you might need to type ! `sh ./configure' instead to prevent `csh' from trying to execute ! `configure' itself. ! Running `configure' takes awhile. While running, it prints some ! messages telling which features it is checking for. 2. Type `make' to compile the package. --- 21,53 ---- It may also create one or more `.h' files containing system-dependent definitions. Finally, it creates a shell script `config.status' that ! you can run in the future to recreate the current configuration, and a ! file `config.log' containing compiler output (useful mainly for ! debugging `configure'). ! ! It can also use an optional file (typically called `config.cache' ! and enabled with `--cache-file=config.cache' or simply `-C') that saves ! the results of its tests to speed up reconfiguring. Caching is ! disabled by default to prevent problems with accidental use of stale ! cache files. If you need to do unusual things to compile the package, please try to figure out how `configure' could check whether to do them, and mail diffs or instructions to the address given in the `README' so they can ! be considered for the next release. If you are using the cache, and at ! some point `config.cache' contains results you don't want to keep, you ! may remove or edit it. ! The file `configure.ac' (or `configure.in') is used to create ! `configure' by a program called `autoconf'. You need `configure.ac' if ! you want to change it or regenerate `configure' using a newer version ! of `autoconf'. The simplest way to compile this package is: 1. `cd' to the directory containing the package's source code and type ! `./configure' to configure the package for your system. ! Running `configure' might take a while. While running, it prints ! some messages telling which features it is checking for. 2. Type `make' to compile the package. *************** *** 55,101 **** ===================== ! Some systems require unusual options for compilation or linking that ! the `configure' script does not know about. You can give `configure' ! initial values for variables by setting them in the environment. Using ! a Bourne-compatible shell, you can do that on the command line like ! this: ! CC=c89 CFLAGS=-O2 LIBS=-lposix ./configure ! Or on systems that have the `env' program, you can do it like this: ! env CPPFLAGS=-I/usr/local/include LDFLAGS=-s ./configure Compiling For Multiple Architectures ==================================== ! You can compile the package for more than one kind of computer at the same time, by placing the object files for each architecture in their ! own directory. To do this, you must use a version of `make' that ! supports the `VPATH' variable, such as GNU `make'. `cd' to the directory where you want the object files and executables to go and run the `configure' script. `configure' automatically checks for the source code in the directory that `configure' is in and in `..'. ! If you have to use a `make' that does not supports the `VPATH' ! variable, you have to compile the package for one architecture at a time ! in the source code directory. After you have installed the package for ! one architecture, use `make distclean' before reconfiguring for another ! architecture. Installation Names ================== ! By default, `make install' will install the package's files in ! `/usr/local/bin', `/usr/local/man', etc. You can specify an ! installation prefix other than `/usr/local' by giving `configure' the ! option `--prefix=PATH'. You can specify separate installation prefixes for architecture-specific files and architecture-independent files. If you ! give `configure' the option `--exec-prefix=PATH', the package will use ! PATH as the prefix for installing programs and libraries. ! Documentation and other data files will still use the regular prefix. In addition, if you use an unusual directory layout you can give ! options like `--bindir=PATH' to specify different values for particular kinds of files. Run `configure --help' for a list of the directories you can set and what kinds of files go in them. --- 71,117 ---- ===================== ! Some systems require unusual options for compilation or linking that the ! `configure' script does not know about. Run `./configure --help' for ! details on some of the pertinent environment variables. ! You can give `configure' initial values for configuration parameters ! by setting variables in the command line or in the environment. Here ! is an example: ! ! ./configure CC=c99 CFLAGS=-g LIBS=-lposix ! ! *Note Defining Variables::, for more details. Compiling For Multiple Architectures ==================================== ! You can compile the package for more than one kind of computer at the same time, by placing the object files for each architecture in their ! own directory. To do this, you can use GNU `make'. `cd' to the directory where you want the object files and executables to go and run the `configure' script. `configure' automatically checks for the source code in the directory that `configure' is in and in `..'. ! With a non-GNU `make', it is safer to compile the package for one ! architecture at a time in the source code directory. After you have ! installed the package for one architecture, use `make distclean' before ! reconfiguring for another architecture. Installation Names ================== ! By default, `make install' installs the package's commands under ! `/usr/local/bin', include files under `/usr/local/include', etc. You ! can specify an installation prefix other than `/usr/local' by giving ! `configure' the option `--prefix=PREFIX'. You can specify separate installation prefixes for architecture-specific files and architecture-independent files. If you ! pass the option `--exec-prefix=PREFIX' to `configure', the package uses ! PREFIX as the prefix for installing programs and libraries. ! Documentation and other data files still use the regular prefix. In addition, if you use an unusual directory layout you can give ! options like `--bindir=DIR' to specify different values for particular kinds of files. Run `configure --help' for a list of the directories you can set and what kinds of files go in them. *************** *** 108,112 **** ================= ! Some packages pay attention to `--enable-FEATURE' options to `configure', where FEATURE indicates an optional part of the package. They may also pay attention to `--with-PACKAGE' options, where PACKAGE --- 124,128 ---- ================= ! Some packages pay attention to `--enable-FEATURE' options to `configure', where FEATURE indicates an optional part of the package. They may also pay attention to `--with-PACKAGE' options, where PACKAGE *************** *** 123,149 **** ========================== ! There may be some features `configure' can not figure out ! automatically, but needs to determine by the type of host the package ! will run on. Usually `configure' can figure that out, but if it prints ! a message saying it can not guess the host type, give it the ! `--host=TYPE' option. TYPE can either be a short name for the system ! type, such as `sun4', or a canonical name with three fields: CPU-COMPANY-SYSTEM ! See the file `config.sub' for the possible values of each field. If `config.sub' isn't included in this package, then this package doesn't ! need to know the host type. ! If you are building compiler tools for cross-compiling, you can also ! use the `--target=TYPE' option to select the type of system they will ! produce code for and the `--build=TYPE' option to select the type of ! system on which you are compiling the package. Sharing Defaults ================ ! If you want to set default values for `configure' scripts to share, ! you can create a site shell script called `config.site' that gives ! default values for variables like `CC', `cache_file', and `prefix'. `configure' looks for `PREFIX/share/config.site' if it exists, then `PREFIX/etc/config.site' if it exists. Or, you can set the --- 139,175 ---- ========================== ! There may be some features `configure' cannot figure out automatically, ! but needs to determine by the type of machine the package will run on. ! Usually, assuming the package is built to be run on the _same_ ! architectures, `configure' can figure that out, but if it prints a ! message saying it cannot guess the machine type, give it the ! `--build=TYPE' option. TYPE can either be a short name for the system ! type, such as `sun4', or a canonical name which has the form: ! CPU-COMPANY-SYSTEM ! where SYSTEM can have one of these forms: ! ! OS KERNEL-OS ! ! See the file `config.sub' for the possible values of each field. If `config.sub' isn't included in this package, then this package doesn't ! need to know the machine type. ! If you are _building_ compiler tools for cross-compiling, you should ! use the option `--target=TYPE' to select the type of system they will ! produce code for. ! ! If you want to _use_ a cross compiler, that generates code for a ! platform different from the build platform, you should specify the ! "host" platform (i.e., that on which the generated programs will ! eventually be run) with `--host=TYPE'. Sharing Defaults ================ ! If you want to set default values for `configure' scripts to share, you ! can create a site shell script called `config.site' that gives default ! values for variables like `CC', `cache_file', and `prefix'. `configure' looks for `PREFIX/share/config.site' if it exists, then `PREFIX/etc/config.site' if it exists. Or, you can set the *************** *** 151,168 **** A warning: not all `configure' scripts look for a site script. ! Operation Controls ================== ! `configure' recognizes the following options to control how it ! operates. ! `--cache-file=FILE' ! Use and save the results of the tests in FILE instead of ! `./config.cache'. Set FILE to `/dev/null' to disable caching, for ! debugging `configure'. `--help' Print a summary of the options to `configure', and exit. `--quiet' `--silent' --- 177,222 ---- A warning: not all `configure' scripts look for a site script. ! Defining Variables ================== ! Variables not defined in a site shell script can be set in the ! environment passed to `configure'. However, some packages may run ! configure again during the build, and the customized values of these ! variables may be lost. In order to avoid this problem, you should set ! them in the `configure' command line, using `VAR=value'. For example: ! ./configure CC=/usr/local2/bin/gcc ! ! causes the specified `gcc' to be used as the C compiler (unless it is ! overridden in the site shell script). ! ! Unfortunately, this technique does not work for `CONFIG_SHELL' due to ! an Autoconf bug. Until the bug is fixed you can use this workaround: ! ! CONFIG_SHELL=/bin/bash /bin/bash ./configure CONFIG_SHELL=/bin/bash ! ! `configure' Invocation ! ====================== ! ! `configure' recognizes the following options to control how it operates. `--help' + `-h' Print a summary of the options to `configure', and exit. + `--version' + `-V' + Print the version of Autoconf used to generate the `configure' + script, and exit. + + `--cache-file=FILE' + Enable the cache: use and save the results of the tests in FILE, + traditionally `config.cache'. FILE defaults to `/dev/null' to + disable caching. + + `--config-cache' + `-C' + Alias for `--cache-file=config.cache'. + `--quiet' `--silent' *************** *** 176,204 **** `configure' can determine that directory automatically. ! `--version' ! Print the version of Autoconf used to generate the `configure' ! script, and exit. ! ! `configure' also accepts some other, not widely useful, options. ! ! Additional Build Targets ! ======================== ! ! The following additional build targets can be passed to make: ! ! `uninstall' ! Uninstall the binaries, libraries, configuration files, and man pages ! which were installed with the 'install' target. ! ! `dist' ! Create a gzipped distribution tarball. It will be placed in the current ! directory. ! ! `rpm' ! Create a binary RPM of the distribution. The RPM will be placed in the ! src/extra/RPMS/`arch'/ directory where arch is the target platform. ! (This will also make a gzipped distribution tarball.) ! ! `cscope' ! Create `cscope.out' cross-reference file for cscope tags. --- 230,234 ---- `configure' can determine that directory automatically. ! `configure' also accepts some other, not widely useful, options. Run ! `configure --help' for more details. Index: Makefile.am =================================================================== RCS file: /cvsroot/linux-atm/linux-atm/Makefile.am,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** Makefile.am 17 Oct 2001 19:37:52 -0000 1.4 --- Makefile.am 1 Jan 2008 00:14:49 -0000 1.5 *************** *** 6,10 **** -mkdir -p src/extra/RPMS -mkdir -p src/extra/SRPMS ! rpm -ba src/extra/linux-atm.spec rpm: rpms --- 6,10 ---- -mkdir -p src/extra/RPMS -mkdir -p src/extra/SRPMS ! rpmbuild -ba src/extra/linux-atm.spec rpm: rpms Index: NEWS =================================================================== RCS file: /cvsroot/linux-atm/linux-atm/NEWS,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** NEWS 9 Oct 2001 22:33:01 -0000 1.2 --- NEWS 1 Jan 2008 00:14:49 -0000 1.3 *************** *** 1,2 **** --- 1,4 ---- + December 30, 2007 Version 2.5.0 is released. + April 30, 2003 Version 2.4.1 is released. October 18, 2001 Version 2.4.0 is released. August 15, 2001 Version 0.79 is released. Index: README =================================================================== RCS file: /cvsroot/linux-atm/linux-atm/README,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** README 15 Oct 2001 21:14:59 -0000 1.3 --- README 1 Jan 2008 00:14:49 -0000 1.4 *************** *** 1,8 **** ! ATM on Linux, release 2.4.0 (beta) ! ================================= Werner Almesberger, EPFL ICA <wa...@al...> Mitchell Blank Jr., <mi...@sf...> Paul B Schroeder, <pa...@us...> -------------------------------------- --- 1,9 ---- ! ATM on Linux, release 2.5.0 ! =========================== Werner Almesberger, EPFL ICA <wa...@al...> Mitchell Blank Jr., <mi...@sf...> Paul B Schroeder, <pa...@us...> + Chas Williams, <ch...@cm...> -------------------------------------- *************** *** 11,24 **** still change every once in a while. Use at your own risk. ! Please see http://linux-atm.sourceforge.net/ for a list of ! features supported by ATM on Linux. ! If you're just looking for the device drivers: you may find what you're looking ! for under src/extra/drivers. Most are already in the mainstream kernel or, for ! those which are not integrated, visit http://linux-atm.sourceforge.net/info.php ! For usage and installation instructions, please read the "ATM on Linux HOWTO" ! in the doc/ directory. The README in that directory explains how to generate ! alternative document types of the documentation. For known restrictions and bugs, please read the file BUGS. --- 12,26 ---- still change every once in a while. Use at your own risk. ! Please see http://linux-atm.sourceforge.net/ for a list of features ! supported by ATM on Linux. ! If you're just looking for the device drivers: you may find what ! you're looking for under src/extra/drivers. Most are already in ! the mainstream kernel or, for those which are not integrated, visit ! http://linux-atm.sourceforge.net/info.php ! For usage and installation instructions, please read the "ATM on Linux ! HOWTO" in the doc/ directory. The README in that directory explains ! how to generate alternative document types of the documentation. For known restrictions and bugs, please read the file BUGS. Index: autotools =================================================================== RCS file: /cvsroot/linux-atm/linux-atm/autotools,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** autotools 9 Oct 2001 22:33:01 -0000 1.2 --- autotools 1 Jan 2008 00:14:49 -0000 1.3 *************** *** 7,10 **** --- 7,12 ---- fi + echo "Running libtoolize..." + libtoolize --force --copy echo "Running aclocal..." aclocal $VERBOSE *************** *** 14,18 **** autoheader echo "Running automake..." ! automake --add-missing $VERBOSE echo "Finished... Now run './configure' and 'make'..." --- 16,20 ---- autoheader echo "Running automake..." ! automake --force-missing --add-missing --copy $VERBOSE echo "Finished... Now run './configure' and 'make'..." Index: configure.in =================================================================== RCS file: /cvsroot/linux-atm/linux-atm/configure.in,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** configure.in 15 Oct 2001 21:15:00 -0000 1.3 --- configure.in 1 Jan 2008 00:14:49 -0000 1.4 *************** *** 12,16 **** AC_CANONICAL_SYSTEM ! AM_INIT_AUTOMAKE(linux-atm,2.4.0) LIBVER_CURRENT="1" --- 12,16 ---- AC_CANONICAL_SYSTEM ! AM_INIT_AUTOMAKE(linux-atm,2.5.0) LIBVER_CURRENT="1" *************** *** 26,29 **** --- 26,37 ---- AC_PROG_YACC AC_PROG_INSTALL + if test "x$cross_compiling" = "xyes"; then + AC_MSG_CHECKING(cc for build) + AC_CHECK_PROGS(CC_FOR_BUILD, gcc) + AC_MSG_RESULT($CC_FOR_BUILD) + else + CC_FOR_BUILD="${CC_FOR_BUILD-$CC}" + fi + AC_SUBST(CC_FOR_BUILD) dnl libtool defs *************** *** 60,64 **** dnl For yacc compiles... ! AC_DEFINE(YY_USE_CONST) dnl Config files --- 68,72 ---- dnl For yacc compiles... ! AC_DEFINE(YY_USE_CONST, [], [ ]) dnl Config files *************** *** 66,70 **** test "x$prefix" = xNONE && prefix=${exec_prefix} eval echo "$sysconfdir"` ! AC_DEFINE_UNQUOTED(ATMSIGD_CONF,"$atmsigd_conf_dir/atmsigd.conf") dnl Do our ./configure arguments here --- 74,78 ---- test "x$prefix" = xNONE && prefix=${exec_prefix} eval echo "$sysconfdir"` ! AC_DEFINE_UNQUOTED(ATMSIGD_CONF, "$atmsigd_conf_dir/atmsigd.conf", [Default config file location for atmsigd]) dnl Do our ./configure arguments here *************** *** 73,84 **** [ case "$with_uni" in ! "3.0" ) AC_DEFINE(UNI30) ;; ! "3.1" ) AC_DEFINE(UNI31) ;; ! "4.0" ) AC_DEFINE(UNI40) ;; *) ! AC_DEFINE(DYNAMIC_UNI) AC_MSG_WARN([*** UNI version not specified correctly. Defaulting to dynamic UNI.]) esac --- 81,95 ---- [ case "$with_uni" in ! "3.0" ) AC_DEFINE(UNI30, [], [ ]) ;; ! "3.1" ) AC_DEFINE(UNI31, [], [Note: some UNI 3.0 switches will show really strange behaviour if confronted ! with using 3.1 signaling, so be sure to test your network *very* ! carefully before permanently configuring machines to use UNI 3.1.]) ;; ! "4.0" ) AC_DEFINE(UNI40, [], [Some partial support for UNI 4.0 can be enabled by using UNI40]) ;; *) ! AC_DEFINE(DYNAMIC_UNI, [], [The UNI version can be configured at run time. Dynamic is the default. Use the ! explicit version selections only in case of problems.]) AC_MSG_WARN([*** UNI version not specified correctly. Defaulting to dynamic UNI.]) esac *************** *** 91,95 **** [ if test "$with_uni" = "3.1" ; then ! AC_DEFINE(ALLOW_UNI30) else AC_MSG_WARN([*** Allow UNI 3.0 was not enabled. It is only valid when UNI 3.1 is specified as the default via --with-uni.]) --- 102,106 ---- [ if test "$with_uni" = "3.1" ; then ! AC_DEFINE(ALLOW_UNI30, [], [Allow UNI 3.0 backwards-compatible extensions (if using UNI 3.1)]) else AC_MSG_WARN([*** Allow UNI 3.0 was not enabled. It is only valid when UNI 3.1 is specified as the default via --with-uni.]) *************** *** 102,106 **** [ if test "$with_uni" = "4.0" ; then ! AC_DEFINE(Q2963_1) else AC_MSG_WARN([*** Q.2963.1 was not enabled. It is only valid when UNI 4.0 is specified as the default via --with-uni.]) --- 113,118 ---- [ if test "$with_uni" = "4.0" ; then ! AC_DEFINE(Q2963_1, [], [If using UNI40, you can also enable peak cell rate modification as ! specified in Q.2963.1]) else AC_MSG_WARN([*** Q.2963.1 was not enabled. It is only valid when UNI 4.0 is specified as the default via --with-uni.]) *************** *** 111,129 **** AC_ARG_ENABLE(cisco, [ --enable-cisco Enable work around for point-to-multipoint signaling bug in Cisco LS100 or LS7010 switches], ! AC_DEFINE(CISCO) ) AC_ARG_ENABLE(thomflex, [ --enable-thomflex Some versions of the Thomson Thomflex 5000 won't do any signaling before they get a RESTART. Enable sending of a RESTART whenever SAAL comes up.], ! AC_DEFINE(THOMFLEX) ) dnl Use select() instead of poll() with MPOA dnl Do we still need this?? Make it selectable?? ! AC_DEFINE(BROKEN_POLL) AC_ARG_ENABLE(mpoa_1_1, [ --enable-mpoa_1_1 Enable proposed MPOA 1.1 features], ! AC_DEFINE(MPOA_1_1) ) --- 123,148 ---- AC_ARG_ENABLE(cisco, [ --enable-cisco Enable work around for point-to-multipoint signaling bug in Cisco LS100 or LS7010 switches], ! AC_DEFINE(CISCO, [], [If you're using a Cisco LS100 or LS7010 switch, you should add the following ! line to work around a bug in their point-to-multipoint signaling (it got ! confused when receiving a CALL PROCEEDING, so we don't send it, which of ! course makes our clearing procedure slightly non-conformant):]) ) AC_ARG_ENABLE(thomflex, [ --enable-thomflex Some versions of the Thomson Thomflex 5000 won't do any signaling before they get a RESTART. Enable sending of a RESTART whenever SAAL comes up.], ! AC_DEFINE(THOMFLEX, [], [Some versions of the Thomson Thomflex 5000 won't do any signaling before they ! get a RESTART. Uncomment the next line to enable sending of a RESTART ! whenever SAAL comes up. Note that the RESTART ACKNOWLEDGE sent in response to ! the RESTART will yield a warning, because we don't implement the full RESTART ! state machine.]) ) dnl Use select() instead of poll() with MPOA dnl Do we still need this?? Make it selectable?? ! AC_DEFINE(BROKEN_POLL, [], [Use select() instead of poll() with MPOA]) AC_ARG_ENABLE(mpoa_1_1, [ --enable-mpoa_1_1 Enable proposed MPOA 1.1 features], ! AC_DEFINE(MPOA_1_1, [], [Use proposed MPOA 1.1 features]) ) *************** *** 143,146 **** --- 162,204 ---- ) + AC_ARG_WITH(kernel-headers, + [ --with-kernel-headers=path use the kernel headers found at path] + ) + if test "x$with_kernel_headers" != "x"; then + CFLAGS="-I$with_kernel_headers/include $CFLAGS" + fi + + dnl AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]], [[]])],[],[]) + pmp_send="" + AC_SUBST(pmp_send) + AC_ARG_ENABLE(multipoint, + [ --enable-multipoint Enable point to multipoint signalling], + [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([AC_INCLUDES_DEFAULT + #include <stdint.h> + #include <linux/atmdev.h> + ], + [[ int fd; + struct atm_iobuf buf; + + ioctl(fd, ATM_ADDPARTY, &buf); + ]])], + [AC_DEFINE(MULTIPOINT, [], [Point to multipoint signalling support for atmsigd.]) + pmp_send="pmp_send"], + [AC_MSG_WARN([*** Multipoint signalling was not enabled. Missing kernel support?])])] + ) + + atmoamd="" + AC_SUBST(atmoamd) + AC_COMPILE_IFELSE([AC_LANG_PROGRAM([AC_INCLUDES_DEFAULT + #include <stdint.h> + #include <linux/atmoam.h> + ], + [[ int fd; + + ioctl(fd, ATMOAMD_CTRL, 0); + ]])], + [atmoamd="atmoamd"], + [AC_MSG_WARN([*** atmoamd will not be built. Missing kernel support?])]) + dnl Xsed="sed -e s/^X//" dnl LTLIBOBJS=`echo X"$LIBOBJS" | \$Xsed -e "s,\. [^.]* ,.lo,g;s,\.[^.]*$,.lo,"` *************** *** 167,179 **** src/lane/Makefile \ src/mpoad/Makefile \ src/switch/Makefile \ src/switch/debug/Makefile \ src/switch/tcp/Makefile \ src/config/Makefile \ - src/config/init-redhat/Makefile \ src/extra/Makefile \ ! src/extra/linux-atm.spec \ ! src/extra/ANS/Makefile \ ! src/extra/drivers/Makefile ) - --- 225,235 ---- src/lane/Makefile \ src/mpoad/Makefile \ + src/oamd/Makefile \ src/switch/Makefile \ src/switch/debug/Makefile \ src/switch/tcp/Makefile \ + src/br2684/Makefile \ src/config/Makefile \ src/extra/Makefile \ ! src/extra/linux-atm.spec ) --- acconfig.h DELETED --- --- config.h.in DELETED --- |
From: chas w. <ch...@us...> - 2008-01-01 00:15:23
|
Update of /cvsroot/linux-atm/linux-atm/src/arpd In directory sc8-pr-cvs6.sourceforge.net:/tmp/cvs-serv24942/src/arpd Modified Files: arp.c io.c itf.c Added Files: .cvsignore Log Message: merge 2.5.0 branch into the head Index: arp.c =================================================================== RCS file: /cvsroot/linux-atm/linux-atm/src/arpd/arp.c,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** arp.c 9 Oct 2001 22:33:06 -0000 1.2 --- arp.c 1 Jan 2008 00:14:49 -0000 1.3 *************** *** 17,20 **** --- 17,21 ---- #include <netinet/in.h> /* for ntohs, etc. */ #define _LINUX_NETDEVICE_H /* very crude hack for glibc2 */ + #include <linux/types.h> #include <linux/if_arp.h> #include <linux/if_ether.h> Index: io.c =================================================================== RCS file: /cvsroot/linux-atm/linux-atm/src/arpd/io.c,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** io.c 9 Oct 2001 22:33:06 -0000 1.2 --- io.c 1 Jan 2008 00:14:49 -0000 1.3 *************** *** 23,26 **** --- 23,27 ---- #include <linux/atmarp.h> #define _LINUX_NETDEVICE_H /* glibc2 */ + #include <linux/types.h> #include <linux/if_arp.h> Index: itf.c =================================================================== RCS file: /cvsroot/linux-atm/linux-atm/src/arpd/itf.c,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** itf.c 9 Oct 2001 22:33:06 -0000 1.2 --- itf.c 1 Jan 2008 00:14:49 -0000 1.3 *************** *** 14,17 **** --- 14,18 ---- #include <sys/socket.h> #define _LINUX_NETDEVICE_H /* glibc2 */ + #include <linux/types.h> #include <linux/if_arp.h> |
From: chas w. <ch...@us...> - 2008-01-01 00:15:23
|
Update of /cvsroot/linux-atm/linux-atm/src/config In directory sc8-pr-cvs6.sourceforge.net:/tmp/cvs-serv24942/src/config Modified Files: Makefile.am Added Files: .cvsignore Log Message: merge 2.5.0 branch into the head Index: Makefile.am =================================================================== RCS file: /cvsroot/linux-atm/linux-atm/src/config/Makefile.am,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** Makefile.am 9 Oct 2001 22:33:06 -0000 1.2 --- Makefile.am 1 Jan 2008 00:14:49 -0000 1.3 *************** *** 1,5 **** ! SUBDIRS = init-redhat ! ! EXTRA_DIST = hosts.atm install-exec-local: --- 1,4 ---- ! EXTRA_DIST = hosts.atm init-redhat/README init-redhat/atm init-redhat/atm-sysconfig \ ! init-redhat/ifcfg-atm0 init-redhat/ifcfg-lec0 init-redhat/ifcfg-nas0 install-exec-local: |
From: chas w. <ch...@us...> - 2008-01-01 00:15:23
|
Update of /cvsroot/linux-atm/linux-atm/src In directory sc8-pr-cvs6.sourceforge.net:/tmp/cvs-serv24942/src Modified Files: Makefile.am Added Files: .cvsignore Log Message: merge 2.5.0 branch into the head Index: Makefile.am =================================================================== RCS file: /cvsroot/linux-atm/linux-atm/src/Makefile.am,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** Makefile.am 9 Oct 2001 22:33:06 -0000 1.2 --- Makefile.am 1 Jan 2008 00:14:49 -0000 1.3 *************** *** 1,3 **** SUBDIRS = include lib test debug qgen saal sigd maint arpd ilmid man led lane \ ! mpoad switch config extra --- 1,3 ---- SUBDIRS = include lib test debug qgen saal sigd maint arpd ilmid man led lane \ ! mpoad oamd switch config extra br2684 |
From: chas w. <ch...@us...> - 2008-01-01 00:15:22
|
Update of /cvsroot/linux-atm/linux-atm/m4 In directory sc8-pr-cvs6.sourceforge.net:/tmp/cvs-serv24942/m4 Added Files: .cvsignore Log Message: merge 2.5.0 branch into the head |
From: chas w. <ch...@us...> - 2008-01-01 00:15:22
|
Update of /cvsroot/linux-atm/linux-atm/doc In directory sc8-pr-cvs6.sourceforge.net:/tmp/cvs-serv24942/doc Added Files: .cvsignore Log Message: merge 2.5.0 branch into the head |
From: chas w. <ch...@us...> - 2008-01-01 00:14:59
|
Update of /cvsroot/linux-atm/linux-atm/src/sigd In directory sc8-pr-cvs6.sourceforge.net:/tmp/cvs-serv24942/src/sigd Modified Files: Makefile.am atmsigd.c atmsigd.conf cfg_l.l cfg_y.y kernel.c proto.c proto.h sap.c timeout.c timeout.h uni.c Added Files: .cvsignore Log Message: merge 2.5.0 branch into the head Index: Makefile.am =================================================================== RCS file: /cvsroot/linux-atm/linux-atm/src/sigd/Makefile.am,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** Makefile.am 9 Oct 2001 22:33:07 -0000 1.2 --- Makefile.am 1 Jan 2008 00:14:52 -0000 1.3 *************** *** 1,3 **** ! INCLUDES = -I$(top_builddir)/src/qgen -I$(top_builddir)/src/saal -I. sbin_PROGRAMS = atmsigd --- 1,3 ---- ! INCLUDES = -I$(top_builddir)/src/qgen -I$(srcdir)/../qgen -I$(srcdir)/../saal -I. sbin_PROGRAMS = atmsigd *************** *** 20,23 **** mess.c: $(top_builddir)/src/qgen/uni.h mkmess.pl ! @PERL@ ./mkmess.pl <$(top_builddir)/src/qgen/uni.h >mess.c --- 20,23 ---- mess.c: $(top_builddir)/src/qgen/uni.h mkmess.pl ! @PERL@ $(srcdir)/mkmess.pl <$(srcdir)/../qgen/uni.h >mess.c Index: atmsigd.c =================================================================== RCS file: /cvsroot/linux-atm/linux-atm/src/sigd/atmsigd.c,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** atmsigd.c 9 Oct 2001 22:33:07 -0000 1.2 --- atmsigd.c 1 Jan 2008 00:14:52 -0000 1.3 *************** *** 429,438 **** int uni = 0; /* silence gcc */ ! if (!strcmp(optarg,"uni30")) uni = S_UNI30; ! else if (!strcmp(optarg,"uni31")) uni = S_UNI31; ! else if (!strcmp(optarg,"uni31+uni30")) uni = S_UNI30 | S_UNI31; ! else if (!strcmp(optarg,"uni40")) uni = S_UNI40; ! else if (!strcmp(optarg,"uni40+q.2963.1")) uni = S_UNI40 | S_Q2963_1; else usage(argv[0]); --- 429,438 ---- int uni = 0; /* silence gcc */ ! if (!strcmp(optarg,"uni30") || !strcmp(optarg,"3.0")) uni = S_UNI30; ! else if (!strcmp(optarg,"uni31") || !strcmp(optarg,"3.1")) uni = S_UNI31; ! else if (!strcmp(optarg,"uni31+uni30") || !strcmp(optarg,"3.1+3.0")) uni = S_UNI30 | S_UNI31; ! else if (!strcmp(optarg,"uni40") || !strcmp(optarg,"4.0")) uni = S_UNI40; ! else if (!strcmp(optarg,"uni40+q.2963.1") || !strcmp(optarg,"4.0+q.2963.1")) uni = S_UNI40 | S_Q2963_1; else usage(argv[0]); Index: atmsigd.conf =================================================================== RCS file: /cvsroot/linux-atm/linux-atm/src/sigd/atmsigd.conf,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** atmsigd.conf 9 Oct 2001 22:33:07 -0000 1.2 --- atmsigd.conf 1 Jan 2008 00:14:52 -0000 1.3 *************** *** 11,12 **** --- 11,13 ---- } + entity 0.0.5 Index: cfg_l.l =================================================================== RCS file: /cvsroot/linux-atm/linux-atm/src/sigd/cfg_l.l,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** cfg_l.l 9 Oct 2001 22:33:07 -0000 1.2 --- cfg_l.l 1 Jan 2008 00:14:52 -0000 1.3 *************** *** 42,47 **** --- 42,50 ---- <N>sig return TOK_SIG; <N>uni30 return TOK_UNI30; + <N>3.0 return TOK_UNI30; <N>uni31 return TOK_UNI31; + <N>3.1 return TOK_UNI31; <N>uni40 return TOK_UNI40; + <N>4.0 return TOK_UNI40; <N>[qQ].2963.1 return TOK_Q2963_1; <N>mode return TOK_MODE; Index: cfg_y.y =================================================================== RCS file: /cvsroot/linux-atm/linux-atm/src/sigd/cfg_y.y,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** cfg_y.y 9 Oct 2001 22:33:07 -0000 1.2 --- cfg_y.y 1 Jan 2008 00:14:52 -0000 1.3 *************** *** 11,14 **** --- 11,15 ---- #include <ctype.h> #include <limits.h> + #include <stdlib.h> #include "atm.h" *************** *** 170,174 **** T2A_SVC | T2A_WILDCARD | T2A_NAME | T2A_LOCAL) < 0) { yyerror("invalid address"); ! return; } add_route(curr_sig,&addr,mask ? strtol(mask,NULL,10) : INT_MAX); --- 171,175 ---- T2A_SVC | T2A_WILDCARD | T2A_NAME | T2A_LOCAL) < 0) { yyerror("invalid address"); ! YYABORT; } add_route(curr_sig,&addr,mask ? strtol(mask,NULL,10) : INT_MAX); Index: kernel.c =================================================================== RCS file: /cvsroot/linux-atm/linux-atm/src/sigd/kernel.c,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** kernel.c 9 Oct 2001 22:33:07 -0000 1.2 --- kernel.c 1 Jan 2008 00:14:52 -0000 1.3 *************** *** 31,34 **** --- 31,139 ---- + #ifdef MULTIPOINT + int send_dropparty(SOCKET *sock) + { + Q_DSC dsc; + int size; + + q_create(&dsc, q_buffer, MAX_Q_MSG); + q_assign(&dsc, QF_msg_type, ATM_MSG_DROP_PARTY); + q_assign(&dsc, QF_call_ref, sock->call_ref); + q_assign(&dsc, QF_ep_ref, sock->ep_ref); + q_assign(&dsc, QF_cause, ATM_CV_NORMAL_UNSPEC); + if ((size = q_close(&dsc)) < 0) + return -EINVAL; + + to_signaling(sock->sig, q_buffer, size); + START_TIMER(sock, T398); + return 0; + } + + + int send_addparty(SOCKET *sock, struct sockaddr_atmsvc *svc) + { + SOCKET *walk = NULL; + Q_DSC dsc; + struct sockaddr_atmsvc *local = NULL; + int error = 0,size,max_ep_ref = 0; + char buf[80]; + + diag(COMPONENT, DIAG_INFO, "send_addparty"); + q_create(&dsc,q_buffer,MAX_Q_MSG); + + /* think this next line is already done */ + /* sock->sig = route_remote(&sock->remote); */ + + /* set the calling party address */ + if (sock->sig && sock->sig->mode == sm_switch) local = &sock->local; + if (atmsvc_addr_in_use(sock->local) && !local) { + sock->sig = route_local(&sock->local); + if (sock->sig) local = &sock->local; + else { + error = -EADDRNOTAVAIL; + diag(COMPONENT,DIAG_WARN,"local address no longer available"); + } + } + else { + if (!sock->sig) error = -EHOSTUNREACH; + else { + if (!local) local = get_local(sock->sig); + if (!local) local = get_local(NULL); + if (local) sock->local = *local; + else { + error = -EADDRNOTAVAIL; + diag(COMPONENT,DIAG_ERROR,"no local address"); + } + } + } + if (local) { + if (*local->sas_addr.pub) { + q_assign(&dsc,QF_cgpn_plan,ATM_NP_E164); + q_assign(&dsc,QF_cgpn_type,ATM_TON_INTRNTNL); + q_write(&dsc,QF_cgpn,(void *) local->sas_addr.pub, + strlen(local->sas_addr.pub)); + } + else { + q_assign(&dsc,QF_cgpn_plan,ATM_NP_AEA); + q_assign(&dsc,QF_cgpn_type,ATM_TON_UNKNOWN); + q_write(&dsc,QF_cgpn,(void *) local->sas_addr.prv,ATM_ESA_LEN); + } + } + + /* what to do if error == -EADDRNOTAVAIL ? */ + + /* find the largest endpoint reference in the list */ + for (walk = sockets; walk->next; walk = walk->next) { + if ((walk->call_ref == sock->call_ref) && + (walk->ep_ref > max_ep_ref)) max_ep_ref = walk->ep_ref; + } + sock->ep_ref = max_ep_ref + 1; + + q_assign(&dsc,QF_call_ref,sock->call_ref); + q_assign(&dsc,QF_aal_type,5); /* AAL 5 */ + q_assign(&dsc,QF_msg_type,ATM_MSG_ADD_PARTY); + + diag(COMPONENT, DIAG_INFO, "send_addparty: sap_encode"); + if (atm2text(buf,MAX_ATM_ADDR_LEN+1,(struct sockaddr *)svc, pretty) >= 0) + diag(COMPONENT, DIAG_INFO, "send_addparty -> %s", buf); + else + diag(COMPONENT, DIAG_INFO, "send_addparty: invalid nsap address"); + error = sap_encode(&dsc,svc,&sock->sap,NULL,sock->sig->uni,sock->sig->max_rate); + diag(COMPONENT, DIAG_INFO, "send_addparty: sap_encode error = %d", error); + + q_assign(&dsc, QF_ep_ref, sock->ep_ref); + error = 0; + if ((size = q_close(&dsc)) < 0) { + error = -EINVAL; + } else if (!error) { + to_signaling(sock->sig,q_buffer,size); + new_state(sock,ss_connecting); + return sock->ep_ref; + } + return error; + } + #endif + + static int send_setup(SOCKET *sock) { *************** *** 97,101 **** --- 202,218 ---- sock->sig->uni,sock->sig->max_rate); q_assign(&dsc,QF_bearer_class,16); /* BCOB-X */ + #ifndef MULTIPOINT q_assign(&dsc,QF_upcc,0); /* p2p */ + #else + if (sock->ct == p2p) { + diag(COMPONENT, DIAG_INFO, "setting configuration to point-to-point"); + q_assign(&dsc,QF_upcc,0); /* p2p */ + } else if (sock->ct == p2mp) { + diag(COMPONENT, DIAG_INFO, "setting configuration to multipoint"); + q_assign(&dsc, QF_upcc, 1); /* p2mp */ + q_assign(&dsc, QF_ep_ref, 0); /* initial setup always leaf 0 */ + sock->ep_ref = 0; + } + #endif #if !defined(UNI30) || defined(DYNAMIC_UNI) if (!error && sock->sig->uni != S_UNI30) *************** *** 231,234 **** --- 348,356 ---- sock->state = ss_connecting; sock->pvc = msg->pvc; + #ifdef MULTIPOINT + sock->ct = p2p; + if (msg->session > 0) + sock->ct = p2mp; + #endif error = send_setup(sock); if (error) { *************** *** 314,318 **** send_close(sock); /* fall through */ ! case ss_wait_close: free_sock(sock); /* fall through */ --- 436,440 ---- send_close(sock); /* fall through */ ! case ss_wait_close: /* network requested close */ free_sock(sock); /* fall through */ *************** *** 359,362 **** --- 481,485 ---- case ss_rel_ind: send_release_complete(sock->sig,sock->call_ref,0); /* @@@ */ + diag(COMPONENT, DIAG_INFO, "ss_rel_ind"); free_sock(sock); return; *************** *** 479,482 **** --- 602,685 ---- } #endif + #ifdef MULTIPOINT + case as_dropparty: { + int leaves; + + /* This should send a RELEASE if there is only + * one party left on the call + */ + + if (sock == NULL) { + /* leaf was probably not found */ + send_kernel(msg->vcc, kptr_null, as_dropparty, -1, + NULL, NULL, NULL, NULL, NULL); + return; + } + leaves = count_leaves(&sock->id); + if ((sock->state == ss_connected) || + (sock->state == ss_connecting)) { + /* rely on short circuit boolean eval */ + if ((leaves > 1) && (send_dropparty(sock) < 0)) { + send_kernel(sock->id, kptr_null, as_error, 0, + NULL, NULL, NULL, NULL, NULL); + } else if (leaves > 1) { + new_state(sock, ss_rel_req); + } else if (leaves == 1) { + send_release(sock, sock->sig->uni + != S_UNI30 ? ATM_CV_NORMAL_CLEAR : + ATM_CV_NORMAL_UNSPEC); + } + } else { + send_kernel(sock->id, kptr_null, as_error, 0, + NULL, NULL, NULL, NULL, NULL); + } + return; + } + + case as_addparty: + { + int leafid = -1; + SOCKET *ns = NULL; + + if (sock == NULL) { + diag(COMPONENT, DIAG_INFO, + "*sock is null. Not adding party."); + } else { + /* Create a new socket for keeping state information + * that has the same "id" and call reference value + * as *sock, but should have a different endpoint + * reference. Need to make sure that all routines + * that search for SOCKETS by id also compare endpoint + * references */ + + ns = new_sock(msg->vcc); + ns->call_ref = sock->call_ref; + + ns->local = msg->local; + ns->remote = msg->svc; + ns->qos = msg->qos; + ns->sap = msg->sap; + ns->state = ss_connecting; + ns->pvc = msg->pvc; + ns->sig = route_remote(&ns->remote); + leafid = send_addparty(ns, &msg->svc); + START_TIMER(ns,T399); + } + + if (leafid > 0) { + /* don't do anything here because we will notify + * the kernel of success or failure after the + * network responds with ATM_MSG_ADD_PARTY_ACK or + * ATM_MSG_ADD_PARTY_REJ */ + } else { + /* notify kernel of failure because the addparty + * request was never sent */ + diag(COMPONENT, DIAG_INFO, "send_addparty failed"); + send_kernel(ns->id, kptr_null, as_error, 0, + NULL, NULL, NULL, NULL, NULL); + } + return; + } + #endif default: diag(COMPONENT,DIAG_WARN,"invalid message %d",(int) msg->type); *************** *** 578,581 **** --- 781,795 ---- break; } + #ifdef MULTIPOINT + else if (msg->type == as_dropparty) { + /* check the endpoint reference while we search */ + dispatcher = dispatch; + for (curr = sockets; curr; curr = curr->next) { + if (kptr_eq(&msg->vcc, &curr->id) && + (curr->ep_ref == msg->reply)) break; + } + if (curr == NULL) diag(COMPONENT, DIAG_INFO, "leaf not found"); + } + #endif else { dispatcher = dispatch; Index: proto.c =================================================================== RCS file: /cvsroot/linux-atm/linux-atm/src/sigd/proto.c,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** proto.c 9 Oct 2001 22:33:07 -0000 1.2 --- proto.c 1 Jan 2008 00:14:52 -0000 1.3 *************** *** 43,47 **** const char *as_name[] = { "<invalid>","as_bind","as_connect","as_accept", "as_reject","as_listen","as_okay","as_error","as_indicate","as_close", ! "as_itf_notify","as_modify","as_identify","as_terminate" }; const CALL_STATE state_map[] = { /* formatting aligned with STATE */ --- 43,51 ---- const char *as_name[] = { "<invalid>","as_bind","as_connect","as_accept", "as_reject","as_listen","as_okay","as_error","as_indicate","as_close", ! "as_itf_notify","as_modify","as_identify","as_terminate", ! #ifdef MULTPOINT ! "as_addparty", "as_dropparty", ! #endif ! }; const CALL_STATE state_map[] = { /* formatting aligned with STATE */ *************** *** 78,81 **** --- 82,89 ---- memset(&sock->pvc,0,sizeof(sock->pvc)); sock->qos.txtp.traffic_class = sock->qos.rxtp.traffic_class = ATM_UBR; + #if defined(Q2963_1) || defined(DYNAMIC_UNI) + memset(&sock->new_qos, 0, sizeof(sock->new_qos)); + sock->owner = 0; + #endif sock->id = id; memset(&sock->local,0,sizeof(sock->local)); *************** *** 117,120 **** --- 125,157 ---- } + #ifdef MULTIPOINT + /* don't call free_sock() after free_leaves() -- this function frees the + * root node as well */ + void free_leaves(atm_kptr_t *id) + { + SOCKET **walk = &sockets, *target = NULL; + while (*walk != NULL) { + target = *walk; + walk = &((*walk)->next); + if (kptr_eq(&target->id, id)) { + diag(COMPONENT, DIAG_INFO, "freeing leaf %s:%d", + kptr_print(&target->id), target->ep_ref); + free_sock(target); + } + } + } + + int count_leaves(atm_kptr_t *id) + { + SOCKET *walk = sockets; + + int count = 0; + if (walk) + for (; walk; walk = walk->next) + if(kptr_eq(&walk->id, id)) + count++; + return count; + } + #endif void new_state(SOCKET *sock,STATE state) *************** *** 259,263 **** break; } - default: } va_end(ap); --- 296,299 ---- *************** *** 288,292 **** } break; - default: } va_end(ap); --- 324,327 ---- Index: proto.h =================================================================== RCS file: /cvsroot/linux-atm/linux-atm/src/sigd/proto.h,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** proto.h 9 Oct 2001 22:33:07 -0000 1.2 --- proto.h 1 Jan 2008 00:14:52 -0000 1.3 *************** *** 14,17 **** --- 14,20 ---- #include "saal.h" + #ifdef MULTIPOINT + typedef enum { p2p, p2mp } CALL_TYPE; + #endif typedef enum { /* formatting aligned with state_map and others */ *************** *** 79,82 **** --- 82,88 ---- struct sockaddr_atmsvc local; /* local address */ struct sockaddr_atmsvc remote; /* remote address */ + #ifdef MULTIPOINT + CALL_TYPE ct; + #endif struct atm_sap sap; /* SAP (BHLI and BLLI) */ struct atm_qos qos; /* QOS parameters */ *************** *** 153,156 **** --- 159,164 ---- SOCKET *new_sock(atm_kptr_t id); void free_sock(SOCKET *sock); + void free_leaves(atm_kptr_t *id); + int count_leaves(atm_kptr_t *id); void new_state(SOCKET *sock,STATE state); SOCKET *lookup_sap(const struct sockaddr_atmsvc *addr, Index: sap.c =================================================================== RCS file: /cvsroot/linux-atm/linux-atm/src/sigd/sap.c,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** sap.c 9 Oct 2001 22:33:07 -0000 1.2 --- sap.c 1 Jan 2008 00:14:52 -0000 1.3 *************** *** 50,54 **** } - int sap_compat(const struct sockaddr_atmsvc *old_addr, const struct sockaddr_atmsvc *new_addr,struct sockaddr_atmsvc *res_addr, --- 50,53 ---- *************** *** 61,70 **** return 0; if (res_qos) *res_qos = *new_qos; ! if (old_qos->txtp.max_sdu && new_qos->rxtp.max_sdu && ! old_qos->txtp.max_sdu > new_qos->rxtp.max_sdu) return 0; ! if (new_qos->txtp.max_sdu && old_qos->rxtp.max_sdu && ! new_qos->txtp.max_sdu > old_qos->rxtp.max_sdu) return 0; ! if (!class_compat(&old_qos->txtp,&new_qos->rxtp) || ! !class_compat(&new_qos->txtp,&old_qos->rxtp)) return 0; if (!sap_equal(old_sap,new_sap, SXE_COMPATIBLE | SXE_NEGOTIATION | (res_sap ? SXE_RESULT : 0),res_sap)) --- 60,69 ---- return 0; if (res_qos) *res_qos = *new_qos; ! if (old_qos->txtp.max_sdu && new_qos->txtp.max_sdu && ! old_qos->txtp.max_sdu > new_qos->txtp.max_sdu) return 0; ! if (new_qos->rxtp.max_sdu && old_qos->rxtp.max_sdu && ! new_qos->rxtp.max_sdu > old_qos->rxtp.max_sdu) return 0; ! if (!class_compat(&old_qos->rxtp,&new_qos->rxtp) || ! !class_compat(&new_qos->txtp,&old_qos->txtp)) return 0; if (!sap_equal(old_sap,new_sap, SXE_COMPATIBLE | SXE_NEGOTIATION | (res_sap ? SXE_RESULT : 0),res_sap)) *************** *** 143,146 **** --- 142,146 ---- q_write(dsc,QF_cdpn_esa,(void *) addr->sas_addr.prv,ATM_ESA_LEN); else return -EDESTADDRREQ; + if (qos) { if (qos->txtp.traffic_class == ATM_UBR || qos->rxtp.traffic_class == ATM_UBR) { *************** *** 196,199 **** --- 196,200 ---- q_assign(dsc,QF_bw_max_sdu,qos->rxtp.max_sdu); } + } /* @@@ bearer class ? */ /* @@@ QOS class ? */ *************** *** 268,271 **** --- 269,280 ---- } + /* + * NOTE: the incoming call sap is converted to a "local view" + * in preparation for use by a local socket. Therefore, the + * forward values are assigned to atm_qos->rxtp and the + * backward values are assigned to atm_qos->txtp. This has + * implications later for sap_compat() when we compare the + * forward/backward parameters. + */ unsigned int sap_decode(Q_DSC *dsc,struct sockaddr_atmsvc *addr, Index: timeout.c =================================================================== RCS file: /cvsroot/linux-atm/linux-atm/src/sigd/timeout.c,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** timeout.c 9 Oct 2001 22:33:07 -0000 1.2 --- timeout.c 1 Jan 2008 00:14:52 -0000 1.3 *************** *** 30,33 **** --- 30,57 ---- } + #ifdef MULTIPOINT + void on_T398(void *user) /* DROPPARTY */ + { + SOCKET *sock = user; + + if (sock == NULL) return; + SEND_ERROR(sock->id, -ETIMEDOUT); + /* should retry once and then give up */ + sock->conn_timer = NULL; + free_sock(sock); + } + + void on_T399(void *user) /* ADDPARTY */ + { + SOCKET *sock = user; + + if (sock == NULL) return; + diag(COMPONENT,DIAG_INFO,"Timer T399 expired in state %s", + state_name[sock->state]); + SEND_ERROR(sock->id, -ETIMEDOUT); + sock->conn_timer = NULL; + free_sock(sock); + } + #endif void on_T303(void *user) /* CONNECTING */ Index: timeout.h =================================================================== RCS file: /cvsroot/linux-atm/linux-atm/src/sigd/timeout.h,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** timeout.h 9 Oct 2001 22:33:07 -0000 1.2 --- timeout.h 1 Jan 2008 00:14:52 -0000 1.3 *************** *** 16,20 **** #define T360_TIME 30000000 /* 30 sec */ #define T361_TIME 20000000 /* 20 sec */ ! #define START_TIMER(u,t) { assert(!u->conn_timer); \ --- 16,21 ---- #define T360_TIME 30000000 /* 30 sec */ #define T361_TIME 20000000 /* 20 sec */ ! #define T399_TIME 14000000 /* 14 sec */ ! #define T398_TIME 4000000 /* 4 sec */ #define START_TIMER(u,t) { assert(!u->conn_timer); \ *************** *** 23,26 **** --- 24,29 ---- + void on_T398(void *user); + void on_T399(void *user); void on_T303(void *user); void on_T308_1(void *user); Index: uni.c =================================================================== RCS file: /cvsroot/linux-atm/linux-atm/src/sigd/uni.c,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** uni.c 9 Oct 2001 22:33:07 -0000 1.2 --- uni.c 1 Jan 2008 00:14:52 -0000 1.3 *************** *** 517,521 **** case ss_wait_rel: STOP_TIMER(sock); ! free_sock(sock); return; #if defined(Q2963_1) || defined(DYNAMIC_UNI) --- 517,527 ---- case ss_wait_rel: STOP_TIMER(sock); ! #ifdef MULTIPOINT ! /* Need to free all endpoints if this is a pmp call */ ! if (sock->ct == p2mp) ! free_leaves(&sock->id); ! else ! #endif ! free_sock(sock); return; #if defined(Q2963_1) || defined(DYNAMIC_UNI) *************** *** 574,577 **** --- 580,623 ---- /* silently ignore this junk */ return; + #ifdef MULTIPOINT + case ATM_MSG_ADD_PARTY_REJ: + STOP_TIMER(sock); + send_drop_party_ack(sock->sig,sock->call_ref,sock->ep_ref,ATM_CV_CALL_REJ); + send_kernel(sock->id, kptr_null, as_addparty, -1, + NULL, NULL, NULL, NULL, NULL); + diag(COMPONENT, DIAG_INFO, "addparty failed"); + /* If no other leaves, should close entire call */ + free_sock(sock); + return; + case ATM_MSG_ADD_PARTY_ACK: + STOP_TIMER(sock); + send_kernel(sock->id, kptr_null, as_addparty, sock->ep_ref, + NULL, NULL, NULL, NULL, NULL); + diag(COMPONENT, DIAG_INFO, "addparty succeeded"); + new_state(sock, ss_connected); + return; + case ATM_MSG_DROP_PARTY_ACK: + STOP_TIMER(sock); + send_kernel(sock->id, kptr_null, as_dropparty, 0, + NULL, NULL, NULL, NULL, NULL); + diag(COMPONENT, DIAG_INFO, "dropparty succeeded"); + free_sock(sock); + return; + case ATM_MSG_DROP_PARTY: + diag(COMPONENT, DIAG_INFO, "received dropparty"); + switch (sock->state) { + case ss_connecting: + case ss_connected: + case ss_rel_req: + case ss_wait_rel: + send_drop_party_ack(sock->sig, sock->call_ref, sock->ep_ref, + ATM_CV_NORMAL_CLEAR); + break; + default: + send_drop_party_ack(sock->sig, sock->call_ref, sock->ep_ref, 0); + } + free_sock(sock); + return; + #endif #if defined(Q2963_1) || defined(DYNAMIC_UNI) /* *************** *** 706,709 **** --- 752,756 ---- SOCKET *curr; unsigned long call_ref; + unsigned short ep_ref; unsigned char mid; *************** *** 752,757 **** return; } ! for (curr = sockets; curr; curr = curr->next) ! if (curr->sig == sig && curr->call_ref == call_ref) break; diag(COMPONENT,DIAG_DEBUG,"FROM SAAL %d.%d.%d: %s (0x%02X) CR 0x%06lx for " "%s",S_PVC(sig),mid2name(((unsigned char *) msg)[5]), --- 799,814 ---- return; } ! ! #ifdef MULTIPOINT ! if (q_present(&in_dsc,QF_ep_ref)) { ! ep_ref = cvt_ep_ref(sig,q_fetch(&in_dsc,QF_ep_ref)); ! for (curr = sockets; curr; curr = curr->next) ! if (curr->sig == sig && ! curr->call_ref == call_ref && ! curr->ep_ref == ep_ref) break; ! } else ! #endif ! for (curr = sockets; curr; curr = curr->next) ! if (curr->sig == sig && curr->call_ref == call_ref) break; diag(COMPONENT,DIAG_DEBUG,"FROM SAAL %d.%d.%d: %s (0x%02X) CR 0x%06lx for " "%s",S_PVC(sig),mid2name(((unsigned char *) msg)[5]), *************** *** 767,772 **** if (curr && q_present(&in_dsc,QF_ep_ref) && mid != ATM_MSG_ADD_PARTY && mid != ATM_MSG_DROP_PARTY_ACK) { - unsigned short ep_ref; - ep_ref = cvt_ep_ref(sig,q_fetch(&in_dsc,QF_ep_ref)); if (curr->ep_ref != ep_ref) { --- 824,827 ---- |
From: chas w. <ch...@us...> - 2008-01-01 00:14:56
|
Update of /cvsroot/linux-atm/linux-atm/src/test In directory sc8-pr-cvs6.sourceforge.net:/tmp/cvs-serv24942/src/test Modified Files: Makefile.am ttcp.c Added Files: .cvsignore atmswitch.c pmp_send.c svc_recv.c svc_send.c Log Message: merge 2.5.0 branch into the head Index: Makefile.am =================================================================== RCS file: /cvsroot/linux-atm/linux-atm/src/test/Makefile.am,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** Makefile.am 9 Oct 2001 22:33:08 -0000 1.2 --- Makefile.am 1 Jan 2008 00:14:53 -0000 1.3 *************** *** 1,3 **** ! USRPGMS = aread awrite ttcp_atm PGMS = align aping br bw isp window bin_PROGRAMS = $(USRPGMS) --- 1,4 ---- ! USRPGMS = aread awrite ttcp_atm atmswitch svc_recv svc_send @pmp_send@ ! EXTRA_PROGRAMS = pmp_send PGMS = align aping br bw isp window bin_PROGRAMS = $(USRPGMS) *************** *** 6,12 **** --- 7,17 ---- LDADD = $(top_builddir)/src/lib/libatm.la + atmswitch_SOURCES = atmswitch.c aread_SOURCES = aread.c awrite_SOURCES = awrite.c + svc_recv_SOURCES = svc_recv.c + svc_send_SOURCES = svc_send.c ttcp_atm_SOURCES = ttcp.c + pmp_send_SOURCES = pmp_send.c align_SOURCES = align.c *************** *** 27,31 **** errnos.inc: mkerrnos.pl ! @PERL@ ./mkerrnos.pl </usr/include/asm/errno.h \ >errnos.inc || { rm -f errnos.inc; exit 1; } --- 32,36 ---- errnos.inc: mkerrnos.pl ! @PERL@ $(srcdir)/mkerrnos.pl </usr/include/asm/errno.h \ >errnos.inc || { rm -f errnos.inc; exit 1; } Index: ttcp.c =================================================================== RCS file: /cvsroot/linux-atm/linux-atm/src/test/ttcp.c,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** ttcp.c 9 Oct 2001 22:33:08 -0000 1.2 --- ttcp.c 1 Jan 2008 00:14:53 -0000 1.3 *************** *** 56,62 **** --- 56,69 ---- #include <stdio.h> + #include <stdlib.h> + #include <unistd.h> + #include <string.h> + #include <getopt.h> #include <signal.h> #include <ctype.h> #include <errno.h> + #include <stdlib.h> + #include <unistd.h> + #include <string.h> #include <sys/types.h> #include <sys/socket.h> *************** *** 121,127 **** struct hostent *addr; - extern int errno; - extern int optind; - extern char *optarg; char Usage[] = "\ --- 128,131 ---- *************** *** 159,180 **** double cput, realt; /* user, real time (seconds) */ ! void err(); ! void mes(); ! int pattern(); ! void prep_timer(); ! double read_timer(); ! int Nread(); ! int Nwrite(); ! void delay(); ! int mread(); ! char *outfmt(); ! static void prusage(); ! static void tvadd(); ! static void tvsub(); ! static void psecs(); void ! sigpipe() { } --- 163,185 ---- double cput, realt; /* user, real time (seconds) */ ! void err(const char *); ! void mes(const char *); ! void pattern(char *, int); ! void prep_timer(void); ! double read_timer(char *, int); ! int Nread(int, char *, int); ! int Nwrite(int, char *, int); ! void delay(long); ! int mread(int, char *, unsigned); ! char *outfmt(double); ! static void prusage(struct rusage *, struct rusage *, struct timeval *, struct timeval *, char *); ! static void tvadd(struct timeval *, struct timeval *, struct timeval *); ! static void tvsub(struct timeval *, struct timeval *, struct timeval *); ! static void psecs(long, char*); void ! sigpipe(int sig) { + return; } *************** *** 184,190 **** *------------------------------------------------------------------------- */ ! main(argc,argv) ! int argc; ! char **argv; { struct timeval td; --- 189,194 ---- *------------------------------------------------------------------------- */ ! int ! main(int argc, char **argv) { struct timeval td; *************** *** 276,282 **** } ! if (port_name) ! if (atm) goto usage; ! else { struct servent *se; --- 280,287 ---- } ! if (port_name) { ! if (atm) { ! goto usage; ! } else { struct servent *se; *************** *** 284,288 **** if (se) port = ntohs(se->s_port); else { ! const char *end; port = strtoul(port_name,&end,0); --- 289,293 ---- if (se) port = ntohs(se->s_port); else { ! char *end; port = strtoul(port_name,&end,0); *************** *** 290,293 **** --- 295,299 ---- } } + } host = argv[optind]; *************** *** 407,440 **** } #endif - /* set socket buffer size */ - #if defined(SO_SNDBUF) || defined(SO_RCVBUF) - if (sockbufsize) { - int len; - - if (trans) { - /* set send socket buffer if we are transmitting */ - if (setsockopt(fd, SOL_SOCKET, SO_SNDBUF, &sockbufsize, - sizeof sockbufsize) < 0) - err("setsockopt: sndbuf"); - len = sizeof sockbufsize; - if (getsockopt(fd, SOL_SOCKET, SO_SNDBUF, &sockbufsize, &len) < 0) - perror("getsockopt: sndbuf"); - mes("sndbuf"); - } else { - /* set receive socket buffer if we are receiving */ - if (setsockopt(fd, SOL_SOCKET, SO_RCVBUF, &sockbufsize, - sizeof sockbufsize) < 0) - err("setsockopt: rcvbuf"); - len = sizeof sockbufsize; - if (getsockopt(fd, SOL_SOCKET, SO_RCVBUF, &sockbufsize, &len) < 0) - perror("getsockopt: rcvbuf"); - mes("rcvbuf"); - } - printf("real buffer size = %d\n",sockbufsize); - } - #endif if (!atm || satm.sas_family == AF_ATMPVC || !trans) ! if (bind(fd, atm ? &satm : &sinme, atm ? satm.sas_family == AF_ATMPVC ? sizeof(struct sockaddr_atmpvc) : sizeof(struct sockaddr_atmsvc) : sizeof(sinme)) < 0) --- 413,419 ---- } #endif if (!atm || satm.sas_family == AF_ATMPVC || !trans) ! if (bind(fd, atm ? (struct sockaddr *) &satm : (struct sockaddr *) &sinme, atm ? satm.sas_family == AF_ATMPVC ? sizeof(struct sockaddr_atmpvc) : sizeof(struct sockaddr_atmsvc) : sizeof(sinme)) < 0) *************** *** 454,458 **** } ! if (connect(fd, atm ? &satm : &sinhim, atm ? sizeof(satm) : sizeof(sinhim)) < 0) err("connect"); --- 433,437 ---- } ! if (connect(fd, atm ? (struct sockaddr *) &satm : (struct sockaddr *) &sinhim, atm ? sizeof(satm) : sizeof(sinhim)) < 0) err("connect"); *************** *** 483,487 **** domain = AF_INET; ! if ((fd=accept(fd, &frominet, &fromlen) ) < 0) err("accept"); --- 462,466 ---- domain = AF_INET; ! if ((fd=accept(fd, (struct sockaddr *) &frominet, &fromlen) ) < 0) err("accept"); *************** *** 489,493 **** struct sockaddr_atmsvc peer; int peerlen = sizeof(peer); ! if (getpeername(fd, (struct sockaddr_in *) &peer, &peerlen) < 0) { err("getpeername"); --- 468,472 ---- struct sockaddr_atmsvc peer; int peerlen = sizeof(peer); ! if (getpeername(fd, (struct sockaddr *) &peer, &peerlen) < 0) { err("getpeername"); *************** *** 497,501 **** if (atm2text(name,MAX_ATM_ADDR_LEN+1,(struct sockaddr *) ! &peer,A2T_NAME | A2T_PRETTY) < 0) strcpy(name,"<invalid>"); fprintf(stderr,"ttcp-r: accept from %s\n",name); --- 476,480 ---- if (atm2text(name,MAX_ATM_ADDR_LEN+1,(struct sockaddr *) ! &peer,/* A2T_NAME | */ A2T_PRETTY) < 0) strcpy(name,"<invalid>"); fprintf(stderr,"ttcp-r: accept from %s\n",name); *************** *** 516,519 **** --- 495,527 ---- } } + + /* set socket buffer size */ + #if defined(SO_SNDBUF) || defined(SO_RCVBUF) + if (sockbufsize) { + int len; + + if (trans) { + /* set send socket buffer if we are transmitting */ + if (setsockopt(fd, SOL_SOCKET, SO_SNDBUF, &sockbufsize, + sizeof sockbufsize) < 0) + err("setsockopt: sndbuf"); + len = sizeof sockbufsize; + if (getsockopt(fd, SOL_SOCKET, SO_SNDBUF, &sockbufsize, &len) < 0) + perror("getsockopt: sndbuf"); + mes("sndbuf"); + } else { + /* set receive socket buffer if we are receiving */ + if (setsockopt(fd, SOL_SOCKET, SO_RCVBUF, &sockbufsize, + sizeof sockbufsize) < 0) + err("setsockopt: rcvbuf"); + len = sizeof sockbufsize; + if (getsockopt(fd, SOL_SOCKET, SO_RCVBUF, &sockbufsize, &len) < 0) + perror("getsockopt: rcvbuf"); + mes("rcvbuf"); + } + printf("real buffer size = %d\n",sockbufsize); + } + #endif + if (tos) { unsigned char tos_value; *************** *** 614,618 **** (void)Nwrite(fd, buf, 4); /* rcvr end */ } ! if (cput <= 0.0) cput = 0.001; --- 622,626 ---- (void)Nwrite(fd, buf, 4); /* rcvr end */ } ! if (cput <= 0.0) cput = 0.001; *************** *** 639,643 **** fprintf(stdout, ! "ttcp%s: %d I/O calls, msec/call = %.2f, calls/sec = %.2f\n", trans?"-t":"-r", numCalls, --- 647,651 ---- fprintf(stdout, ! "ttcp%s: %ld I/O calls, msec/call = %.2f, calls/sec = %.2f\n", trans?"-t":"-r", numCalls, *************** *** 645,652 **** ((double)numCalls)/realt); fprintf(stdout, ! "ttcp%s: buffer address %#x\n", trans?"-t":"-r", ! buf); } exit(0); --- 653,664 ---- ((double)numCalls)/realt); fprintf(stdout, ! "ttcp%s: buffer address %#lx\n", trans?"-t":"-r", ! (unsigned long )buf); } + + if (udp && trans) + sleep(1); + exit(0); *************** *** 657,662 **** void ! err(s) ! char *s; { int en = errno; --- 669,673 ---- void ! err(const char *s) { int en = errno; *************** *** 671,676 **** void ! mes(s) ! char *s; { fprintf(stderr,"ttcp%s: %s\n", trans?"-t":"-r", s); --- 682,686 ---- void ! mes(const char *s) { fprintf(stderr,"ttcp%s: %s\n", trans?"-t":"-r", s); *************** *** 682,685 **** --- 692,696 ---- *------------------------------------------------------------------------- */ + void pattern(cp, cnt) register char *cp; *************** *** 759,763 **** */ void ! prep_timer() { gettimeofday(&start_time, (struct timezone *)0); --- 770,774 ---- */ void ! prep_timer(void) { gettimeofday(&start_time, (struct timezone *)0); *************** *** 771,774 **** --- 782,786 ---- double read_timer(str,len) char *str; + int len; { struct rusage ru1; *************** *** 814,818 **** cp = "%Uuser %Ssys %Ereal %P %Mmaxrss %F+%Rpf %Ccsw"; #else ! cp = "%Uuser %Ssys %Ereal %P %Xi+%Dd %Mmaxrss %F+%Rpf %Ccsw"; #endif #endif --- 826,830 ---- cp = "%Uuser %Ssys %Ereal %P %Mmaxrss %F+%Rpf %Ccsw"; #else ! cp = (char *) "%Uuser %Ssys %Ereal %P %Xi+%Dd %Mmaxrss %F+%Rpf %Ccsw"; #endif #endif *************** *** 824,828 **** case 'U': tvsub(&tdiff, &r1->ru_utime, &r0->ru_utime); ! sprintf(outp,"%d.%01d", tdiff.tv_sec, tdiff.tv_usec/100000); END(outp); break; --- 836,840 ---- case 'U': tvsub(&tdiff, &r1->ru_utime, &r0->ru_utime); ! sprintf(outp,"%ld.%01ld", tdiff.tv_sec, tdiff.tv_usec/100000); END(outp); break; *************** *** 830,834 **** case 'S': tvsub(&tdiff, &r1->ru_stime, &r0->ru_stime); ! sprintf(outp,"%d.%01d", tdiff.tv_sec, tdiff.tv_usec/100000); END(outp); break; --- 842,846 ---- case 'S': tvsub(&tdiff, &r1->ru_stime, &r0->ru_stime); ! sprintf(outp,"%ld.%01ld", tdiff.tv_sec, tdiff.tv_usec/100000); END(outp); break; *************** *** 852,861 **** case 'X': ! sprintf(outp,"%d", t == 0 ? 0 : (r1->ru_ixrss-r0->ru_ixrss)/t); END(outp); break; case 'D': ! sprintf(outp,"%d", t == 0 ? 0 : (r1->ru_idrss+r1->ru_isrss-(r0->ru_idrss+r0->ru_isrss))/t); END(outp); --- 864,873 ---- case 'X': ! sprintf(outp,"%ld", t == 0 ? 0 : (r1->ru_ixrss-r0->ru_ixrss)/t); END(outp); break; case 'D': ! sprintf(outp,"%ld", t == 0 ? 0 : (r1->ru_idrss+r1->ru_isrss-(r0->ru_idrss+r0->ru_isrss))/t); END(outp); *************** *** 863,867 **** case 'K': ! sprintf(outp,"%d", t == 0 ? 0 : ((r1->ru_ixrss+r1->ru_isrss+r1->ru_idrss) - (r0->ru_ixrss+r0->ru_idrss+r0->ru_isrss))/t); --- 875,879 ---- case 'K': ! sprintf(outp,"%ld", t == 0 ? 0 : ((r1->ru_ixrss+r1->ru_isrss+r1->ru_idrss) - (r0->ru_ixrss+r0->ru_idrss+r0->ru_isrss))/t); *************** *** 870,898 **** case 'M': ! sprintf(outp,"%d", r1->ru_maxrss/2); END(outp); break; case 'F': ! sprintf(outp,"%d", r1->ru_majflt-r0->ru_majflt); END(outp); break; case 'R': ! sprintf(outp,"%d", r1->ru_minflt-r0->ru_minflt); END(outp); break; case 'I': ! sprintf(outp,"%d", r1->ru_inblock-r0->ru_inblock); END(outp); break; case 'O': ! sprintf(outp,"%d", r1->ru_oublock-r0->ru_oublock); END(outp); break; case 'C': ! sprintf(outp,"%d+%d", r1->ru_nvcsw-r0->ru_nvcsw, r1->ru_nivcsw-r0->ru_nivcsw ); END(outp); --- 882,910 ---- case 'M': ! sprintf(outp,"%ld", r1->ru_maxrss/2); END(outp); break; case 'F': ! sprintf(outp,"%ld", r1->ru_majflt-r0->ru_majflt); END(outp); break; case 'R': ! sprintf(outp,"%ld", r1->ru_minflt-r0->ru_minflt); END(outp); break; case 'I': ! sprintf(outp,"%ld", r1->ru_inblock-r0->ru_inblock); END(outp); break; case 'O': ! sprintf(outp,"%ld", r1->ru_oublock-r0->ru_oublock); END(outp); break; case 'C': ! sprintf(outp,"%ld+%ld", r1->ru_nvcsw-r0->ru_nvcsw, r1->ru_nivcsw-r0->ru_nivcsw ); END(outp); *************** *** 959,987 **** * N R E A D */ ! Nread( fd, buf, count ) ! int fd; ! char *buf; int count; { struct sockaddr_in from; int len = sizeof(from); register int cnt; if( udp ) { #if 0 ! cnt = recvfrom( fd, buf, count, 0, &from, &len ); #else ! cnt = recv( fd, buf, count, 0); #endif numCalls++; } else { if( b_flag ) ! cnt = mread( fd, buf, count ); /* fill buf */ else { ! cnt = read( fd, buf, count ); numCalls++; } if (touchdata && cnt > 0) { register int c = cnt, sum; ! register char *b = buf; while (c--) sum += *b++; --- 971,1002 ---- * N R E A D */ ! int ! Nread(_fd, _buf, count) ! int _fd; ! char *_buf; int count; { + #if 0 struct sockaddr_in from; int len = sizeof(from); + #endif register int cnt; if( udp ) { #if 0 ! cnt = recvfrom(_fd, _buf, count, 0, &from, &len ); #else ! cnt = recv(_fd, _buf, count, 0); #endif numCalls++; } else { if( b_flag ) ! cnt = mread( _fd, _buf, count ); /* fill buf */ else { ! cnt = read( _fd, _buf, count ); numCalls++; } if (touchdata && cnt > 0) { register int c = cnt, sum; ! register char *b = _buf; while (c--) sum += *b++; *************** *** 995,1001 **** *------------------------------------------------------------------------- */ ! Nwrite(fd, buf, count) ! int fd; ! char *buf; int count; { --- 1010,1017 ---- *------------------------------------------------------------------------- */ ! int ! Nwrite(_fd, _buf, count) ! int _fd; ! char *_buf; int count; { *************** *** 1004,1009 **** if (udp) { again: ! if (atm) cnt = write(fd, buf, count); ! else cnt = sendto(fd, buf, count, 0, &sinhim, sizeof(sinhim)); numCalls++; if ( cnt<0 && errno == ENOBUFS ) { --- 1020,1025 ---- if (udp) { again: ! if (atm) cnt = write(_fd, _buf, count); ! else cnt = sendto(_fd, _buf, count, 0, (struct sockaddr *) &sinhim, sizeof(sinhim)); numCalls++; if ( cnt<0 && errno == ENOBUFS ) { *************** *** 1013,1017 **** } } else { ! cnt = write(fd, buf, count); numCalls++; } --- 1029,1033 ---- } } else { ! cnt = write(_fd, _buf, count); numCalls++; } *************** *** 1021,1025 **** void ! delay(us) { struct timeval tv; --- 1037,1041 ---- void ! delay(long us) { struct timeval tv; *************** *** 1027,1031 **** tv.tv_sec = 0; tv.tv_usec = us; ! (void)select( 1, (char *)0, (char *)0, (char *)0, &tv ); } --- 1043,1047 ---- tv.tv_sec = 0; tv.tv_usec = us; ! (void)select( 1, (void *)0, (void *)0, (void *)0, &tv ); } *************** *** 1040,1045 **** */ int ! mread(fd, bufp, n) ! int fd; register char *bufp; unsigned n; --- 1056,1061 ---- */ int ! mread(_fd, bufp, n) ! int _fd; register char *bufp; unsigned n; *************** *** 1049,1053 **** do { ! nread = read(fd, bufp, n-count); numCalls++; if(nread < 0) { --- 1065,1069 ---- do { ! nread = read(_fd, bufp, n-count); numCalls++; if(nread < 0) { |
From: chas w. <ch...@us...> - 2008-01-01 00:14:56
|
Update of /cvsroot/linux-atm/linux-atm/src/switch/tcp In directory sc8-pr-cvs6.sourceforge.net:/tmp/cvs-serv24942/src/switch/tcp Modified Files: Makefile.am tcpsw.c Added Files: .cvsignore Log Message: merge 2.5.0 branch into the head Index: Makefile.am =================================================================== RCS file: /cvsroot/linux-atm/linux-atm/src/switch/tcp/Makefile.am,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** Makefile.am 9 Oct 2001 22:33:08 -0000 1.2 --- Makefile.am 1 Jan 2008 00:14:52 -0000 1.3 *************** *** 1,5 **** noinst_PROGRAMS = sw_tcp ! INCLUDES = -I$(top_builddir)/src/qgen sw_tcp_SOURCES = tcpsw.c --- 1,5 ---- noinst_PROGRAMS = sw_tcp ! INCLUDES = -I$(srcdir)/../../qgen sw_tcp_SOURCES = tcpsw.c Index: tcpsw.c =================================================================== RCS file: /cvsroot/linux-atm/linux-atm/src/switch/tcp/tcpsw.c,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** tcpsw.c 9 Oct 2001 22:33:08 -0000 1.2 --- tcpsw.c 1 Jan 2008 00:14:52 -0000 1.3 *************** *** 346,352 **** void fab_init(CALL *call) { ! PRV(call) = alloc_t(FAB); ! PRV(call)->active = 0; ! PRV(call)->next = calls; calls = call; } --- 346,354 ---- void fab_init(CALL *call) { ! FAB *fab; ! call->fab = alloc_t(FAB); ! fab = PRV(call); ! fab->active = 0; ! fab->next = calls; calls = call; } *************** *** 363,367 **** *walk = PRV(call)->next; free(PRV(call)); ! PRV(call) = NULL; } --- 365,369 ---- *walk = PRV(call)->next; free(PRV(call)); ! call->fab = NULL; } |
From: chas w. <ch...@us...> - 2008-01-01 00:14:56
|
Update of /cvsroot/linux-atm/linux-atm/src/qgen In directory sc8-pr-cvs6.sourceforge.net:/tmp/cvs-serv24942/src/qgen Modified Files: Makefile.am qlib.c qlib.h uni.h Added Files: .cvsignore Log Message: merge 2.5.0 branch into the head Index: Makefile.am =================================================================== RCS file: /cvsroot/linux-atm/linux-atm/src/qgen/Makefile.am,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** Makefile.am 9 Oct 2001 22:33:07 -0000 1.2 --- Makefile.am 1 Jan 2008 00:14:51 -0000 1.3 *************** *** 17,20 **** --- 17,23 ---- q_test_DEPENDENCIES = q.test.c + TARGET_CC = @CC@ + CC = @CC_FOR_BUILD@ + #TESTS = $(check_PROGRAMS) *************** *** 31,43 **** atm_it atm_lit atm_lsi atm_tcs atm_css atm_eqo atm_eqp atm_aap \ atm_asp atm_tor ! SYMFILES = uni.h $(shell @PERL@ incl.pl $(CFLAGS) linux/atmsap.h) default.nl: mknl.pl $(SYMFILES) ! cat $(SYMFILES) | @PERL@ mknl.pl $(NLS) >default.nl || \ { rm -f default.nl; echo 1; } q.out.h q.out.c q.test.c: qgen msg.fmt default.nl ! $(CPP) $(DEFS) - <msg.fmt | ./qgen #q40.out.h q40.out.c q40.test.c: qgen uni40 default.nl --- 34,46 ---- atm_it atm_lit atm_lsi atm_tcs atm_css atm_eqo atm_eqp atm_aap \ atm_asp atm_tor ! SYMFILES = $(srcdir)/uni.h $(shell @PERL@ $(srcdir)/incl.pl $(CFLAGS) linux/atmsap.h) default.nl: mknl.pl $(SYMFILES) ! cat $(SYMFILES) | @PERL@ $(srcdir)/mknl.pl $(NLS) >default.nl || \ { rm -f default.nl; echo 1; } q.out.h q.out.c q.test.c: qgen msg.fmt default.nl ! $(CPP) $(DEFS) $(DEFAULT_INCLUDES) - < $(srcdir)/msg.fmt | ./qgen #q40.out.h q40.out.c q40.test.c: qgen uni40 default.nl *************** *** 45,52 **** qd.out.h qd.out.c qd.dump.c: qgen msg.fmt default.nl ! $(CPP) $(DEFS) - <msg.fmt | ./qgen -D q.out.o: q.out.c q.out.h qlib.c qlib.h ! $(CC) $(DEFS) $(CFLAGS) -c q.out.c #q40.out.o: q40.out.c q40.out.h qlib.c qlib.h --- 48,55 ---- qd.out.h qd.out.c qd.dump.c: qgen msg.fmt default.nl ! $(CPP) $(DEFS) $(DEFAULT_INCLUDES) - < $(srcdir)/msg.fmt | ./qgen -D q.out.o: q.out.c q.out.h qlib.c qlib.h ! $(TARGET_CC) $(DEFS) $(DEFAULT_INCLUDES) $(CFLAGS) -c q.out.c #q40.out.o: q40.out.c q40.out.h qlib.c qlib.h *************** *** 54,61 **** qd.dump.o: qd.dump.c qd.out.c qlib.c qlib.h ! $(CC) $(DEFS) $(CFLAGS) -c qd.dump.c qd.dump.standalone.o: qd.dump.c qd.out.c qlib.c qlib.h ! $(CC) $(DEFS) -DSTANDALONE $(CFLAGS) -c qd.dump.c \ -o qd.dump.standalone.o --- 57,64 ---- qd.dump.o: qd.dump.c qd.out.c qlib.c qlib.h ! $(TARGET_CC) $(DEFS) $(DEFAULT_INCLUDES) $(CFLAGS) -c qd.dump.c qd.dump.standalone.o: qd.dump.c qd.out.c qlib.c qlib.h ! $(CC) $(DEFS) $(DEFAULT_INCLUDES) -DSTANDALONE $(CFLAGS) -c qd.dump.c \ -o qd.dump.standalone.o Index: qlib.c =================================================================== RCS file: /cvsroot/linux-atm/linux-atm/src/qgen/qlib.c,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** qlib.c 9 Oct 2001 22:33:07 -0000 1.2 --- qlib.c 1 Jan 2008 00:14:51 -0000 1.3 *************** *** 27,31 **** ! static int debug = 0; --- 27,31 ---- ! int debug = 0; Index: qlib.h =================================================================== RCS file: /cvsroot/linux-atm/linux-atm/src/qgen/qlib.h,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** qlib.h 9 Oct 2001 22:33:07 -0000 1.2 --- qlib.h 1 Jan 2008 00:14:51 -0000 1.3 *************** *** 24,28 **** --- 24,30 ---- + #ifndef DUMP_MODE extern int q_dump; + #endif extern void q_report(int severity,const char *msg,...); Index: uni.h =================================================================== RCS file: /cvsroot/linux-atm/linux-atm/src/qgen/uni.h,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** uni.h 9 Oct 2001 22:33:07 -0000 1.2 --- uni.h 1 Jan 2008 00:14:51 -0000 1.3 *************** *** 395,399 **** #define ATM_TDL_CUM 0x01 /* Cumulative transit delay value */ #define ATM_TDL_E2EMAX 0x03 /* Maximum end-to-end transit delay value*/ ! #define ATM_TDL_NGI 0x06 /* Network generated indicator */ /* Transit network identification */ --- 395,399 ---- #define ATM_TDL_CUM 0x01 /* Cumulative transit delay value */ #define ATM_TDL_E2EMAX 0x03 /* Maximum end-to-end transit delay value*/ ! #define ATM_TDL_NGI 0x0a /* Network generated indicator */ /* Transit network identification */ |
From: chas w. <ch...@us...> - 2008-01-01 00:14:56
|
Update of /cvsroot/linux-atm/linux-atm/src/switch/debug In directory sc8-pr-cvs6.sourceforge.net:/tmp/cvs-serv24942/src/switch/debug Modified Files: Makefile.am debug.c Added Files: .cvsignore Log Message: merge 2.5.0 branch into the head Index: Makefile.am =================================================================== RCS file: /cvsroot/linux-atm/linux-atm/src/switch/debug/Makefile.am,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** Makefile.am 9 Oct 2001 22:33:08 -0000 1.2 --- Makefile.am 1 Jan 2008 00:14:52 -0000 1.3 *************** *** 1,5 **** noinst_PROGRAMS = sw_debug ! INCLUDES = -I$(top_builddir)/src/qgen sw_debug_SOURCES = debug.c --- 1,5 ---- noinst_PROGRAMS = sw_debug ! INCLUDES = -I$(srcdir)/../../qgen sw_debug_SOURCES = debug.c Index: debug.c =================================================================== RCS file: /cvsroot/linux-atm/linux-atm/src/switch/debug/debug.c,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** debug.c 9 Oct 2001 22:33:08 -0000 1.2 --- debug.c 1 Jan 2008 00:14:52 -0000 1.3 *************** *** 44,49 **** void fab_init(CALL *call) { ! PRV(call) = alloc_t(FAB); ! PRV(call)->next = calls; calls = call; } --- 44,52 ---- void fab_init(CALL *call) { ! FAB *fab; ! ! fab = alloc_t(FAB); ! call->fab = fab; ! fab->next = calls; calls = call; } *************** *** 60,64 **** *walk = PRV(call)->next; free(PRV(call)); ! PRV(call) = NULL; } --- 63,67 ---- *walk = PRV(call)->next; free(PRV(call)); ! call->fab = NULL; } |
From: chas w. <ch...@us...> - 2008-01-01 00:14:56
|
Update of /cvsroot/linux-atm/linux-atm/src/mpoad In directory sc8-pr-cvs6.sourceforge.net:/tmp/cvs-serv24942/src/mpoad Modified Files: io.c k_interf.c lecs.c main.c p_factory.c p_recogn.c Added Files: .cvsignore Log Message: merge 2.5.0 branch into the head Index: io.c =================================================================== RCS file: /cvsroot/linux-atm/linux-atm/src/mpoad/io.c,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** io.c 9 Oct 2001 22:33:07 -0000 1.2 --- io.c 1 Jan 2008 00:14:51 -0000 1.3 *************** *** 20,23 **** --- 20,24 ---- #endif #include <atm.h> + #include <linux/types.h> #include <linux/atmioc.h> #include <linux/atmmpc.h> Index: k_interf.c =================================================================== RCS file: /cvsroot/linux-atm/linux-atm/src/mpoad/k_interf.c,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** k_interf.c 9 Oct 2001 22:33:07 -0000 1.2 --- k_interf.c 1 Jan 2008 00:14:51 -0000 1.3 *************** *** 10,13 **** --- 10,14 ---- #include <stdint.h> #include <netinet/in.h> /* for ntohl() */ + #include <linux/types.h> #include <linux/atmmpc.h> #include <atm.h> Index: lecs.c =================================================================== RCS file: /cvsroot/linux-atm/linux-atm/src/mpoad/lecs.c,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** lecs.c 9 Oct 2001 22:33:07 -0000 1.2 --- lecs.c 1 Jan 2008 00:14:51 -0000 1.3 *************** *** 12,15 **** --- 12,16 ---- #include <atm.h> #include <atmsap.h> + #include <linux/types.h> #include <linux/atmmpc.h> /* for MPOA Device type TLV */ #include "lecs.h" Index: main.c =================================================================== RCS file: /cvsroot/linux-atm/linux-atm/src/mpoad/main.c,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** main.c 9 Oct 2001 22:33:07 -0000 1.2 --- main.c 1 Jan 2008 00:14:51 -0000 1.3 *************** *** 10,13 **** --- 10,14 ---- #include <sys/ioctl.h> #include <atm.h> + #include <linux/types.h> #include <linux/atmdev.h> #include <linux/atmmpc.h> Index: p_factory.c =================================================================== RCS file: /cvsroot/linux-atm/linux-atm/src/mpoad/p_factory.c,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** p_factory.c 9 Oct 2001 22:33:07 -0000 1.2 --- p_factory.c 1 Jan 2008 00:14:51 -0000 1.3 *************** *** 6,9 **** --- 6,10 ---- #include <stdint.h> #include <netinet/in.h> + #include <linux/types.h> #include <linux/atmmpc.h> #include <sys/socket.h> *************** *** 35,39 **** while( count > 1 ) { /* This is the inner loop */ ! sum += * ((uint16_t *) addr)++; count -= 2; } --- 36,41 ---- while( count > 1 ) { /* This is the inner loop */ ! sum += * ((uint16_t *) addr); ! addr += 2; count -= 2; } Index: p_recogn.c =================================================================== RCS file: /cvsroot/linux-atm/linux-atm/src/mpoad/p_recogn.c,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** p_recogn.c 9 Oct 2001 22:33:07 -0000 1.2 --- p_recogn.c 1 Jan 2008 00:14:51 -0000 1.3 *************** *** 8,11 **** --- 8,12 ---- #include <sys/time.h> #include <atm.h> + #include <linux/types.h> #include <linux/atmmpc.h> #include <netinet/in.h> |
Update of /cvsroot/linux-atm/linux-atm/src/led In directory sc8-pr-cvs6.sourceforge.net:/tmp/cvs-serv24942/src/led Modified Files: address.c conn.c display.c frames.c join.c join.h kernel.c kernel.h main.c zeppelin.8 Added Files: .cvsignore Log Message: merge 2.5.0 branch into the head Index: address.c =================================================================== RCS file: /cvsroot/linux-atm/linux-atm/src/led/address.c,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** address.c 9 Oct 2001 22:33:07 -0000 1.2 --- address.c 1 Jan 2008 00:14:50 -0000 1.3 *************** *** 53,57 **** fd = socket(PF_ATMSVC, SOCK_DGRAM, 0); if (fd < 0) { ! diag(COMPONENT, DIAG_ERROR, "addr_getesi: socket: %s\n", strerror(errno)); return -1; --- 53,57 ---- fd = socket(PF_ATMSVC, SOCK_DGRAM, 0); if (fd < 0) { ! diag(COMPONENT, DIAG_ERROR, "addr_getesi: socket: %s", strerror(errno)); return -1; *************** *** 61,65 **** req.length = ESI_LEN; retval = ioctl(fd, ATM_GETESI, &req); ! if (retval < 0) diag(COMPONENT, DIAG_ERROR, "ioctl ATM_GETESI: %s\n", strerror(errno)); close(fd); --- 61,65 ---- req.length = ESI_LEN; retval = ioctl(fd, ATM_GETESI, &req); ! if (retval < 0) diag(COMPONENT, DIAG_ERROR, "ioctl ATM_GETESI: %s", strerror(errno)); close(fd); *************** *** 80,84 **** fd = socket(PF_ATMSVC, SOCK_DGRAM, 0); if (fd < 0) { ! diag(COMPONENT, DIAG_ERROR, "get_listenaddr: socket: %s\n", strerror(errno)); return -1; --- 80,84 ---- fd = socket(PF_ATMSVC, SOCK_DGRAM, 0); if (fd < 0) { ! diag(COMPONENT, DIAG_ERROR, "get_listenaddr: socket: %s", strerror(errno)); return -1; *************** *** 88,92 **** req.length = sizeof(listen_addr); retval = ioctl(fd, ATM_GETADDR, &req); ! if (retval < 0) diag(COMPONENT, DIAG_ERROR, "ioctl ATM_GETADDR: %s\n", strerror(errno)); close(fd); --- 88,92 ---- req.length = sizeof(listen_addr); retval = ioctl(fd, ATM_GETADDR, &req); ! if (retval < 0) diag(COMPONENT, DIAG_ERROR, "ioctl ATM_GETADDR: %s", strerror(errno)); close(fd); Index: conn.c =================================================================== RCS file: /cvsroot/linux-atm/linux-atm/src/led/conn.c,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** conn.c 9 Oct 2001 22:33:07 -0000 1.2 --- conn.c 1 Jan 2008 00:14:50 -0000 1.3 *************** *** 38,41 **** --- 38,42 ---- #include <errno.h> #include <sys/ioctl.h> + #include <time.h> #include <atm.h> *************** *** 117,121 **** char qos_text[MAX_ATM_QOS_LEN + 1]; ! diag(COMPONENT, DIAG_DEBUG, "init_conn_params, conn_type %x\n", conn_type); memset(qos, 0, sizeof(struct atm_qos)); --- 118,122 ---- char qos_text[MAX_ATM_QOS_LEN + 1]; ! diag(COMPONENT, DIAG_DEBUG, "init_conn_params, conn_type %x", conn_type); memset(qos, 0, sizeof(struct atm_qos)); *************** *** 136,140 **** break; default: ! diag(COMPONENT, DIAG_ERROR, "unknown conn_type %x\n", conn_type); break; } --- 137,141 ---- break; default: ! diag(COMPONENT, DIAG_ERROR, "unknown conn_type %x", conn_type); break; } *************** *** 147,151 **** if (qos2text(qos_text, sizeof(qos_text), qos, 0) < 0) sprintf(qos_text, "<bad qos>"); ! diag(COMPONENT, DIAG_DEBUG, "init_conn_params, QoS '%s'\n", qos_text); } --- 148,152 ---- if (qos2text(qos_text, sizeof(qos_text), qos, 0) < 0) sprintf(qos_text, "<bad qos>"); ! diag(COMPONENT, DIAG_DEBUG, "init_conn_params, QoS '%s'", qos_text); } *************** *** 193,209 **** s = socket(PF_ATMSVC, SOCK_DGRAM, 0); if (s < 0) { ! diag(COMPONENT, DIAG_ERROR, "socket creation failure: %s\n", strerror(errno)); return -1; } ! diag(COMPONENT, DIAG_DEBUG, "get_socket: got fd %d\n", s); if (setsockopt(s, SOL_ATM, SO_ATMQOS, qos, sizeof(struct atm_qos)) < 0) { ! diag(COMPONENT, DIAG_ERROR, "get_socket: setsockopt SO_ATMQOS: %s\n", strerror(errno)); close(s); return -1; } if (setsockopt(s, SOL_ATM, SO_ATMSAP, sap, sizeof(struct atm_sap)) < 0) { ! diag(COMPONENT, DIAG_ERROR, "setup_svc setsockop(SO_ATMSAP)\n"); close(s); return -1; --- 194,210 ---- s = socket(PF_ATMSVC, SOCK_DGRAM, 0); if (s < 0) { ! diag(COMPONENT, DIAG_ERROR, "socket creation failure: %s", strerror(errno)); return -1; } ! diag(COMPONENT, DIAG_DEBUG, "get_socket: got fd %d", s); if (setsockopt(s, SOL_ATM, SO_ATMQOS, qos, sizeof(struct atm_qos)) < 0) { ! diag(COMPONENT, DIAG_ERROR, "get_socket: setsockopt SO_ATMQOS: %s", strerror(errno)); close(s); return -1; } if (setsockopt(s, SOL_ATM, SO_ATMSAP, sap, sizeof(struct atm_sap)) < 0) { ! diag(COMPONENT, DIAG_ERROR, "setup_svc setsockop(SO_ATMSAP)"); close(s); return -1; *************** *** 215,219 **** ret = bind(s, (struct sockaddr *)listen_addr, sizeof(struct sockaddr_atmsvc)); if (ret < 0) { ! diag(COMPONENT, DIAG_ERROR, "bind error: %s\n", strerror(errno)); close(s); return -1; --- 216,220 ---- ret = bind(s, (struct sockaddr *)listen_addr, sizeof(struct sockaddr_atmsvc)); if (ret < 0) { ! diag(COMPONENT, DIAG_ERROR, "bind error: %s", strerror(errno)); close(s); return -1; *************** *** 224,236 **** - /* - * You need to check this if setup_svc() returns NULL - */ - #if 0 - if (is_data_direct(&sap->blli[0])) { - /* Try to remove possible entry in kernel */ - delete_addr(conn->atm_address); - } - #endif /* Does an active open to dst_addr using pre-filled * parameters in sap and qos. --- 225,228 ---- *************** *** 247,268 **** char buff[MAX_ATM_ADDR_LEN+1]; ! diag(COMPONENT, DIAG_DEBUG, "Outgoing call setup\n"); - /* The code below is commented out due to the following scenario: - We have made a connection to another LEC and our address was - numerically lower than theirs (LANEv2 8.1.13). - The other end has also connected us, but we must not use that - VCC. - However, if the connection we made gets closed, we can not open - it again since a connection to the destination LEC already exists. - */ - #if 0 - /* We don't create connection to an entity where we already have - a connection. */ - if (conn_already_exists(dst_addr->sas_addr.prv, NULL) && - is_data_direct(&sap->blli[0])) - return NULL; - #endif - dst_addr->sas_family = AF_ATMSVC; listen_addr->sas_family = AF_ATMSVC; --- 239,244 ---- char buff[MAX_ATM_ADDR_LEN+1]; ! diag(COMPONENT, DIAG_DEBUG, "Outgoing call setup"); dst_addr->sas_family = AF_ATMSVC; listen_addr->sas_family = AF_ATMSVC; *************** *** 270,289 **** switch(sap->blli[0].l3.tr9577.snap[4]) { /* Kludge. Eh? */ case CONTROL_CONN: ! diag(COMPONENT, DIAG_DEBUG, "LE Control SVC setup\n"); break; case DATA_DIRECT_8023: ! diag(COMPONENT, DIAG_DEBUG, "Data direct 802.3\n"); break; case DATA_DIRECT_8025: ! diag(COMPONENT, DIAG_DEBUG, "Data direct 802.5\n"); break; case MCAST_CONN_8023: ! diag(COMPONENT, DIAG_DEBUG, "Multicast 802.3\n"); break; case MCAST_CONN_8025: ! diag(COMPONENT, DIAG_DEBUG, "Multicast 802.5\n"); break; default: ! diag(COMPONENT, DIAG_ERROR, "Unknown codepoint in svc setup\n"); } --- 246,265 ---- switch(sap->blli[0].l3.tr9577.snap[4]) { /* Kludge. Eh? */ case CONTROL_CONN: ! diag(COMPONENT, DIAG_DEBUG, "LE Control SVC setup"); break; case DATA_DIRECT_8023: ! diag(COMPONENT, DIAG_DEBUG, "Data direct 802.3"); break; case DATA_DIRECT_8025: ! diag(COMPONENT, DIAG_DEBUG, "Data direct 802.5"); break; case MCAST_CONN_8023: ! diag(COMPONENT, DIAG_DEBUG, "Multicast 802.3"); break; case MCAST_CONN_8025: ! diag(COMPONENT, DIAG_DEBUG, "Multicast 802.5"); break; default: ! diag(COMPONENT, DIAG_ERROR, "Unknown codepoint in svc setup"); } *************** *** 298,305 **** ret = fcntl(s, F_GETFL); if (ret < 0) { ! diag(COMPONENT, DIAG_ERROR, "fcntl(s, F_GETFL)\n"); close(s); } else if (fcntl(s, F_SETFL, ret|O_NONBLOCK) < 0) { ! diag(COMPONENT, DIAG_ERROR, "fcntl(s, F_SETFL, x|O_NONBLOCK)\n"); close(s); return NULL; --- 274,281 ---- ret = fcntl(s, F_GETFL); if (ret < 0) { ! diag(COMPONENT, DIAG_ERROR, "fcntl(s, F_GETFL)"); close(s); } else if (fcntl(s, F_SETFL, ret|O_NONBLOCK) < 0) { ! diag(COMPONENT, DIAG_ERROR, "fcntl(s, F_SETFL, x|O_NONBLOCK)"); close(s); return NULL; *************** *** 309,313 **** ret = connect(s, (struct sockaddr *)dst_addr, sizeof(struct sockaddr_atmsvc)); if (ret < 0 && errno != EINPROGRESS) { ! diag(COMPONENT, DIAG_ERROR, "connect error: %s\n", strerror(errno)); close(s); return NULL; --- 285,289 ---- ret = connect(s, (struct sockaddr *)dst_addr, sizeof(struct sockaddr_atmsvc)); if (ret < 0 && errno != EINPROGRESS) { ! diag(COMPONENT, DIAG_ERROR, "connect error: %s", strerror(errno)); close(s); return NULL; *************** *** 315,319 **** conn = list_add_conn(dst_addr->sas_addr.prv); ! diag(COMPONENT, DIAG_DEBUG, "Conn:%p\n", conn); if (conn == NULL) { close(s); --- 291,295 ---- conn = list_add_conn(dst_addr->sas_addr.prv); ! diag(COMPONENT, DIAG_DEBUG, "Conn:%p", conn); if (conn == NULL) { close(s); *************** *** 349,353 **** lec_params.data_listen = create_listensocket(&addr, &sap, &qos); if (lec_params.data_listen == NULL) { ! diag(COMPONENT, DIAG_FATAL, "Could not create listen socket for incoming Data Direct VCCs\n"); return -1; } --- 325,329 ---- lec_params.data_listen = create_listensocket(&addr, &sap, &qos); if (lec_params.data_listen == NULL) { ! diag(COMPONENT, DIAG_FATAL, "Could not create listen socket for incoming Data Direct VCCs"); return -1; } *************** *** 376,380 **** conn = setup_svc(&dst_addr, &my_addr, &sap, &qos); if (conn == NULL) { ! diag(COMPONENT, DIAG_ERROR, "Could not create Data Direct VCC\n"); delete_addr(dst_addr.sas_addr.prv); return -1; --- 352,356 ---- conn = setup_svc(&dst_addr, &my_addr, &sap, &qos); if (conn == NULL) { ! diag(COMPONENT, DIAG_ERROR, "Could not create Data Direct VCC"); delete_addr(dst_addr.sas_addr.prv); return -1; *************** *** 394,405 **** Conn_t *conn; ! diag(COMPONENT, DIAG_DEBUG, "conn_create_listensocket\n"); fd = get_socket(listen_addr, sap, qos); if (fd < 0) return NULL; ! ret = listen(fd, 5); if (ret != 0) { ! diag(COMPONENT, DIAG_DEBUG, "Listen failed: %s\n", strerror(errno)); close(fd); return NULL; --- 370,381 ---- Conn_t *conn; ! diag(COMPONENT, DIAG_DEBUG, "conn_create_listensocket"); fd = get_socket(listen_addr, sap, qos); if (fd < 0) return NULL; ! ret = listen(fd, 16); if (ret != 0) { ! diag(COMPONENT, DIAG_DEBUG, "Listen failed: %s", strerror(errno)); close(fd); return NULL; *************** *** 408,412 **** conn = list_add_conn(NULL); if (conn == NULL) { ! diag(COMPONENT, DIAG_ERROR, "List_add_conn failed\n"); close(fd); return NULL; --- 384,388 ---- conn = list_add_conn(NULL); if (conn == NULL) { ! diag(COMPONENT, DIAG_ERROR, "List_add_conn failed"); close(fd); return NULL; *************** *** 415,419 **** conn->type = LISTENING; conn->fd = fd; ! diag(COMPONENT, DIAG_DEBUG, "Listen socket created blli:%2.2x %2.2x fd: %d\n", sap->blli[0].l3.tr9577.snap[3], sap->blli[0].l3.tr9577.snap[4], --- 391,395 ---- conn->type = LISTENING; conn->fd = fd; ! diag(COMPONENT, DIAG_DEBUG, "Listen socket created blli:%2.2x %2.2x fd: %d", sap->blli[0].l3.tr9577.snap[3], sap->blli[0].l3.tr9577.snap[4], *************** *** 434,443 **** char buff[MAX_ATM_ADDR_LEN+1]; ! diag(COMPONENT, DIAG_DEBUG, "Accepting connection on fd %d\n", conn->fd); len = sizeof(addr); fd = accept(conn->fd, (struct sockaddr *)&addr, &len); ! diag(COMPONENT, DIAG_DEBUG, "accept returned %d\n", fd); if (fd < 0) { ! diag(COMPONENT, DIAG_ERROR, "accept: %s\n", strerror(errno)); return NULL; } --- 410,419 ---- char buff[MAX_ATM_ADDR_LEN+1]; ! diag(COMPONENT, DIAG_DEBUG, "Accepting connection on fd %d", conn->fd); len = sizeof(addr); fd = accept(conn->fd, (struct sockaddr *)&addr, &len); ! diag(COMPONENT, DIAG_DEBUG, "accept returned %d", fd); if (fd < 0) { ! diag(COMPONENT, DIAG_ERROR, "accept: %s", strerror(errno)); return NULL; } *************** *** 458,462 **** } ! /* Close all connections, important or not. */ void close_connections(void) --- 434,438 ---- } ! /* Close all connections, except the kernel socket. */ void close_connections(void) *************** *** 465,474 **** for(conn = connlist; conn; conn = next) { ! diag(COMPONENT, DIAG_DEBUG, "Destroying:%p fd:%d type:%d\n", ! conn, conn->fd, conn->type); ! next = conn->next; ! close(conn->fd); ! list_remove_conn(conn); ! free(conn); } --- 441,452 ---- for(conn = connlist; conn; conn = next) { ! next = conn->next; ! if (conn->type != KERNEL_SOCK) { ! diag(COMPONENT, DIAG_DEBUG, "Destroying:%p fd:%d type:%d", ! conn, conn->fd, conn->type); ! close(conn->fd); ! list_remove_conn(conn); ! free(conn); ! } } *************** *** 487,491 **** Conn_t *mcast; ! diag(COMPONENT, DIAG_DEBUG, "close_connection %p\n", conn); if (conn == lec_params.kernel || --- 465,469 ---- Conn_t *mcast; ! diag(COMPONENT, DIAG_DEBUG, "close_connection %p", conn); if (conn == lec_params.kernel || *************** *** 518,522 **** static int handle_accept(Conn_t *conn) { ! Conn_t *new; struct atmlec_ioc ioc; --- 496,500 ---- static int handle_accept(Conn_t *conn) { ! Conn_t *new, *existing = NULL; struct atmlec_ioc ioc; *************** *** 525,547 **** if (conn == lec_params.mcast_listen) { ! diag(COMPONENT, DIAG_DEBUG, "Multicast Forward VCC accepted\n"); ioc.receive = 2; } else { ! diag(COMPONENT, DIAG_DEBUG, "Data Direct VCC accepted\n"); ioc.receive = 0; ! if (conn_already_exists(new->atm_address, new) && ! memcmp(lec_params.c1n_my_atm_addr, new->atm_address, ATM_ESA_LEN) < 0) { ! diag(COMPONENT, DIAG_DEBUG, "Using it only to receive, spec 8.1.1\n"); ! ioc.receive = 1; ! } } memcpy(ioc.atm_addr, new->atm_address, ATM_ESA_LEN); ioc.dev_num = lec_params.itf_num; ! diag(COMPONENT, DIAG_DEBUG, "Attaching a new VCC, fd %d\n", new->fd); if (ioctl(new->fd, ATMLEC_DATA, &ioc) < 0) { ! diag(COMPONENT, DIAG_ERROR, "VCC attach failed: ioctl: %s\n", strerror(errno)); return -1; } return 0; } --- 503,532 ---- if (conn == lec_params.mcast_listen) { ! diag(COMPONENT, DIAG_DEBUG, "Multicast Forward VCC accepted"); ioc.receive = 2; } else { ! diag(COMPONENT, DIAG_DEBUG, "Data Direct VCC accepted"); ioc.receive = 0; ! if ((existing = conn_already_exists(new->atm_address, new)) && ! /* is calling address > called address */ ! (memcmp(new->atm_address, lec_params.c1n_my_atm_addr, ATM_ESA_LEN) > 0)) { ! diag(COMPONENT, DIAG_DEBUG, "Using it only to receive, spec 8.1.13"); ! ioc.receive = 1; ! existing = NULL; ! } } memcpy(ioc.atm_addr, new->atm_address, ATM_ESA_LEN); ioc.dev_num = lec_params.itf_num; ! diag(COMPONENT, DIAG_DEBUG, "Attaching a new VCC, fd %d", new->fd); if (ioctl(new->fd, ATMLEC_DATA, &ioc) < 0) { ! diag(COMPONENT, DIAG_ERROR, "VCC attach failed: ioctl: %s", strerror(errno)); return -1; } + if (existing && existing->status == CONNECTED) { + diag(COMPONENT, DIAG_DEBUG, "Closing old data direct, fd %d", existing->fd); + close_connection(existing); + } + return 0; } *************** *** 559,567 **** retval = recv_frame(conn, buff, sizeof(buff)); if (retval < 0) { ! diag(COMPONENT, DIAG_ERROR, "handle_data: read: %s\n", strerror(errno)); return (close_connection(conn)); } if (retval == 0) { ! diag(COMPONENT, DIAG_DEBUG, "fd %d, Data or Multicast VCC closed\n", conn->fd); return (close_connection(conn)); } --- 544,552 ---- retval = recv_frame(conn, buff, sizeof(buff)); if (retval < 0) { ! diag(COMPONENT, DIAG_ERROR, "handle_data: read: %s", strerror(errno)); return (close_connection(conn)); } if (retval == 0) { ! diag(COMPONENT, DIAG_DEBUG, "fd %d, Data or Multicast VCC closed", conn->fd); return (close_connection(conn)); } *************** *** 598,602 **** break; default: ! diag(COMPONENT, DIAG_ERROR, "check_connections: bad_type '%s'\n", get_type_string(conn->type)); break; --- 583,587 ---- break; default: ! diag(COMPONENT, DIAG_ERROR, "check_connections: bad_type '%s'", get_type_string(conn->type)); break; *************** *** 619,623 **** struct atmlec_ioc ioc; ! diag(COMPONENT, DIAG_DEBUG, "handle_connect: completing fd %d\n", conn->fd); /* this seems to be common method in Linux-ATM * making sure that nonblocking connect was --- 604,608 ---- struct atmlec_ioc ioc; ! diag(COMPONENT, DIAG_DEBUG, "handle_connect: completing fd %d", conn->fd); /* this seems to be common method in Linux-ATM * making sure that nonblocking connect was *************** *** 627,631 **** retval = connect(conn->fd, (struct sockaddr *)&dummy, sizeof(struct sockaddr_atmsvc)); if (retval < 0) { ! diag(COMPONENT, DIAG_DEBUG, "handle_connect: connect: %s\n", strerror(errno)); delete_addr(conn->atm_address); close_connection(conn); --- 612,616 ---- retval = connect(conn->fd, (struct sockaddr *)&dummy, sizeof(struct sockaddr_atmsvc)); if (retval < 0) { ! diag(COMPONENT, DIAG_DEBUG, "handle_connect: connect: %s", strerror(errno)); delete_addr(conn->atm_address); close_connection(conn); *************** *** 633,647 **** } - send_ready_ind(conn); - memcpy(ioc.atm_addr, conn->atm_address, ATM_ESA_LEN); ioc.dev_num = lec_params.itf_num; ioc.receive = 0; ! diag(COMPONENT, DIAG_DEBUG, "Attaching a new active VCC, fd %d\n", conn->fd); if (ioctl(conn->fd, ATMLEC_DATA, &ioc) < 0) { ! diag(COMPONENT, DIAG_ERROR, "VCC attach failed: ioctl: %s\n", strerror(errno)); return -1; } memset(&msg, 0, sizeof(struct atmlec_msg)); msg.type = l_flush_tran_id; --- 618,639 ---- } memcpy(ioc.atm_addr, conn->atm_address, ATM_ESA_LEN); ioc.dev_num = lec_params.itf_num; ioc.receive = 0; ! diag(COMPONENT, DIAG_DEBUG, "Attaching a new active VCC, fd %d", conn->fd); ! if (conn_already_exists(conn->atm_address, conn) && ! /* is calling address > called address */ ! memcmp(lec_params.c1n_my_atm_addr, conn->atm_address, ATM_ESA_LEN) > 0) { ! diag(COMPONENT, DIAG_DEBUG, "Receive only, spec 8.1.13 -- Closing"); ! close_connection(conn); ! return 0; ! } if (ioctl(conn->fd, ATMLEC_DATA, &ioc) < 0) { ! diag(COMPONENT, DIAG_ERROR, "VCC attach failed: ioctl: %s", strerror(errno)); return -1; } + send_ready_ind(conn); + memset(&msg, 0, sizeof(struct atmlec_msg)); msg.type = l_flush_tran_id; *************** *** 684,692 **** int ret; ! diag(COMPONENT, DIAG_DEBUG, "send_frame: fd:%d len:%ld\n", conn->fd, length); hdr = (struct frame_hdr *)frame; if (hdr->opcode == htons(READY_QUERY) || hdr->opcode == htons(READY_IND)) ! diag(COMPONENT, DIAG_DEBUG, "%s\n", opcode2text(hdr->opcode)); else display_frame(frame); --- 676,684 ---- int ret; ! diag(COMPONENT, DIAG_DEBUG, "send_frame: fd:%d len:%ld", conn->fd, length); hdr = (struct frame_hdr *)frame; if (hdr->opcode == htons(READY_QUERY) || hdr->opcode == htons(READY_IND)) ! diag(COMPONENT, DIAG_DEBUG, "%s", opcode2text(hdr->opcode)); else display_frame(frame); *************** *** 694,698 **** ret = write(conn->fd, frame, length); if (ret < 0) { ! diag(COMPONENT, DIAG_ERROR, "send_frame: write: %s\n", strerror(errno)); return -1; } --- 686,690 ---- ret = write(conn->fd, frame, length); if (ret < 0) { ! diag(COMPONENT, DIAG_ERROR, "send_frame: write: %s", strerror(errno)); return -1; } *************** *** 708,720 **** int ret; ! diag(COMPONENT, DIAG_DEBUG, "recv_frame: fd:%d\n", conn->fd); ret = read(conn->fd, buff, length); if (ret < 0) { ! diag(COMPONENT, DIAG_ERROR, "Read failed: %s\n", strerror(errno)); return -1; } #if 0 ! diag(COMPONENT, DIAG_DEBUG, "recv_frame: read %d bytes\n", ret); if (get_verbosity(COMPONENT) >= DIAG_DEBUG) { int i; --- 700,712 ---- int ret; ! diag(COMPONENT, DIAG_DEBUG, "recv_frame: fd:%d", conn->fd); ret = read(conn->fd, buff, length); if (ret < 0) { ! diag(COMPONENT, DIAG_ERROR, "Read failed: %s", strerror(errno)); return -1; } #if 0 ! diag(COMPONENT, DIAG_DEBUG, "recv_frame: read %d bytes", ret); if (get_verbosity(COMPONENT) >= DIAG_DEBUG) { int i; *************** *** 742,746 **** tv.tv_usec = (millis % 1000) * 1000; ! diag(COMPONENT, DIAG_DEBUG, "random_delay: sleeping %d.%d seconds\n", tv.tv_sec, tv.tv_usec); (void)select(0, NULL, NULL, NULL, &tv); --- 734,738 ---- tv.tv_usec = (millis % 1000) * 1000; ! diag(COMPONENT, DIAG_DEBUG, "random_delay: sleeping %d.%d seconds", tv.tv_sec, tv.tv_usec); (void)select(0, NULL, NULL, NULL, &tv); *************** *** 794,798 **** conn = list_add_conn(NULL); if (conn == NULL) { ! diag(COMPONENT, DIAG_ERROR, "conn_set_kernel_socket: list_add_conn failed\n"); return -1; } --- 786,790 ---- conn = list_add_conn(NULL); if (conn == NULL) { ! diag(COMPONENT, DIAG_ERROR, "conn_set_kernel_socket: list_add_conn failed"); return -1; } *************** *** 826,830 **** connlist->previous = conn; connlist = conn; ! diag(COMPONENT, DIAG_DEBUG, "Added conn:%p\n", conn); return conn; --- 818,822 ---- connlist->previous = conn; connlist = conn; ! diag(COMPONENT, DIAG_DEBUG, "Added conn:%p", conn); return conn; *************** *** 855,859 **** if (conn->next) conn->next->previous = conn->previous; ! diag(COMPONENT, DIAG_DEBUG, "Connlist: %p\n", connlist); conn->next=conn->previous= NULL; --- 847,851 ---- if (conn->next) conn->next->previous = conn->previous; ! diag(COMPONENT, DIAG_DEBUG, "Connlist: %p", connlist); conn->next=conn->previous= NULL; Index: display.c =================================================================== RCS file: /cvsroot/linux-atm/linux-atm/src/led/display.c,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** display.c 9 Oct 2001 22:33:07 -0000 1.2 --- display.c 1 Jan 2008 00:14:51 -0000 1.3 *************** *** 68,72 **** *p = '\0'; ! diag(COMPONENT, DIAG_DEBUG, "%s\n", text); return; --- 68,72 ---- *p = '\0'; ! diag(COMPONENT, DIAG_DEBUG, "%s", text); return; *************** *** 75,79 **** static void display_ready(void *ready_frame) { ! diag(COMPONENT, DIAG_DEBUG, "ready frame\n"); return; --- 75,79 ---- static void display_ready(void *ready_frame) { ! diag(COMPONENT, DIAG_DEBUG, "ready frame"); return; Index: frames.c =================================================================== RCS file: /cvsroot/linux-atm/linux-atm/src/led/frames.c,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** frames.c 9 Oct 2001 22:33:07 -0000 1.2 --- frames.c 1 Jan 2008 00:14:51 -0000 1.3 *************** *** 63,67 **** if (size < sizeof(struct ready_frame)) { ! diag(COMPONENT, DIAG_DEBUG, "short frame, size %d\n", size); return -1; } --- 63,67 ---- if (size < sizeof(struct ready_frame)) { ! diag(COMPONENT, DIAG_DEBUG, "short frame, size %d", size); return -1; } *************** *** 76,85 **** if (hdr->opcode == htons(READY_QUERY) || hdr->opcode == htons(READY_IND)) { ! diag(COMPONENT, DIAG_DEBUG, "Received a %s\n", opcode2text(hdr->opcode)); return 0; } if (size < sizeof(struct ctrl_frame)) { ! diag(COMPONENT, DIAG_DEBUG, "short frame, size %d\n", size); return -1; } --- 76,85 ---- if (hdr->opcode == htons(READY_QUERY) || hdr->opcode == htons(READY_IND)) { ! diag(COMPONENT, DIAG_DEBUG, "Received a %s", opcode2text(hdr->opcode)); return 0; } if (size < sizeof(struct ctrl_frame)) { ! diag(COMPONENT, DIAG_DEBUG, "short frame, size %d", size); return -1; } *************** *** 98,102 **** f->header.opcode = htons(LE_FLUSH_RSP); if (send_frame(lec_params.ctrl_direct, f, sizeof(struct ctrl_frame)) < 0) ! diag(COMPONENT, DIAG_DEBUG, "could not send LE_FLUSH_RESPONSE\n"); return; --- 98,102 ---- f->header.opcode = htons(LE_FLUSH_RSP); if (send_frame(lec_params.ctrl_direct, f, sizeof(struct ctrl_frame)) < 0) ! diag(COMPONENT, DIAG_DEBUG, "could not send LE_FLUSH_RESPONSE"); return; *************** *** 110,114 **** if (f->header.lec_id != htons(lec_params.c14_lec_id)) { ! diag(COMPONENT, DIAG_DEBUG, "Wrong lec_id, ignoring\n"); return; } --- 110,114 ---- if (f->header.lec_id != htons(lec_params.c14_lec_id)) { ! diag(COMPONENT, DIAG_DEBUG, "Wrong lec_id, ignoring"); return; } *************** *** 165,169 **** if (frame->header.lec_id == htons(lec_params.c14_lec_id)) { ! diag(COMPONENT, DIAG_DEBUG, "Ignoring own LE_ARP_REQUEST\n"); return 0; } --- 165,169 ---- if (frame->header.lec_id == htons(lec_params.c14_lec_id)) { ! diag(COMPONENT, DIAG_DEBUG, "Ignoring own LE_ARP_REQUEST"); return 0; } *************** *** 194,198 **** memcpy(msg->content.normal.mac_addr, frame->src_lan_dst.mac, ETH_ALEN); memcpy(msg->content.normal.atm_addr, frame->src_atm_addr, ATM_ESA_LEN); ! msg->content.normal.flag = (frame->header.flags & REMOTE_ADDRESS) ? 1 : 0; msg->content.normal.targetless_le_arp = 1; msg->sizeoftlvs = sizeoftlvs; --- 194,198 ---- memcpy(msg->content.normal.mac_addr, frame->src_lan_dst.mac, ETH_ALEN); memcpy(msg->content.normal.atm_addr, frame->src_atm_addr, ATM_ESA_LEN); ! msg->content.normal.flag = (frame->header.flags & htons(REMOTE_ADDRESS)) ? 1 : 0; msg->content.normal.targetless_le_arp = 1; msg->sizeoftlvs = sizeoftlvs; *************** *** 222,226 **** if (frame->header.lec_id == htons(lec_params.c14_lec_id) || lec_params.c29_v2_capable == 0) { ! diag(COMPONENT, DIAG_DEBUG, "Ignoring LE_NARP_REQUEST\n"); return 0; } --- 222,226 ---- if (frame->header.lec_id == htons(lec_params.c14_lec_id) || lec_params.c29_v2_capable == 0) { ! diag(COMPONENT, DIAG_DEBUG, "Ignoring LE_NARP_REQUEST"); return 0; } *************** *** 237,241 **** memcpy(msg->content.normal.mac_addr, frame->src_lan_dst.mac, ETH_ALEN); memcpy(msg->content.normal.atm_addr, frame->src_atm_addr, ATM_ESA_LEN); ! msg->content.normal.flag = (frame->header.flags & REMOTE_ADDRESS) ? 1 : 0; msg->content.normal.no_source_le_narp = no_source; msg->sizeoftlvs = sizeoftlvs; --- 237,241 ---- memcpy(msg->content.normal.mac_addr, frame->src_lan_dst.mac, ETH_ALEN); memcpy(msg->content.normal.atm_addr, frame->src_atm_addr, ATM_ESA_LEN); ! msg->content.normal.flag = (frame->header.flags & htons(REMOTE_ADDRESS)) ? 1 : 0; msg->content.normal.no_source_le_narp = no_source; msg->sizeoftlvs = sizeoftlvs; *************** *** 258,262 **** if (frame->header.lec_id != htons(lec_params.c14_lec_id)) { ! diag(COMPONENT, DIAG_DEBUG, "Wrong lec_id, ignoring\n"); return 0; } --- 258,262 ---- if (frame->header.lec_id != htons(lec_params.c14_lec_id)) { ! diag(COMPONENT, DIAG_DEBUG, "Wrong lec_id, ignoring"); return 0; } *************** *** 270,274 **** memcpy(msg->content.normal.mac_addr, frame->target_lan_dst.mac, ETH_ALEN); memcpy(msg->content.normal.atm_addr, frame->target_atm_addr, ATM_ESA_LEN); ! msg->content.normal.flag = (frame->header.flags & REMOTE_ADDRESS) ? 1 : 0; msg->sizeoftlvs = sizeoftlvs; if (sizeoftlvs > 0) memcpy(msg + 1, frame + 1, sizeoftlvs); --- 270,274 ---- memcpy(msg->content.normal.mac_addr, frame->target_lan_dst.mac, ETH_ALEN); memcpy(msg->content.normal.atm_addr, frame->target_atm_addr, ATM_ESA_LEN); ! msg->content.normal.flag = (frame->header.flags & htons(REMOTE_ADDRESS)) ? 1 : 0; msg->sizeoftlvs = sizeoftlvs; if (sizeoftlvs > 0) memcpy(msg + 1, frame + 1, sizeoftlvs); *************** *** 294,297 **** --- 294,312 ---- } + static void handle_ready_ind(Conn_t *conn) + { + struct atmlec_msg msg; + + /* FIXME -- if its a receive only vcc we should not do this */ + + diag(COMPONENT, DIAG_DEBUG, "READY_IND, on fd %d; sending LE_FLUSH_REQ", conn->fd); + memset(&msg, 0, sizeof(struct atmlec_msg)); + msg.type = l_flush_tran_id; + memcpy(msg.content.normal.atm_addr, conn->atm_address, ATM_ESA_LEN); + msg.content.normal.flag = send_flush_req(conn); + + msg_to_kernel(&msg, sizeof(struct atmlec_msg)); + } + /* Processes and validates incoming frames. Calls frame * dependant handler functions. *************** *** 312,315 **** --- 327,331 ---- break; case LE_FLUSH_RSP: + diag(COMPONENT, DIAG_DEBUG, "LE_FLUSH_RESPONSE, on fd %d", conn->fd); handle_flush_rsp(frame); break; *************** *** 318,322 **** break; case READY_IND: ! /* We can ignore these */ break; case LE_ARP_REQ: --- 334,338 ---- break; case READY_IND: ! handle_ready_ind(conn); break; case LE_ARP_REQ: *************** *** 341,345 **** default: diag(COMPONENT, DIAG_ERROR, ! "Unknown frame, opcode 0x%x %s\n", ntohs(frame->header.opcode), opcode2text(frame->header.opcode)); break; --- 357,361 ---- default: diag(COMPONENT, DIAG_ERROR, ! "Unknown frame, opcode 0x%x %s", ntohs(frame->header.opcode), opcode2text(frame->header.opcode)); break; *************** *** 363,367 **** retval = send_frame(conn, &frame, sizeof(struct ready_frame)); if (retval < 0) ! diag(COMPONENT, DIAG_DEBUG, "Could not send READY_IND, fd %d\n", conn->fd); return; --- 379,383 ---- retval = send_frame(conn, &frame, sizeof(struct ready_frame)); if (retval < 0) ! diag(COMPONENT, DIAG_DEBUG, "Could not send READY_IND, fd %d", conn->fd); return; *************** *** 421,425 **** len = tlvp[4]; tlvp += 5; ! diag(COMPONENT, DIAG_DEBUG, "parse_tlvs: type %s len %d\n", tlv2text(type), len); if (tlvp + len > end_of_tlvs) --- 437,441 ---- len = tlvp[4]; tlvp += 5; ! diag(COMPONENT, DIAG_DEBUG, "parse_tlvs: type %s len %d", tlv2text(type), len); if (tlvp + len > end_of_tlvs) *************** *** 460,464 **** value16 = *(uint16_t *)tlvp; value16 = ntohs(value16); ! diag(COMPONENT, DIAG_DEBUG, "value of TLV %d\n", value16); switch (type) { case MAX_CUM_CTRL_TIMEOUT: --- 476,480 ---- value16 = *(uint16_t *)tlvp; value16 = ntohs(value16); ! diag(COMPONENT, DIAG_DEBUG, "value of TLV %d", value16); switch (type) { case MAX_CUM_CTRL_TIMEOUT: *************** *** 500,504 **** value32 = *(uint32_t *)tlvp; value32 = ntohl(value32); ! diag(COMPONENT, DIAG_DEBUG, "value of TLV %d\n", value32); switch (type) { case VCC_TIMEOUT_PERIOD: --- 516,520 ---- value32 = *(uint32_t *)tlvp; value32 = ntohl(value32); ! diag(COMPONENT, DIAG_DEBUG, "value of TLV %d", value32); switch (type) { case VCC_TIMEOUT_PERIOD: *************** *** 538,542 **** switch(type) { case CONFIG_FRAG_INFO: ! diag(COMPONENT, DIAG_INFO, "Got Config-Frag-Info TLV\n"); break; case LAYER3_ADDRESS: --- 554,558 ---- switch(type) { case CONFIG_FRAG_INFO: ! diag(COMPONENT, DIAG_INFO, "Got Config-Frag-Info TLV"); break; case LAYER3_ADDRESS: *************** *** 553,557 **** whine: ! diag(COMPONENT, DIAG_DEBUG, "Unknown TLV, type 0x%x, len %d\n", type, len); return; --- 569,573 ---- whine: ! diag(COMPONENT, DIAG_DEBUG, "Unknown TLV, type 0x%x, len %d", type, len); return; *************** *** 565,569 **** return; if (opcode != ntohs(LE_CONFIG_RSP)) { ! diag(COMPONENT, DIAG_WARN, "X5-Adjustment TLV received but not with LE_CONFIG_RSP\n"); return; } --- 581,585 ---- return; if (opcode != ntohs(LE_CONFIG_RSP)) { ! diag(COMPONENT, DIAG_WARN, "X5-Adjustment TLV received but not with LE_CONFIG_RSP"); return; } Index: join.c =================================================================== RCS file: /cvsroot/linux-atm/linux-atm/src/led/join.c,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** join.c 9 Oct 2001 22:33:07 -0000 1.2 --- join.c 1 Jan 2008 00:14:51 -0000 1.3 *************** *** 116,120 **** Conn_t *conn; ! diag(COMPONENT, DIAG_DEBUG, "entering lec_configure\n"); /* initialize well known LECS addresses */ --- 116,120 ---- Conn_t *conn; ! diag(COMPONENT, DIAG_DEBUG, "entering lec_configure"); /* initialize well known LECS addresses */ *************** *** 132,137 **** init_conn_params(&sap, &qos, CONTROL_CONN); ! if (lecs_method == LECS_MANUAL) { ! diag(COMPONENT, DIAG_DEBUG, "trying manual LECS address\n"); conn = setup_svc(manual_atm_addr, listen_addr, &sap, &qos); if (conn) { --- 132,137 ---- init_conn_params(&sap, &qos, CONTROL_CONN); ! if ((lecs_method == LECS_MANUAL) || (lecs_method == LECS_FROM_ILMI)) { ! diag(COMPONENT, DIAG_DEBUG, "trying manual LECS address"); conn = setup_svc(manual_atm_addr, listen_addr, &sap, &qos); if (conn) { *************** *** 142,146 **** else random_delay(); } ! diag(COMPONENT, DIAG_DEBUG, "trying well-known anycast LECS address\n"); conn = setup_svc(&addr_c5, listen_addr, &sap, &qos); if (conn) { --- 142,146 ---- else random_delay(); } ! diag(COMPONENT, DIAG_DEBUG, "trying well-known anycast LECS address"); conn = setup_svc(&addr_c5, listen_addr, &sap, &qos); if (conn) { *************** *** 150,154 **** } else random_delay(); ! diag(COMPONENT, DIAG_DEBUG, "trying well-known LECS address\n"); conn = setup_svc(&addr_47, listen_addr, &sap, &qos); if (conn) { --- 150,154 ---- } else random_delay(); ! diag(COMPONENT, DIAG_DEBUG, "trying well-known LECS address"); conn = setup_svc(&addr_47, listen_addr, &sap, &qos); if (conn) { *************** *** 182,191 **** lec_params.c7c_current_timeout = lec_params.c7i_initial_ctrl_timeout; /* reset it */ if (frame_size == 0) { ! diag(COMPONENT, DIAG_INFO, "Timed out while waiting for LE_CONFIGURE_RESPONSE\n"); return -1; /* timeout */ } if (parse_config_rsp(buff, frame_size) < 0) { ! diag(COMPONENT, DIAG_ERROR, "Parsing LE_CONFIG_RESPONSE indicates failure\n"); return -1; } --- 182,191 ---- lec_params.c7c_current_timeout = lec_params.c7i_initial_ctrl_timeout; /* reset it */ if (frame_size == 0) { ! diag(COMPONENT, DIAG_INFO, "Timed out while waiting for LE_CONFIGURE_RESPONSE"); return -1; /* timeout */ } if (parse_config_rsp(buff, frame_size) < 0) { ! diag(COMPONENT, DIAG_ERROR, "Parsing LE_CONFIG_RESPONSE indicates failure"); return -1; } *************** *** 204,208 **** char buff[MAX_CTRL_FRAME]; ! diag(COMPONENT, DIAG_DEBUG, "Sending LE_CONFIGURE_REQUEST\n"); /* TLVs make config frame variable length */ --- 204,208 ---- char buff[MAX_CTRL_FRAME]; ! diag(COMPONENT, DIAG_DEBUG, "Sending LE_CONFIGURE_REQUEST"); /* TLVs make config frame variable length */ *************** *** 252,256 **** retval = select(conn->fd + 1, &rfds, NULL, NULL, &tv); if (retval < 0) { ! diag(COMPONENT, DIAG_ERROR, "read_ctrl_rsp: select: %s\n", strerror(errno)); return retval; --- 252,256 ---- retval = select(conn->fd + 1, &rfds, NULL, NULL, &tv); if (retval < 0) { ! diag(COMPONENT, DIAG_ERROR, "read_ctrl_rsp: select: %s", strerror(errno)); return retval; *************** *** 260,269 **** frame_size = recv_frame(conn, buff, buffsize); if (frame_size < 0) { ! diag(COMPONENT, DIAG_ERROR, "read_ctrl_rsp: recv_frame: %s\n", strerror(errno)); return frame_size; } if (frame_size == 0) { ! diag(COMPONENT, DIAG_ERROR, "read_ctrl_rsp: conn closed: %s\n", strerror(errno)); return -1; --- 260,269 ---- frame_size = recv_frame(conn, buff, buffsize); if (frame_size < 0) { ! diag(COMPONENT, DIAG_ERROR, "read_ctrl_rsp: recv_frame: %s", strerror(errno)); return frame_size; } if (frame_size == 0) { ! diag(COMPONENT, DIAG_ERROR, "read_ctrl_rsp: conn closed: %s", strerror(errno)); return -1; *************** *** 281,287 **** struct ctrl_frame *frame; ! diag(COMPONENT, DIAG_DEBUG, "Parsing LE_CONFIG_RESPONSE\n"); if (validate_frame(buff, size) < 0) { ! diag(COMPONENT, DIAG_ERROR, "parse_config_rsp: bad frame\n"); return -1; } --- 281,287 ---- struct ctrl_frame *frame; ! diag(COMPONENT, DIAG_DEBUG, "Parsing LE_CONFIG_RESPONSE"); if (validate_frame(buff, size) < 0) { ! diag(COMPONENT, DIAG_ERROR, "parse_config_rsp: bad frame"); return -1; } *************** *** 289,298 **** frame = (struct ctrl_frame *)buff; if (frame->header.opcode != htons(LE_CONFIG_RSP)) { ! diag(COMPONENT, DIAG_ERROR, "parse_config_rsp: not a LE_CONFIG_RESPONSE\n"); return -1; } if (frame->header.status != 0) { ! diag(COMPONENT, DIAG_ERROR, "LECS said: %s\n", status2text(frame->header.status)); return -1; --- 289,298 ---- frame = (struct ctrl_frame *)buff; if (frame->header.opcode != htons(LE_CONFIG_RSP)) { ! diag(COMPONENT, DIAG_ERROR, "parse_config_rsp: not a LE_CONFIG_RESPONSE"); return -1; } if (frame->header.status != 0) { ! diag(COMPONENT, DIAG_ERROR, "LECS said: %s", status2text(frame->header.status)); return -1; *************** *** 333,340 **** int frame_size = 0; /* shut up, GCC */ ! diag(COMPONENT, DIAG_DEBUG, "Entering Join phase\n"); if (lecs_method == LECS_NONE) { ! diag(COMPONENT, DIAG_DEBUG, "Skipping LECS, connecting straight to LES\n"); memcpy(les_addr.sas_addr.prv, manual_atm_addr->sas_addr.prv, ATM_ESA_LEN); } else memcpy(les_addr.sas_addr.prv, lec_params.c9_les_atm_addr, ATM_ESA_LEN); --- 333,340 ---- int frame_size = 0; /* shut up, GCC */ ! diag(COMPONENT, DIAG_DEBUG, "Entering Join phase"); if (lecs_method == LECS_NONE) { ! diag(COMPONENT, DIAG_DEBUG, "Skipping LECS, connecting straight to LES"); memcpy(les_addr.sas_addr.prv, manual_atm_addr->sas_addr.prv, ATM_ESA_LEN); } else memcpy(les_addr.sas_addr.prv, lec_params.c9_les_atm_addr, ATM_ESA_LEN); *************** *** 344,348 **** lec_params.ctrl_direct = setup_svc(&les_addr, listen_addr, &sap, &qos); if (lec_params.ctrl_direct == NULL) { ! diag(COMPONENT, DIAG_ERROR, "Control direct SVC failed\n"); random_delay(); return -1; --- 344,348 ---- lec_params.ctrl_direct = setup_svc(&les_addr, listen_addr, &sap, &qos); if (lec_params.ctrl_direct == NULL) { ! diag(COMPONENT, DIAG_ERROR, "Control direct SVC failed"); random_delay(); return -1; *************** *** 350,354 **** lec_params.ctrl_listen = create_listensocket(listen_addr, &sap, &qos); if (lec_params.ctrl_listen == NULL) { ! diag(COMPONENT, DIAG_ERROR, "Control distribute listen socket failed\n"); random_delay(); return -1; --- 350,354 ---- lec_params.ctrl_listen = create_listensocket(listen_addr, &sap, &qos); if (lec_params.ctrl_listen == NULL) { ! diag(COMPONENT, DIAG_ERROR, "Control distribute listen socket failed"); random_delay(); return -1; *************** *** 358,362 **** while (lec_params.c7c_current_timeout <= lec_params.c7_ctrl_timeout) { if (send_join_req(lec_params.ctrl_direct) < 0) { ! diag(COMPONENT, DIAG_ERROR, "Sending LE_JOIN_REQUEST failed\n"); random_delay(); return -1; --- 358,362 ---- while (lec_params.c7c_current_timeout <= lec_params.c7_ctrl_timeout) { if (send_join_req(lec_params.ctrl_direct) < 0) { ! diag(COMPONENT, DIAG_ERROR, "Sending LE_JOIN_REQUEST failed"); random_delay(); return -1; *************** *** 364,368 **** frame_size = read_join_rsp(buff, sizeof(buff)); if (frame_size < 0) { ! diag(COMPONENT, DIAG_ERROR, "Receiving LE_JOIN_RESPONSE failed\n"); random_delay(); return -1; --- 364,368 ---- frame_size = read_join_rsp(buff, sizeof(buff)); if (frame_size < 0) { ! diag(COMPONENT, DIAG_ERROR, "Receiving LE_JOIN_RESPONSE failed"); random_delay(); return -1; *************** *** 374,383 **** lec_params.c7c_current_timeout = lec_params.c7i_initial_ctrl_timeout; /* reset it */ if (frame_size == 0) { ! diag(COMPONENT, DIAG_ERROR, "LE_JOIN_RESPONSE timed out\n"); return -1; } if (parse_join_rsp(buff, frame_size) < 0) { ! diag(COMPONENT, DIAG_ERROR, "Parsing LE_JOIN_RESPONSE failed\n"); return -1; } --- 374,383 ---- lec_params.c7c_current_timeout = lec_params.c7i_initial_ctrl_timeout; /* reset it */ if (frame_size == 0) { ! diag(COMPONENT, DIAG_ERROR, "LE_JOIN_RESPONSE timed out"); return -1; } if (parse_join_rsp(buff, frame_size) < 0) { ! diag(COMPONENT, DIAG_ERROR, "Parsing LE_JOIN_RESPONSE failed"); return -1; } *************** *** 473,477 **** retval = select(n, &rfds, NULL, NULL, &tv); if (retval < 0) { ! diag(COMPONENT, DIAG_ERROR, "get_join_rsp: select: %s\n", strerror(errno)); return -1; --- 473,477 ---- retval = select(n, &rfds, NULL, NULL, &tv); if (retval < 0) { ! diag(COMPONENT, DIAG_ERROR, "get_join_rsp: select: %s", strerror(errno)); return -1; *************** *** 486,498 **** frame_size = recv_frame(lec_params.ctrl_direct, buff, buffsize); if (frame_size < 0) { ! diag(COMPONENT, DIAG_ERROR, "get_join_rsp: recv_frame: %s\n", strerror(errno)); return -1; } if (frame_size == 0) { ! diag(COMPONENT, DIAG_ERROR, "get_join_rsp: Control direct VCC closed\n"); return -1; } ! diag(COMPONENT, DIAG_DEBUG, "LE_JOIN_RESPONSE over Control direct VCC\n"); } if (FD_ISSET(dist->fd, &rfds)) { --- 486,498 ---- frame_size = recv_frame(lec_params.ctrl_direct, buff, buffsize); if (frame_size < 0) { ! diag(COMPONENT, DIAG_ERROR, "get_join_rsp: recv_frame: %s", strerror(errno)); return -1; } if (frame_size == 0) { ! diag(COMPONENT, DIAG_ERROR, "get_join_rsp: Control direct VCC closed"); return -1; } ! diag(COMPONENT, DIAG_DEBUG, "LE_JOIN_RESPONSE over Control direct VCC"); } if (FD_ISSET(dist->fd, &rfds)) { *************** *** 502,509 **** lec_params.ctrl_dist = accept_conn(lec_params.ctrl_listen); if (lec_params.ctrl_dist == NULL) { ! diag(COMPONENT, DIAG_ERROR, "accept of Ctrl distribute failed\n"); return -1; } ! diag(COMPONENT, DIAG_DEBUG, "Closing listen socket for Ctrl distribute VCC\n"); close_connection(lec_params.ctrl_listen); lec_params.ctrl_listen = NULL; --- 502,509 ---- lec_params.ctrl_dist = accept_conn(lec_params.ctrl_listen); if (lec_params.ctrl_dist == NULL) { ! diag(COMPONENT, DIAG_ERROR, "accept of Ctrl distribute failed"); return -1; } ! diag(COMPONENT, DIAG_DEBUG, "Closing listen socket for Ctrl distribute VCC"); close_connection(lec_params.ctrl_listen); lec_params.ctrl_listen = NULL; *************** *** 515,527 **** frame_size = recv_frame(lec_params.ctrl_dist, buff, buffsize); if (frame_size < 0) { ! diag(COMPONENT, DIAG_ERROR, "get_join_rsp: recv_frame: %s\n", strerror(errno)); return -1; } if (frame_size == 0) { ! diag(COMPONENT, DIAG_ERROR, "Control distribute VCC closed\n"); return -1; } ! diag(COMPONENT, DIAG_DEBUG, "LE_JOIN_RESPONSE over Control distribute VCC\n"); } --- 515,527 ---- frame_size = recv_frame(lec_params.ctrl_dist, buff, buffsize); if (frame_size < 0) { ! diag(COMPONENT, DIAG_ERROR, "get_join_rsp: recv_frame: %s", strerror(errno)); return -1; } if (frame_size == 0) { ! diag(COMPONENT, DIAG_ERROR, "Control distribute VCC closed"); return -1; } ! diag(COMPONENT, DIAG_DEBUG, "LE_JOIN_RESPONSE over Control distribute VCC"); } *************** *** 537,541 **** struct ctrl_frame *frame; ! diag(COMPONENT, DIAG_DEBUG, "Parsing LE_JOIN_RESPONSE\n"); if (validate_frame(buff, size) < 0) return -1; --- 537,541 ---- struct ctrl_frame *frame; ! diag(COMPONENT, DIAG_DEBUG, "Parsing LE_JOIN_RESPONSE"); if (validate_frame(buff, size) < 0) return -1; *************** *** 546,550 **** if (frame->header.status != 0) { ! diag(COMPONENT, DIAG_ERROR, "LES said: %s\n", status2text(frame->header.status)); return -1; --- 546,550 ---- if (frame->header.status != 0) { ! diag(COMPONENT, DIAG_ERROR, "LES said: %s", status2text(frame->header.status)); return -1; *************** *** 561,565 **** if (!(frame->header.flags & htons(V2_REQUIRED)) && lec_params.c29_v2_capable) { ! diag(COMPONENT, DIAG_INFO, "LES did not return V2 Required Flag, acting as V1 client\n"); lec_params.c29_v2_capable = 0; } --- 561,565 ---- if (!(frame->header.flags & htons(V2_REQUIRED)) && lec_params.c29_v2_capable) { ! diag(COMPONENT, DIAG_INFO, "LES did not return V2 Required Flag, acting as V1 client"); lec_params.c29_v2_capable = 0; } *************** *** 567,571 **** (lec_params.c3_max_frame_size == MTU_1580)) { /* Against spec, but we'll accept the MTU and clear the flag */ ! diag(COMPONENT, DIAG_ERROR, "LES not LANEv2 but uses MTU of 1580 bytes\n"); lec_params.c29_v2_capable = 0; } --- 567,571 ---- (lec_params.c3_max_frame_size == MTU_1580)) { /* Against spec, but we'll accept the MTU and clear the flag */ ! diag(COMPONENT, DIAG_ERROR, "LES not LANEv2 but uses MTU of 1580 bytes"); lec_params.c29_v2_capable = 0; } *************** *** 610,619 **** retval = send_frame(lec_params.ctrl_direct, frame, sizeof(struct ctrl_frame)); if (retval < 0) { ! diag(COMPONENT, DIAG_ERROR, "LE_ARP_REQUEST for BUS failed\n"); return -1; } retval = get_bus_addr(&bus_addr); if (retval < 0) { ! diag(COMPONENT, DIAG_ERROR, "LE_ARP_RESPONSE for BUS failed\n"); return -1; } else if (retval > 0) --- 610,619 ---- retval = send_frame(lec_params.ctrl_direct, frame, sizeof(struct ctrl_frame)); if (retval < 0) { ! diag(COMPONENT, DIAG_ERROR, "LE_ARP_REQUEST for BUS failed"); return -1; } retval = get_bus_addr(&bus_addr); if (retval < 0) { ! diag(COMPONENT, DIAG_ERROR, "LE_ARP_RESPONSE for BUS failed"); return -1; } else if (retval > 0) *************** *** 622,626 **** } if (tries == 0) { ! diag(COMPONENT, DIAG_ERROR, "LE_ARP_RESPONSE for BUS timed out\n"); return -1; } --- 622,626 ---- } if (tries == 0) { ! diag(COMPONENT, DIAG_ERROR, "LE_ARP_RESPONSE for BUS timed out"); return -1; } *************** *** 634,638 **** lec_params.mcast_listen = create_listensocket(&listen_addr, &sap, &qos); if (lec_params.mcast_listen == NULL) { ! diag(COMPONENT, DIAG_ERROR, "Listen socket for BUS failed\n"); return -1; } --- 634,638 ---- lec_params.mcast_listen = create_listensocket(&listen_addr, &sap, &qos); if (lec_params.mcast_listen == NULL) { ! diag(COMPONENT, DIAG_ERROR, "Listen socket for BUS failed"); return -1; } *************** *** 640,653 **** lec_params.mcast_send = setup_svc(&bus_addr, &listen_addr, &sap, &qos); if (lec_params.mcast_send == NULL) { ! diag(COMPONENT, DIAG_ERROR, "Connect to BUS failed\n"); return -1; } /* Default Multicast send VCC to BUS ready, notify kernel */ if (ioctl(lec_params.mcast_send->fd, ATMLEC_MCAST, lec_params.itf_num) < 0) { ! diag(COMPONENT, DIAG_FATAL, "Can't change socket into LE mcast socket: %s\n", strerror(errno)); return -1; } ! diag(COMPONENT, DIAG_DEBUG, "About to wait for BUS to connect\n"); tv.tv_sec = lec_params.c7_ctrl_timeout; tv.tv_usec = 0; --- 640,653 ---- lec_params.mcast_send = setup_svc(&bus_addr, &listen_addr, &sap, &qos); if (lec_params.mcast_send == NULL) { ! diag(COMPONENT, DIAG_ERROR, "Connect to BUS failed"); return -1; } /* Default Multicast send VCC to BUS ready, notify kernel */ if (ioctl(lec_params.mcast_send->fd, ATMLEC_MCAST, lec_params.itf_num) < 0) { ! diag(COMPONENT, DIAG_FATAL, "Can't change socket into LE mcast socket: %s", stre... [truncated message content] |
From: chas w. <ch...@us...> - 2008-01-01 00:14:56
|
Update of /cvsroot/linux-atm/linux-atm/src/oamd In directory sc8-pr-cvs6.sourceforge.net:/tmp/cvs-serv24942/src/oamd Added Files: .cvsignore Makefile.am atmoamd.c crc10.c crc10.h io.c io.h oam.c oam.h Log Message: merge 2.5.0 branch into the head |
From: chas w. <ch...@us...> - 2008-01-01 00:14:56
|
Update of /cvsroot/linux-atm/linux-atm/src/switch In directory sc8-pr-cvs6.sourceforge.net:/tmp/cvs-serv24942/src/switch Modified Files: cfg_y.y Added Files: .cvsignore Log Message: merge 2.5.0 branch into the head Index: cfg_y.y =================================================================== RCS file: /cvsroot/linux-atm/linux-atm/src/switch/cfg_y.y,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** cfg_y.y 9 Oct 2001 22:33:08 -0000 1.2 --- cfg_y.y 1 Jan 2008 00:14:52 -0000 1.3 *************** *** 119,123 **** T2A_SVC | T2A_WILDCARD | T2A_NAME | T2A_LOCAL) < 0) { yyerror("invalid address"); ! return; } put_route(&addr,mask ? strtol(mask,NULL,10) : INT_MAX,sig); --- 119,123 ---- T2A_SVC | T2A_WILDCARD | T2A_NAME | T2A_LOCAL) < 0) { yyerror("invalid address"); ! YYABORT; } put_route(&addr,mask ? strtol(mask,NULL,10) : INT_MAX,sig); |
From: chas w. <ch...@us...> - 2008-01-01 00:14:55
|
Update of /cvsroot/linux-atm/linux-atm/src/lib In directory sc8-pr-cvs6.sourceforge.net:/tmp/cvs-serv24942/src/lib Modified Files: Makefile.am diag.c sap2text.c sapequal.c Added Files: .cvsignore Log Message: merge 2.5.0 branch into the head Index: Makefile.am =================================================================== RCS file: /cvsroot/linux-atm/linux-atm/src/lib/Makefile.am,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** Makefile.am 9 Oct 2001 22:33:07 -0000 1.2 --- Makefile.am 1 Jan 2008 00:14:51 -0000 1.3 *************** *** 3,7 **** # ATMLIBS_VERSION comes from configure.in in the toplevel directory ! LDFLAGS = -version-info @LIBVER_CURRENT@:@LIBVER_REVISION@:@LIBVER_AGE@ --- 3,7 ---- # ATMLIBS_VERSION comes from configure.in in the toplevel directory ! AM_LDFLAGS = -version-info @LIBVER_CURRENT@:@LIBVER_REVISION@:@LIBVER_AGE@ *************** *** 14,32 **** libatm_la_DEPENDENCIES = $(top_builddir)/src/include/atm.h \ $(top_builddir)/src/include/atmsap.h \ - $(top_builddir)/src/include/stdint.h \ $(top_builddir)/src/include/atmd.h - - - #libatm_la_SOURCES = text2atm.c atm2text.c atmequal.c sdu2cell.c text2qos.c \ - # qos2text.c qosequal.c sap2text.c text2sap.c sapequal.c \ - # misc.c atmres.h ans.c - #libatm_la_LIBADD = -lresolv - #libatm_la_DEPENDENCIES = $(top_builddir)/src/include/atm.h \ - # $(top_builddir)/src/include/atmsap.h \ - # $(top_builddir)/src/include/stdint.h - # - #libatmd_la_SOURCES = common.c diag.c kptr.c text2ip.c timer.c unix.c - #libatmd_la_DEPENDENCIES = $(top_builddir)/src/include/atm.h \ - # $(top_builddir)/src/include/atmd.h \ - # $(top_builddir)/src/include/stdint.h - --- 14,16 ---- Index: diag.c =================================================================== RCS file: /cvsroot/linux-atm/linux-atm/src/lib/diag.c,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** diag.c 9 Oct 2001 22:33:07 -0000 1.2 --- diag.c 1 Jan 2008 00:14:51 -0000 1.3 *************** *** 12,15 **** --- 12,17 ---- #include <string.h> #include <syslog.h> + #include <signal.h> + #include <time.h> #include "atmd.h" *************** *** 127,131 **** --- 129,137 ---- FILE *to; char buffer[MAX_DIAG_MSG+1]; + struct timeval tv; int i; + #define DATESTR_LEN 32 + char datestr[DATESTR_LEN]; + struct tm tm; for (walk = components; walk; walk = walk->next) *************** *** 136,145 **** if (!to) { for (i = 0; sev2prio[i] == severity || sev2prio[i] == -1; i += 2); ! vsprintf(buffer,fmt,ap); syslog(sev2prio[i+1],"%s: %s",component,buffer); } else { ! if (app_name) fprintf(to,"%s:%s: ",app_name,component); ! else fprintf(to,"%s: ",component); vfprintf(to,fmt,ap); fputc('\n',to); --- 142,157 ---- if (!to) { for (i = 0; sev2prio[i] == severity || sev2prio[i] == -1; i += 2); ! vsnprintf(buffer,MAX_DIAG_MSG+1,fmt,ap); syslog(sev2prio[i+1],"%s: %s",component,buffer); } else { ! gettimeofday(&tv,NULL); ! localtime_r((time_t *) &tv.tv_sec, &tm); ! strftime(datestr, DATESTR_LEN, "%b %d %T", &tm); ! if (app_name) ! fprintf(to, "%s.%06lu %s:%s: ", ! datestr, (unsigned long) tv.tv_usec, app_name, component); ! else ! fprintf(to,"%s.%06lu %s: ", datestr, (unsigned long) tv.tv_usec, component); vfprintf(to,fmt,ap); fputc('\n',to); Index: sap2text.c =================================================================== RCS file: /cvsroot/linux-atm/linux-atm/src/lib/sap2text.c,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** sap2text.c 9 Oct 2001 22:33:07 -0000 1.2 --- sap2text.c 1 Jan 2008 00:14:51 -0000 1.3 *************** *** 42,46 **** va_start(ap,fmt); ! len = vsprintf(scratch,fmt,ap); va_end(ap); if (!len) return 0; --- 42,46 ---- va_start(ap,fmt); ! len = vsnprintf(scratch,40,fmt,ap); va_end(ap); if (!len) return 0; Index: sapequal.c =================================================================== RCS file: /cvsroot/linux-atm/linux-atm/src/lib/sapequal.c,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** sapequal.c 9 Oct 2001 22:33:07 -0000 1.2 --- sapequal.c 1 Jan 2008 00:14:51 -0000 1.3 *************** *** 65,69 **** CHECK(l2.itu.window,a.l2.itu.window > b.l2.itu.window); break; - default: } switch (a.l3_proto) { --- 65,68 ---- *************** *** 83,87 **** if (a.l3.user != b.l3.user) return 0; break; - default: } return 1; --- 82,85 ---- |
From: chas w. <ch...@us...> - 2008-01-01 00:14:55
|
Update of /cvsroot/linux-atm/linux-atm/src/maint In directory sc8-pr-cvs6.sourceforge.net:/tmp/cvs-serv24942/src/maint Modified Files: Makefile.am atmtcp.c enitune.c Added Files: .cvsignore hediag.c Log Message: merge 2.5.0 branch into the head Index: Makefile.am =================================================================== RCS file: /cvsroot/linux-atm/linux-atm/src/maint/Makefile.am,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** Makefile.am 9 Oct 2001 22:33:07 -0000 1.2 --- Makefile.am 1 Jan 2008 00:14:51 -0000 1.3 *************** *** 1,7 **** BOOTPGMS=atmaddr esi ! SYSPGMS=atmloop atmtcp enitune zntune # nstune USRPGMS=atmdiag atmdump sonetdiag saaldump ! INCLUDES=-I$(top_builddir)/src/qgen -I$(top_builddir)/src/saal -I. LDADD = $(top_builddir)/src/lib/libatm.la --- 1,7 ---- BOOTPGMS=atmaddr esi ! SYSPGMS=atmloop atmtcp enitune zntune hediag # nstune USRPGMS=atmdiag atmdump sonetdiag saaldump ! INCLUDES=-I$(srcdir)/../qgen -I$(srcdir)/../saal -I. LDADD = $(top_builddir)/src/lib/libatm.la Index: atmtcp.c =================================================================== RCS file: /cvsroot/linux-atm/linux-atm/src/maint/atmtcp.c,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** atmtcp.c 9 Oct 2001 22:33:07 -0000 1.2 --- atmtcp.c 1 Jan 2008 00:14:51 -0000 1.3 *************** *** 61,65 **** static fd_set in_set; static int fds = 0; ! static int debug = 0; static int links = 0; --- 61,65 ---- static fd_set in_set; static int fds = 0; ! int debug = 0; static int links = 0; Index: enitune.c =================================================================== RCS file: /cvsroot/linux-atm/linux-atm/src/maint/enitune.c,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** enitune.c 9 Oct 2001 22:33:07 -0000 1.2 --- enitune.c 1 Jan 2008 00:14:51 -0000 1.3 *************** *** 44,48 **** if (*end || mult.rx <= 100) usage(name); break; - default: } if (argc != optind+1) usage(name); --- 44,47 ---- |
From: chas w. <ch...@us...> - 2008-01-01 00:14:55
|
Update of /cvsroot/linux-atm/linux-atm/src/saal In directory sc8-pr-cvs6.sourceforge.net:/tmp/cvs-serv24942/src/saal Added Files: .cvsignore Log Message: merge 2.5.0 branch into the head |
From: chas w. <ch...@us...> - 2008-01-01 00:14:54
|
Update of /cvsroot/linux-atm/linux-atm/src/man In directory sc8-pr-cvs6.sourceforge.net:/tmp/cvs-serv24942/src/man Added Files: .cvsignore Log Message: merge 2.5.0 branch into the head |
From: chas w. <ch...@us...> - 2008-01-01 00:14:53
|
Update of /cvsroot/linux-atm/linux-atm/src/extra/drivers In directory sc8-pr-cvs6.sourceforge.net:/tmp/cvs-serv24942/src/extra/drivers Removed Files: Makefile.am README.he atm_he.h he.c he.h he.patch-2.2 he.patch-2.4 hediag.c Log Message: merge 2.5.0 branch into the head --- Makefile.am DELETED --- --- README.he DELETED --- --- atm_he.h DELETED --- --- he.c DELETED --- --- he.h DELETED --- --- he.patch-2.2 DELETED --- --- he.patch-2.4 DELETED --- --- hediag.c DELETED --- |
From: chas w. <ch...@us...> - 2007-12-29 21:24:07
|
Update of /cvsroot/linux-atm/linux-atm In directory sc8-pr-cvs6.sourceforge.net:/tmp/cvs-serv12865 Modified Files: Tag: V2_5_0 BUGS ChangeLog NEWS README Log Message: updated release information Index: BUGS =================================================================== RCS file: /cvsroot/linux-atm/linux-atm/BUGS,v retrieving revision 1.1 retrieving revision 1.1.2.1 diff -C2 -d -r1.1 -r1.1.2.1 *** BUGS 20 Aug 2001 21:03:47 -0000 1.1 --- BUGS 29 Dec 2007 21:24:03 -0000 1.1.2.1 *************** *** 1,6 **** ! Known bugs and restrictions in version 0.56 ! =========================================== - - some recently discovered message sequences crash ilmid - ENI driver: closing an AAL0 socket while data is arriving at a high rate hangs in the close system call --- 1,5 ---- ! Known bugs and restrictions in version 2.5.0 ! ============================================ - ENI driver: closing an AAL0 socket while data is arriving at a high rate hangs in the close system call Index: ChangeLog =================================================================== RCS file: /cvsroot/linux-atm/linux-atm/ChangeLog,v retrieving revision 1.2.2.6 retrieving revision 1.2.2.7 diff -C2 -d -r1.2.2.6 -r1.2.2.7 *** ChangeLog 18 Apr 2005 15:51:15 -0000 1.2.2.6 --- ChangeLog 29 Dec 2007 21:24:03 -0000 1.2.2.7 *************** *** 1,3 **** ! Version 2.4.1 to 2.5.0 (13-FEB-2005) ====================== --- 1,3 ---- ! Version 2.4.1 to 2.5.0 (30-DEC-2007) ====================== *************** *** 17,20 **** --- 17,21 ---- - atmswitch from ele...@in... - point to multipoint signalling support + - routed br2684 support from ek...@cm... Other changes Index: NEWS =================================================================== RCS file: /cvsroot/linux-atm/linux-atm/NEWS,v retrieving revision 1.2.2.1 retrieving revision 1.2.2.2 diff -C2 -d -r1.2.2.1 -r1.2.2.2 *** NEWS 1 May 2003 13:23:18 -0000 1.2.2.1 --- NEWS 29 Dec 2007 21:24:03 -0000 1.2.2.2 *************** *** 1,2 **** --- 1,3 ---- + December 30, 2007 Version 2.5.0 is released. April 30, 2003 Version 2.4.1 is released. October 18, 2001 Version 2.4.0 is released. Index: README =================================================================== RCS file: /cvsroot/linux-atm/linux-atm/README,v retrieving revision 1.2.2.1 retrieving revision 1.2.2.2 diff -C2 -d -r1.2.2.1 -r1.2.2.2 *** README 15 Oct 2001 23:19:42 -0000 1.2.2.1 --- README 29 Dec 2007 21:24:03 -0000 1.2.2.2 *************** *** 1,8 **** ! ATM on Linux, release 2.4.0 (beta) ! ================================= Werner Almesberger, EPFL ICA <wa...@al...> Mitchell Blank Jr., <mi...@sf...> Paul B Schroeder, <pa...@us...> -------------------------------------- --- 1,9 ---- ! ATM on Linux, release 2.5.0 ! =========================== Werner Almesberger, EPFL ICA <wa...@al...> Mitchell Blank Jr., <mi...@sf...> Paul B Schroeder, <pa...@us...> + Chas Williams, <ch...@cm...> -------------------------------------- *************** *** 11,24 **** still change every once in a while. Use at your own risk. ! Please see http://linux-atm.sourceforge.net/ for a list of ! features supported by ATM on Linux. ! If you're just looking for the device drivers: you may find what you're looking ! for under src/extra/drivers. Most are already in the mainstream kernel or, for ! those which are not integrated, visit http://linux-atm.sourceforge.net/info.php ! For usage and installation instructions, please read the "ATM on Linux HOWTO" ! in the doc/ directory. The README in that directory explains how to generate ! alternative document types of the documentation. For known restrictions and bugs, please read the file BUGS. --- 12,26 ---- still change every once in a while. Use at your own risk. ! Please see http://linux-atm.sourceforge.net/ for a list of features ! supported by ATM on Linux. ! If you're just looking for the device drivers: you may find what ! you're looking for under src/extra/drivers. Most are already in ! the mainstream kernel or, for those which are not integrated, visit ! http://linux-atm.sourceforge.net/info.php ! For usage and installation instructions, please read the "ATM on Linux ! HOWTO" in the doc/ directory. The README in that directory explains ! how to generate alternative document types of the documentation. For known restrictions and bugs, please read the file BUGS. |