1
0
mirror of git://projects.qi-hardware.com/openwrt-xburst.git synced 2024-11-27 19:33:08 +02:00

upgrade to new version of br2684ctl

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@7011 3c298f89-4303-0410-b956-a3cf2f4a3e73
This commit is contained in:
nbd 2007-04-20 15:11:18 +00:00
parent ad550c7984
commit 704ec35313
8 changed files with 293 additions and 1160 deletions

View File

@ -0,0 +1,38 @@
#
# Copyright (C) 2006 OpenWrt.org
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
#
# $Id: Makefile 6582 2007-03-16 20:21:39Z nbd $
include $(TOPDIR)/rules.mk
PKG_NAME:=br2684ctl
PKG_VERSION:=20040226
PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)_$(PKG_VERSION).orig.tar.gz
PKG_SOURCE_URL:=http://ftp.debian.org/debian/pool/main/b/br2684ctl
PKG_MD5SUM:=6eb4d8cd174e24a7c078eb4f594f5b69
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION).orig
include $(INCLUDE_DIR)/package.mk
define Package/$(PKG_NAME)
SECTION:=net
CATEGORY:=Base system
TITLE:=ATM Ethernet bridging configuration utility
DESCRIPTION:=ATM Ethernet bridging configuration utility
URL:=http://ftp.debian.org/debian/pool/main/b/br2684ctl
endef
MAKE_FLAGS += CFLAGS="$(TARGET_CPPFLAGS) $(TARGET_LDFLAGS)"
define Package/$(PKG_NAME)/install
$(INSTALL_DIR) $(1)/usr/sbin
$(INSTALL_BIN) $(PKG_BUILD_DIR)/$(PKG_NAME) $(1)/usr/sbin/
endef
$(eval $(call BuildPackage,$(PKG_NAME)))

View File

@ -0,0 +1,91 @@
--- br2684ctl-20040226.orig/br2684ctl.c
+++ br2684ctl-20040226/br2684ctl.c
@@ -3,6 +3,8 @@
#include <unistd.h>
#include <errno.h>
#include <sys/ioctl.h>
+#include <sys/types.h>
+#include <signal.h>
#include <string.h>
#include <syslog.h>
#include <atm.h>
@@ -22,9 +24,9 @@
*/
-#define LOG_NAME "RFC1483/2684 bridge"
-#define LOG_OPTION LOG_PERROR
-#define LOG_FACILITY LOG_LOCAL0
+#define LOG_NAME "br2684ctl"
+#define LOG_OPTION LOG_PERROR|LOG_PID
+#define LOG_FACILITY LOG_LOCAL2
int lastsock, lastitf;
@@ -39,10 +41,16 @@
void exitFunc(void)
{
- syslog (LOG_PID,"Daemon terminated\n");
+ syslog (LOG_NOTICE,"Daemon terminated\n");
}
+void int_signal(int dummy)
+{
+ syslog (LOG_INFO,"Killed by a signal\n");
+ exit(0);
+}
+
int create_pidfile(int num)
{
FILE *pidfile = NULL;
@@ -80,7 +88,7 @@
err=ioctl (lastsock, ATM_NEWBACKENDIF, &ni);
if (err == 0)
- syslog(LOG_INFO, "Interface \"%s\" created sucessfully\n",ni.ifname);
+ syslog(LOG_NOTICE, "Interface \"%s\" created sucessfully\n",ni.ifname);
else
syslog(LOG_INFO, "Interface \"%s\" could not be created, reason: %s\n",
ni.ifname,
@@ -112,7 +120,7 @@
addr.sap_addr.vpi = 0;
addr.sap_addr.vci = vci;
#endif
- syslog(LOG_INFO,"Communicating over ATM %d.%d.%d, encapsulation: %s\n", addr.sap_addr.itf,
+ syslog(LOG_NOTICE,"Communicating over ATM %d.%d.%d, encapsulation: %s\n", addr.sap_addr.itf,
addr.sap_addr.vpi,
addr.sap_addr.vci,
encap?"VC mux":"LLC");
@@ -261,11 +269,13 @@
}
create_pidfile(itfnum);
+ signal(SIGINT, int_signal);
+ signal(SIGTERM, int_signal);
syslog (LOG_INFO, "RFC 1483/2684 bridge daemon started\n");
atexit (exitFunc);
- while (1) sleep(30); /* to keep the sockets... */
+ while (1) pause(); /* to keep the sockets... */
return 0;
}
--- br2684ctl-20040226.orig/Makefile
+++ br2684ctl-20040226/Makefile
@@ -0,0 +1,13 @@
+OPTS := -O2
+CFLAGS := -Wall -g
+LIBS := -latm
+
+all: br2684ctl
+
+br2684ctl: br2684ctl.c
+ $(CC) $(OPTS) $(CFLAGS) $(LIBS) $< -o $@
+
+distclean: clean
+clean:
+ rm -f br2684ctl
+

View File

@ -31,16 +31,6 @@ define Package/linux-atm
This package contains a library for accessing the Linux ATM subsystem. This package contains a library for accessing the Linux ATM subsystem.
endef endef
define Package/br2684ctl
$(call Package/linux-atm/Default)
SECTION:=net
CATEGORY:=Network
DEPENDS:=+linux-atm
TITLE:=RFC2684 bridging utility
DESCRIPTION:=\
This package contains an ATM RFC2684 bridging utility.
endef
define Build/Configure define Build/Configure
$(call Build/Configure/Default) $(call Build/Configure/Default)
# prevent autoheader invocation # prevent autoheader invocation
@ -74,15 +64,7 @@ define Package/linux-atm/install
cp -f $(PKG_INSTALL_DIR)/usr/lib/libatm.so.1 $(1)/usr/lib cp -f $(PKG_INSTALL_DIR)/usr/lib/libatm.so.1 $(1)/usr/lib
endef endef
define Package/br2684ctl/install
$(INSTALL_DIR) $(1)/usr/sbin
$(CP) $(PKG_INSTALL_DIR)/usr/sbin/br2684ctl $(1)/usr/sbin/
$(INSTALL_DIR) $(1)/etc/hotplug.d/net
$(INSTALL_DATA) ./files/br2684.hotplug $(1)/etc/hotplug.d/net/30-br2684
endef
$(eval $(call BuildPackage,linux-atm)) $(eval $(call BuildPackage,linux-atm))
$(eval $(call BuildPackage,br2684ctl))
$(eval $(call RequireCommand,automake, \ $(eval $(call RequireCommand,automake, \
$(PKG_NAME) requires automake. \ $(PKG_NAME) requires automake. \

View File

@ -1,19 +0,0 @@
[ "${INTERFACE%%[0-9]*}" = "atm" ] && {
case "$ACTION" in
register)
[ "$pppoe_atm" = 1 ] && {
case "$atm_encaps" in
0|vc) ENCAPS=0 ;;
1|llc) ENCAPS=1 ;;
*) ENCAPS=0 ;;
esac
insmod br2684 2>&- >&-
br2684ctl -c0 -e${ENCAPS} -a${atm_vpi:-8}.${atm_vci:-35} &
}
;;
unregister)
killall br2684ctl 2>&- >&-
rmmod br2684
;;
esac
}

View File

@ -29654,517 +29654,6 @@
@for file in $(DISTFILES); do \ @for file in $(DISTFILES); do \
d=$(srcdir); \ d=$(srcdir); \
if test -d $$d/$$file; then \ if test -d $$d/$$file; then \
--- linux-atm-2.4.1.orig/src/br2684/Makefile.am
+++ linux-atm-2.4.1/src/br2684/Makefile.am
@@ -0,0 +1,10 @@
+sbin_PROGRAMS = br2684ctl
+
+LDADD = $(top_builddir)/src/lib/libatm.la
+
+br2684ctl_SOURCES = br2684ctl.c
+
+man_MANS = br2684ctl.8
+
+EXTRA_DIST = $(man_MANS) USAGE.br2684
+
--- linux-atm-2.4.1.orig/src/br2684/Makefile.in
+++ linux-atm-2.4.1/src/br2684/Makefile.in
@@ -0,0 +1,418 @@
+# Makefile.in generated automatically by automake 1.4-p6 from Makefile.am
+
+# Copyright (C) 1994, 1995-8, 1999, 2001 Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+
+SHELL = @SHELL@
+
+srcdir = @srcdir@
+top_srcdir = @top_srcdir@
+VPATH = @srcdir@
+prefix = @prefix@
+exec_prefix = @exec_prefix@
+
+bindir = @bindir@
+sbindir = @sbindir@
+libexecdir = @libexecdir@
+datadir = @datadir@
+sysconfdir = @sysconfdir@
+sharedstatedir = @sharedstatedir@
+localstatedir = @localstatedir@
+libdir = @libdir@
+infodir = @infodir@
+mandir = @mandir@
+includedir = @includedir@
+oldincludedir = /usr/include
+
+DESTDIR =
+
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+
+top_builddir = ../..
+
+ACLOCAL = @ACLOCAL@
+AUTOCONF = @AUTOCONF@
+AUTOMAKE = @AUTOMAKE@
+AUTOHEADER = @AUTOHEADER@
+
+INSTALL = @INSTALL@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS)
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+transform = @program_transform_name@
+
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+host_alias = @host_alias@
+host_triplet = @host@
+AR = @AR@
+AS = @AS@
+CC = /usr/src/openwrt/staging_dir_mipsel/bin/mipsel-linux-gcc
+CXX = @CXX@
+CXXCPP = @CXXCPP@
+DLLTOOL = @DLLTOOL@
+ECHO = @ECHO@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+F77 = @F77@
+GCJ = @GCJ@
+GCJFLAGS = @GCJFLAGS@
+HAVE_LIB = @HAVE_LIB@
+LEX = @LEX@
+LIB = @LIB@
+LIBTOOL = @LIBTOOL@
+LIBTOOL_DEPS = @LIBTOOL_DEPS@
+LIBVER_AGE = @LIBVER_AGE@
+LIBVER_CURRENT = @LIBVER_CURRENT@
+LIBVER_REVISION = @LIBVER_REVISION@
+LN_S = @LN_S@
+LTLIB = @LTLIB@
+MAKEINFO = @MAKEINFO@
+OBJDUMP = @OBJDUMP@
+OBJEXT = @OBJEXT@
+PACKAGE = @PACKAGE@
+PERL = @PERL@
+RANLIB = @RANLIB@
+RC = @RC@
+STRIP = @STRIP@
+VERSION = @VERSION@
+YACC = @YACC@
+
+sbin_PROGRAMS = br2684ctl
+
+LDADD = $(top_builddir)/src/lib/libatm.la
+
+br2684ctl_SOURCES = br2684ctl.c
+
+man_MANS = br2684ctl.8
+
+EXTRA_DIST = $(man_MANS) USAGE.br2684
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_HEADER = ../../config.h
+CONFIG_CLEAN_FILES =
+sbin_PROGRAMS = br2684ctl$(EXEEXT)
+PROGRAMS = $(sbin_PROGRAMS)
+
+
+DEFS = @DEFS@ -I. -I$(srcdir) -I../..
+CPPFLAGS = @CPPFLAGS@
+LDFLAGS = @LDFLAGS@
+LIBS = @LIBS@
+br2684ctl_OBJECTS = br2684ctl.$(OBJEXT)
+br2684ctl_LDADD = $(LDADD)
+br2684ctl_DEPENDENCIES = $(top_builddir)/src/lib/libatm.la
+br2684ctl_LDFLAGS =
+CFLAGS = @CFLAGS@
+COMPILE = $(TARGET_CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+LTCOMPILE = $(LIBTOOL) --mode=compile $(TARGET_CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+CCLD = $(TARGET_CC)
+LINK = $(LIBTOOL) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(LDFLAGS) -o $@
+man8dir = $(mandir)/man8
+MANS = $(man_MANS)
+
+NROFF = nroff
+DIST_COMMON = Makefile.am Makefile.in
+
+
+DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
+
+TAR = tar
+GZIP_ENV = --best
+DEP_FILES = .deps/br2684ctl.P
+SOURCES = $(br2684ctl_SOURCES)
+OBJECTS = $(br2684ctl_OBJECTS)
+
+all: all-redirect
+.SUFFIXES:
+.SUFFIXES: .S .c .lo .o .obj .s
+$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
+ cd $(top_srcdir) && $(AUTOMAKE) --gnu src/br2684/Makefile
+
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status $(BUILT_SOURCES)
+ cd $(top_builddir) \
+ && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
+
+
+mostlyclean-sbinPROGRAMS:
+
+clean-sbinPROGRAMS:
+ -test -z "$(sbin_PROGRAMS)" || rm -f $(sbin_PROGRAMS)
+
+distclean-sbinPROGRAMS:
+
+maintainer-clean-sbinPROGRAMS:
+
+install-sbinPROGRAMS: $(sbin_PROGRAMS)
+ @$(NORMAL_INSTALL)
+ $(mkinstalldirs) $(DESTDIR)$(sbindir)
+ @list='$(sbin_PROGRAMS)'; for p in $$list; do \
+ if test -f $$p; then \
+ echo " $(LIBTOOL) --mode=install $(INSTALL_PROGRAM) $$p $(DESTDIR)$(sbindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`"; \
+ $(LIBTOOL) --mode=install $(INSTALL_PROGRAM) $$p $(DESTDIR)$(sbindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`; \
+ else :; fi; \
+ done
+
+uninstall-sbinPROGRAMS:
+ @$(NORMAL_UNINSTALL)
+ list='$(sbin_PROGRAMS)'; for p in $$list; do \
+ rm -f $(DESTDIR)$(sbindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`; \
+ done
+
+# FIXME: We should only use cygpath when building on Windows,
+# and only if it is available.
+.c.obj:
+ $(COMPILE) -c `cygpath -w $<`
+
+.s.o:
+ $(COMPILE) -c $<
+
+.S.o:
+ $(COMPILE) -c $<
+
+mostlyclean-compile:
+ -rm -f *.o core *.core
+ -rm -f *.$(OBJEXT)
+
+clean-compile:
+
+distclean-compile:
+ -rm -f *.tab.c
+
+maintainer-clean-compile:
+
+.s.lo:
+ $(LIBTOOL) --mode=compile $(COMPILE) -c $<
+
+.S.lo:
+ $(LIBTOOL) --mode=compile $(COMPILE) -c $<
+
+mostlyclean-libtool:
+ -rm -f *.lo
+
+clean-libtool:
+ -rm -rf .libs _libs
+
+distclean-libtool:
+
+maintainer-clean-libtool:
+
+br2684ctl$(EXEEXT): $(br2684ctl_OBJECTS) $(br2684ctl_DEPENDENCIES)
+ @rm -f br2684ctl$(EXEEXT)
+ $(LINK) $(br2684ctl_LDFLAGS) $(br2684ctl_OBJECTS) $(br2684ctl_LDADD) $(LIBS)
+
+install-man8:
+ $(mkinstalldirs) $(DESTDIR)$(man8dir)
+ @list='$(man8_MANS)'; \
+ l2='$(man_MANS)'; for i in $$l2; do \
+ case "$$i" in \
+ *.8*) list="$$list $$i" ;; \
+ esac; \
+ done; \
+ for i in $$list; do \
+ if test -f $(srcdir)/$$i; then file=$(srcdir)/$$i; \
+ else file=$$i; fi; \
+ ext=`echo $$i | sed -e 's/^.*\\.//'`; \
+ inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \
+ inst=`echo $$inst | sed '$(transform)'`.$$ext; \
+ echo " $(INSTALL_DATA) $$file $(DESTDIR)$(man8dir)/$$inst"; \
+ $(INSTALL_DATA) $$file $(DESTDIR)$(man8dir)/$$inst; \
+ done
+
+uninstall-man8:
+ @list='$(man8_MANS)'; \
+ l2='$(man_MANS)'; for i in $$l2; do \
+ case "$$i" in \
+ *.8*) list="$$list $$i" ;; \
+ esac; \
+ done; \
+ for i in $$list; do \
+ ext=`echo $$i | sed -e 's/^.*\\.//'`; \
+ inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \
+ inst=`echo $$inst | sed '$(transform)'`.$$ext; \
+ echo " rm -f $(DESTDIR)$(man8dir)/$$inst"; \
+ rm -f $(DESTDIR)$(man8dir)/$$inst; \
+ done
+install-man: $(MANS)
+ @$(NORMAL_INSTALL)
+ $(MAKE) $(AM_MAKEFLAGS) install-man8
+uninstall-man:
+ @$(NORMAL_UNINSTALL)
+ $(MAKE) $(AM_MAKEFLAGS) uninstall-man8
+
+tags: TAGS
+
+ID: $(HEADERS) $(SOURCES) $(LISP)
+ list='$(SOURCES) $(HEADERS)'; \
+ unique=`for i in $$list; do echo $$i; done | \
+ awk ' { files[$$0] = 1; } \
+ END { for (i in files) print i; }'`; \
+ here=`pwd` && cd $(srcdir) \
+ && mkid -f$$here/ID $$unique $(LISP)
+
+TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) $(LISP)
+ tags=; \
+ here=`pwd`; \
+ list='$(SOURCES) $(HEADERS)'; \
+ unique=`for i in $$list; do echo $$i; done | \
+ awk ' { files[$$0] = 1; } \
+ END { for (i in files) print i; }'`; \
+ test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \
+ || (cd $(srcdir) && etags -o $$here/TAGS $(ETAGS_ARGS) $$tags $$unique $(LISP))
+
+mostlyclean-tags:
+
+clean-tags:
+
+distclean-tags:
+ -rm -f TAGS ID
+
+maintainer-clean-tags:
+
+distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir)
+
+subdir = src/br2684
+
+distdir: $(DISTFILES)
+ here=`cd $(top_builddir) && pwd`; \
+ top_distdir=`cd $(top_distdir) && pwd`; \
+ distdir=`cd $(distdir) && pwd`; \
+ cd $(top_srcdir) \
+ && $(AUTOMAKE) --include-deps --build-dir=$$here --srcdir-name=$(top_srcdir) --output-dir=$$top_distdir --gnu src/br2684/Makefile
+ @for file in $(DISTFILES); do \
+ d=$(srcdir); \
+ if test -d $$d/$$file; then \
+ cp -pr $$d/$$file $(distdir)/$$file; \
+ else \
+ test -f $(distdir)/$$file \
+ || ln $$d/$$file $(distdir)/$$file 2> /dev/null \
+ || cp -p $$d/$$file $(distdir)/$$file || :; \
+ fi; \
+ done
+
+DEPS_MAGIC := $(shell mkdir .deps > /dev/null 2>&1 || :)
+
+-include $(DEP_FILES)
+
+mostlyclean-depend:
+
+clean-depend:
+
+distclean-depend:
+ -rm -rf .deps
+
+maintainer-clean-depend:
+
+%.o: %.c
+ @echo '$(COMPILE) -c $<'; \
+ $(COMPILE) -Wp,-MD,.deps/$(*F).pp -c $<
+ @-cp .deps/$(*F).pp .deps/$(*F).P; \
+ tr ' ' '\012' < .deps/$(*F).pp \
+ | sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \
+ >> .deps/$(*F).P; \
+ rm .deps/$(*F).pp
+
+%.lo: %.c
+ @echo '$(LTCOMPILE) -c $<'; \
+ $(LTCOMPILE) -Wp,-MD,.deps/$(*F).pp -c $<
+ @-sed -e 's/^\([^:]*\)\.o[ ]*:/\1.lo \1.o :/' \
+ < .deps/$(*F).pp > .deps/$(*F).P; \
+ tr ' ' '\012' < .deps/$(*F).pp \
+ | sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \
+ >> .deps/$(*F).P; \
+ rm -f .deps/$(*F).pp
+info-am:
+info: info-am
+dvi-am:
+dvi: dvi-am
+check-am: all-am
+check: check-am
+installcheck-am:
+installcheck: installcheck-am
+install-exec-am: install-sbinPROGRAMS
+install-exec: install-exec-am
+
+install-data-am: install-man
+install-data: install-data-am
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+install: install-am
+uninstall-am: uninstall-sbinPROGRAMS uninstall-man
+uninstall: uninstall-am
+all-am: Makefile $(PROGRAMS) $(MANS)
+all-redirect: all-am
+install-strip:
+ $(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install
+installdirs:
+ $(mkinstalldirs) $(DESTDIR)$(sbindir) $(DESTDIR)$(mandir)/man8
+
+
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+ -rm -f Makefile $(CONFIG_CLEAN_FILES)
+ -rm -f config.cache config.log stamp-h stamp-h[0-9]*
+
+maintainer-clean-generic:
+mostlyclean-am: mostlyclean-sbinPROGRAMS mostlyclean-compile \
+ mostlyclean-libtool mostlyclean-tags mostlyclean-depend \
+ mostlyclean-generic
+
+mostlyclean: mostlyclean-am
+
+clean-am: clean-sbinPROGRAMS clean-compile clean-libtool clean-tags \
+ clean-depend clean-generic mostlyclean-am
+
+clean: clean-am
+
+distclean-am: distclean-sbinPROGRAMS distclean-compile \
+ distclean-libtool distclean-tags distclean-depend \
+ distclean-generic clean-am
+ -rm -f libtool
+
+distclean: distclean-am
+
+maintainer-clean-am: maintainer-clean-sbinPROGRAMS \
+ maintainer-clean-compile maintainer-clean-libtool \
+ maintainer-clean-tags maintainer-clean-depend \
+ maintainer-clean-generic distclean-am
+ @echo "This command is intended for maintainers to use;"
+ @echo "it deletes files that may require special tools to rebuild."
+
+maintainer-clean: maintainer-clean-am
+
+.PHONY: mostlyclean-sbinPROGRAMS distclean-sbinPROGRAMS \
+clean-sbinPROGRAMS maintainer-clean-sbinPROGRAMS uninstall-sbinPROGRAMS \
+install-sbinPROGRAMS mostlyclean-compile distclean-compile \
+clean-compile maintainer-clean-compile mostlyclean-libtool \
+distclean-libtool clean-libtool maintainer-clean-libtool install-man8 \
+uninstall-man8 install-man uninstall-man tags mostlyclean-tags \
+distclean-tags clean-tags maintainer-clean-tags distdir \
+mostlyclean-depend distclean-depend clean-depend \
+maintainer-clean-depend info-am info dvi-am dvi check check-am \
+installcheck-am installcheck install-exec-am install-exec \
+install-data-am install-data install-am install uninstall-am uninstall \
+all-redirect all-am all installdirs mostlyclean-generic \
+distclean-generic clean-generic maintainer-clean-generic clean \
+mostlyclean distclean maintainer-clean
+
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
--- linux-atm-2.4.1.orig/src/br2684/br2684ctl.8
+++ linux-atm-2.4.1/src/br2684/br2684ctl.8
@@ -0,0 +1,74 @@
+.\"
+.TH br2684ctl 1 "7 Jul 2003"
+.SH NAME
+br2684ctl \- RFC1483/2684 Bridge Daemon
+.SH SYNOPSIS
+.B br2684ctl
+[
+.BI \-b
+] [[
+.BI \-c\ n
+] [
+.BI \-e\ 0|1
+] [
+.BI \-s\ sndbuf
+] [
+.BI \-a\ [itf].vpi.vci
+]] ...
+.SH PARAMETERS
+.TP 15
+.BI \-a\ [itf].vpi.vci
+ATM PVC number, VPI and VCI. (Required)
+.BI \-b
+Puts the process in the background.
+.TP 15
+.BI \-c\ n
+br2684 interface number such as 0, 1, ... (Required)
+.TP 15
+.BI \-e\ 0|1
+Encapsulation method: 0=LLC, 1=VC mux (the default is 0 or LLC)
+.TP 15
+.TP 15
+.BI \-s\ sndbuf
+Send buffer size. Default is 8192.
+.SH DESCRIPTION
+br2684ctl handles RFC1483/2684 bridged PDUs.
+This is most often used in ADSL scenarios where
+.I usually
+the subscribers'
+ethernet traffic is encapsulated in ATM AAL5 (by bridging ADSL modems)
+according to RFC2684.
+The subscriber-side ADSL modem can be external with an ethernet connector
+or an internal ADSL card in a PC.
+RFC1483 has been obsoleted by RFC2684.
+
+For example it is possible to set up your Linux box to handle several
+ATM PVC's with bridged-1483 (sometimes referred as SNAP) encapsulation.
+The Linux network stack might provide DHCP, IP masquerading, IP firewall services or
+bridge the Ethernet frames just like it had several ethernet interfaces.
+In fact it can have several (logical) ethernet interfaces, where
+ATM is just used as a carrier.
+.SH USAGE
+br2684ctl creates a new network interface named nas[n]
+which is bound to an specific ATM PVC. It requires two mandatory
+arguments: -c, the interface number, and -a, the ATM PVC. It should be
+noted that the order of the command arguments matter; -c should be
+followed by -a. You can create as many interfaces as necessary
+in one go, just make a long command line ;)
+
+For example, following command will create a nas0 interface which uses
+the ATM PVC with VPI=0 and VCI=401. You need to configure the PVC connection
+0.401 on the ATM switch manually.
+
+% br2684ctl -c 0 -a 0.401
+
+The command will only create a new interface nas0.
+Next step is to assign an IP address and netmask to
+the interface nas0 using the ifconfig command. Using ifconfig, you can
+also assign a Ethernet MAC address to the interface nas0, if necessary.
+
+% ifconfig nas0 192.168.2.1 netmask 255.255.255.0
+.SH NOTES
+This man page is based on a tutorial by by Joonbum Byun <jbyun@megaxess.com>
+.SH SEE ALSO
+.BR qos (7)
--- linux-atm-2.4.1.orig/doc/Makefile.in --- linux-atm-2.4.1.orig/doc/Makefile.in
+++ linux-atm-2.4.1/doc/Makefile.in +++ linux-atm-2.4.1/doc/Makefile.in
@@ -1,4 +1,4 @@ @@ -1,4 +1,4 @@
@ -30808,88 +30297,6 @@
++#endif /* __KERNEL__ */ ++#endif /* __KERNEL__ */
++ ++
++#endif ++#endif
--- linux-atm-2.4.1.orig/debian/README.br2684
+++ linux-atm-2.4.1/debian/README.br2684
@@ -0,0 +1,79 @@
+README.br2684
+~~~~~~~~~~~~~
+
+The linux-atm CVS includes a program called br2684 which can be used
+to configure br2684 ATM bridging. On request (#216663), the Debian
+maintainer included br2684 in the source package.
+
+This was done in a way that separates the - unreleased CVS snapshot -
+br2684 program into its own binary package so avoid shipping
+released and unreleased software in the same binary package.
+
+The modified source package (2.4.1-10) was rejected by Debian
+ftpmaster because he found the package too small to warrant its own
+.deb.
+
+Hence, atm-tools-br2684 is not built any more.
+
+You can, however, build your own atm-tools-br2684 package from the
+official Debian source package by following this "script".
+
+(0)
+Install all build dependencies plus autoconf, libtool, automake. If
+#219936 is still unfixed, copy /usr/bin/autoreconf to a local
+directory and apply the following patch after changing "+@@" to "@@"
+in the first line (this was inserted to be able to feed this readme to
+patch to apply the patch given in (1).
+
+--- /usr/bin/autoreconf
++++ autoreconf
++@@ -183,7 +183,7 @@
+ {
+ $autoconf .= ' --force';
+ $autoheader .= ' --force';
+- $automake .= ' --force-missing';
++ $automake .= '';
+ $autopoint .= ' --force';
+ $libtoolize .= ' --force';
+ }
+
+(1) Apply the following patch
+--- configure.in.orig
++++ configure.in
+@@ -152,6 +152,7 @@
+ m4/Makefile \
+ src/Makefile \
+ src/include/Makefile \
++ src/br2684/Makefile \
+ src/lib/Makefile \
+ src/test/Makefile \
+ src/debug/Makefile \
+--- debian/rules.orig
++++ debian/rules
+@@ -11,7 +11,7 @@
+ export PACKAGE=linux-atm
+
+ buildindeppackages=atm-dev
+-buildarchpackages=atm-tools libatm1 libatm1-dev
++buildarchpackages=atm-tools atm-tools-br2684 libatm1 libatm1-dev
+
+ # generate -ppackage1 -ppackage2 ... commandline for debhelper
+ dhbuildarchpackages=$(addprefix -p,$(buildarchpackages))
+--- src/Makefile.am.orig
++++ src/Makefile.am
+@@ -1,3 +1,3 @@
+ SUBDIRS = include lib test debug qgen saal sigd maint arpd ilmid man led lane \
+- mpoad switch config extra
++ mpoad switch config extra br2684
+
+
+(2)
+Invoke autoreconf -f -i
+
+(3)
+create your own changelog entry and your own local version number
+
+(4)
+Build the package as usual
+
+Marc Haber, 2003-11-05
--- linux-atm-2.4.1.orig/debian/control --- linux-atm-2.4.1.orig/debian/control
+++ linux-atm-2.4.1/debian/control +++ linux-atm-2.4.1/debian/control
@@ -0,0 +1,57 @@ @@ -0,0 +1,57 @@
@ -30950,11 +30357,6 @@
+ Transfer Mode) related programs. + Transfer Mode) related programs.
+ . + .
+ Homepage: http://linux-atm.sourceforge.net/ + Homepage: http://linux-atm.sourceforge.net/
--- linux-atm-2.4.1.orig/debian/atm-tools-br2684.dirs
+++ linux-atm-2.4.1/debian/atm-tools-br2684.dirs
@@ -0,0 +1,2 @@
+usr/sbin
+usr/share/man/man8
--- linux-atm-2.4.1.orig/debian/rules --- linux-atm-2.4.1.orig/debian/rules
+++ linux-atm-2.4.1/debian/rules +++ linux-atm-2.4.1/debian/rules
@@ -0,0 +1,136 @@ @@ -0,0 +1,136 @@

View File

@ -1,488 +0,0 @@
diff -ruN linux-atm-2.4.1/configure.in linux-atm-2.4.1.new/configure.in
--- linux-atm-2.4.1/configure.in 2003-04-25 04:17:05.000000000 +0200
+++ linux-atm-2.4.1.new/configure.in 2005-07-27 15:45:49.532396543 +0200
@@ -153,26 +153,6 @@
src/Makefile \
src/include/Makefile \
src/lib/Makefile \
- src/test/Makefile \
- src/debug/Makefile \
- src/qgen/Makefile \
- src/saal/Makefile \
- src/sigd/Makefile \
- src/maint/Makefile \
- src/arpd/Makefile \
- src/ilmid/Makefile \
- src/ilmid/asn1/Makefile \
- src/man/Makefile \
- src/led/Makefile \
- 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/br2684/Makefile \
)
diff -ruN linux-atm-2.4.1/src/br2684/Makefile linux-atm-2.4.1.new/src/br2684/Makefile
--- linux-atm-2.4.1/src/br2684/Makefile 1970-01-01 02:00:00.000000000 +0200
+++ linux-atm-2.4.1.new/src/br2684/Makefile 2002-07-15 23:44:25.000000000 +0200
@@ -0,0 +1,13 @@
+PREFIX=${TI_FILESYSTEM}
+
+all: br2684ctl
+
+br2684ctl: br2684ctl.c
+ gcc -latm -o br2684ctl br2684ctl.c
+ strip br2684ctl
+
+install: br2684ctl
+ cp br2684ctl $(PREFIX)/usr/sbin/
+
+clean:
+ rm -rf br2684ctl *.o
diff -ruN linux-atm-2.4.1/src/Makefile.am linux-atm-2.4.1.new/src/Makefile.am
--- linux-atm-2.4.1/src/Makefile.am 2001-10-03 23:14:53.000000000 +0200
+++ linux-atm-2.4.1.new/src/Makefile.am 2005-07-27 15:33:52.389309711 +0200
@@ -1,3 +1,2 @@
-SUBDIRS = include lib test debug qgen saal sigd maint arpd ilmid man led lane \
- mpoad switch config extra
+SUBDIRS = include lib br2684
diff -Nur linux-atm-2.4.1.orig/src/include/linux/atmbr2684.h linux-atm-2.4.1/src/include/linux/atmbr2684.h
--- linux-atm-2.4.1.orig/src/include/linux/atmbr2684.h 1970-01-01 01:00:00.000000000 +0100
+++ linux-atm-2.4.1/src/include/linux/atmbr2684.h 2005-11-13 00:06:42.000000000 +0100
@@ -0,0 +1,117 @@
+#ifndef _LINUX_ATMBR2684_H
+#define _LINUX_ATMBR2684_H
+
+#include <linux/atm.h>
+#include <linux/if.h> /* For IFNAMSIZ */
+#include <linux/if_ether.h> /* ETH_P_* */
+
+/*
+ * Type of media we're bridging (ethernet, token ring, etc) Currently only
+ * ethernet is supported
+ */
+#define BR2684_MEDIA_ETHERNET (0) /* 802.3 */
+#define BR2684_MEDIA_802_4 (1) /* 802.4 */
+#define BR2684_MEDIA_TR (2) /* 802.5 - token ring */
+#define BR2684_MEDIA_FDDI (3)
+#define BR2684_MEDIA_802_6 (4) /* 802.6 */
+
+/*
+ * Is there FCS inbound on this VC? This currently isn't supported.
+ */
+#define BR2684_FCSIN_NO (0)
+#define BR2684_FCSIN_IGNORE (1)
+#define BR2684_FCSIN_VERIFY (2)
+
+/*
+ * Is there FCS outbound on this VC? This currently isn't supported.
+ */
+#define BR2684_FCSOUT_NO (0)
+#define BR2684_FCSOUT_SENDZERO (1)
+#define BR2684_FCSOUT_GENERATE (2)
+
+/*
+ * Does this VC include LLC encapsulation?
+ */
+#define BR2684_ENCAPS_VC (0) /* VC-mux */
+#define BR2684_ENCAPS_LLC (1)
+#define BR2684_ENCAPS_AUTODETECT (2) /* Unsuported */
+
+/*
+ * Is this VC bridged or routed?
+ */
+
+#define BR2684_PAYLOAD_ROUTED (0)
+#define BR2684_PAYLOAD_BRIDGED (1)
+
+
+/*
+ * This is for the ATM_NEWBACKENDIF call - these are like socket families:
+ * the first element of the structure is the backend number and the rest
+ * is per-backend specific
+ */
+struct atm_newif_br2684 {
+ atm_backend_t backend_num; /* ATM_BACKEND_BR2684 */
+ int media; /* BR2684_MEDIA_* */
+ char ifname[IFNAMSIZ];
+ int mtu;
+ int payload; /* bridged or routed */
+};
+
+/*
+ * This structure is used to specify a br2684 interface - either by a
+ * positive integer (returned by ATM_NEWBACKENDIF) or the interfaces name
+ */
+#define BR2684_FIND_BYNOTHING (0)
+#define BR2684_FIND_BYNUM (1)
+#define BR2684_FIND_BYIFNAME (2)
+struct br2684_if_spec {
+ int method; /* BR2684_FIND_* */
+ union {
+ char ifname[IFNAMSIZ];
+ int devnum;
+ } spec;
+};
+
+/*
+ * This is for the ATM_SETBACKEND call - these are like socket families:
+ * the first element of the structure is the backend number and the rest
+ * is per-backend specific
+ */
+struct atm_backend_br2684 {
+ atm_backend_t backend_num; /* ATM_BACKEND_BR2684 */
+ struct br2684_if_spec ifspec;
+ int fcs_in; /* BR2684_FCSIN_* */
+ int fcs_out; /* BR2684_FCSOUT_* */
+ int fcs_auto; /* 1: fcs_{in,out} disabled if no FCS rx'ed */
+ int encaps; /* BR2684_ENCAPS_* */
+ int payload; /* BR2684_PAYLOAD_* */
+ int has_vpiid; /* 1: use vpn_id - Unsupported */
+ __u8 vpn_id[7];
+ int send_padding; /* unsupported */
+ int min_size; /* we will pad smaller packets than this */
+};
+
+/*
+ * The BR2684_SETFILT ioctl is an experimental mechanism for folks
+ * terminating a large number of IP-only vcc's. When netfilter allows
+ * efficient per-if in/out filters, this support will be removed
+ */
+struct br2684_filter {
+ __u32 prefix; /* network byte order */
+ __u32 netmask; /* 0 = disable filter */
+};
+
+struct br2684_filter_set {
+ struct br2684_if_spec ifspec;
+ struct br2684_filter filter;
+};
+
+enum br2684_payload {
+ p_routed = BR2684_PAYLOAD_ROUTED,
+ p_bridged = BR2684_PAYLOAD_BRIDGED,
+};
+
+#define BR2684_SETFILT _IOW( 'a', ATMIOC_BACKEND + 0, \
+ struct br2684_filter_set)
+
+#endif /* _LINUX_ATMBR2684_H */
--- linux-atm-2.4.1/src/br2684/br2684ctl.c 1970-01-01 01:00:00.000000000 +0100
+++ linux-atm-2.4.1.new/src/br2684/br2684ctl.c 2006-02-07 14:19:42.000000000 +0100
@@ -0,0 +1,307 @@
+#include <stdio.h>
+#include <stdlib.h>
+#include <unistd.h>
+#include <errno.h>
+#include <sys/ioctl.h>
+#include <string.h>
+#include <syslog.h>
+#include <atm.h>
+#include <linux/atmdev.h>
+#include <linux/atmbr2684.h>
+
+/* Written by Marcell GAL <cell@sch.bme.hu> to make use of the */
+/* ioctls defined in the br2684... kernel patch */
+/* Compile with cc -o br2684ctl br2684ctl.c -latm */
+
+/*
+ Modified feb 2001 by Stephen Aaskov (saa@lasat.com)
+ - Added daemonization code
+ - Added syslog
+
+ TODO: Delete interfaces after exit?
+*/
+
+
+#define LOG_NAME "RFC1483/2684 bridge"
+#define LOG_OPTION LOG_PERROR
+#define LOG_FACILITY LOG_LOCAL0
+
+
+int lastsock, lastitf;
+
+void fatal(char *str, int i)
+{
+ syslog(LOG_ERR, "Fatal: %s", str);
+ exit(-2);
+};
+
+
+void exitFunc(void)
+{
+ syslog(LOG_PID, "Daemon terminated\n");
+}
+
+
+int create_pidfile(char *nstr)
+{
+ FILE *pidfile = NULL;
+ char name[20];
+ int num;
+
+ if (nstr == NULL)
+ return -1;
+ num = atoi(nstr);
+ if (num < 0)
+ return -1;
+
+ snprintf(name, 20, "/var/run/nas%d.pid", num);
+ pidfile = fopen(name, "w");
+ if (pidfile == NULL)
+ return -1;
+ fprintf(pidfile, "%d", getpid());
+ fclose(pidfile);
+
+ return 0;
+}
+
+int create_br(char *nstr, int payload)
+{
+ int num, err;
+
+ if (lastsock < 0) {
+ lastsock = socket(PF_ATMPVC, SOCK_DGRAM, ATM_AAL5);
+ }
+ if (lastsock < 0) {
+ syslog(LOG_ERR, "socket creation failed: %s",
+ strerror(errno));
+ } else {
+ /* create the device with ioctl: */
+ num = atoi(nstr);
+ if (num >= 0 && num < 1234567890) {
+ struct atm_newif_br2684 ni;
+ ni.backend_num = ATM_BACKEND_BR2684;
+ ni.media = BR2684_MEDIA_ETHERNET;
+ ni.mtu = 1500;
+ ni.payload = payload; /* bridged or routed */
+ sprintf(ni.ifname, "nas%d", num);
+ err = ioctl(lastsock, ATM_NEWBACKENDIF, &ni);
+
+ if (err == 0)
+ syslog(LOG_INFO,
+ "Interface \"%s\" (mtu=%d, payload=%s) created sucessfully\n",
+ ni.ifname, ni.mtu,ni.payload ? "bridged" : "routed");
+ else
+ syslog(LOG_INFO,
+ "Interface \"%s\" could not be created, reason: %s\n",
+ ni.ifname, strerror(errno));
+ lastitf = num; /* even if we didn't create, because existed, assign_vcc wil want to know it! */
+ } else {
+ syslog(LOG_ERR, "err: strange interface number %d",
+ num);
+ }
+ }
+ return 0;
+}
+
+
+int assign_vcc(char *astr, int encap, int payload, int bufsize)
+{
+ int err, errno;
+ struct atm_qos qos;
+ struct sockaddr_atmpvc addr;
+ int fd;
+ struct atm_backend_br2684 be;
+
+ memset(&addr, 0, sizeof(addr));
+ err =
+ text2atm(astr, (struct sockaddr *) (&addr), sizeof(addr),
+ T2A_PVC);
+ if (err != 0)
+ syslog(LOG_ERR,
+ "Could not parse ATM parameters (error=%d)\n", err);
+
+#if 0
+ addr.sap_family = AF_ATMPVC;
+ addr.sap_addr.itf = itf;
+ addr.sap_addr.vpi = 0;
+ addr.sap_addr.vci = vci;
+#endif
+ syslog(LOG_INFO,
+ "Communicating over ATM %d.%d.%d, encapsulation: %s\n",
+ addr.sap_addr.itf, addr.sap_addr.vpi, addr.sap_addr.vci,
+ encap ? "VC mux" : "LLC");
+
+ if ((fd = socket(PF_ATMPVC, SOCK_DGRAM, ATM_AAL5)) < 0)
+ syslog(LOG_ERR, "failed to create socket %d, reason: %s",
+ errno, strerror(errno));
+
+
+ memset(&qos, 0, sizeof(qos));
+ qos.aal = ATM_AAL5;
+ qos.txtp.traffic_class = ATM_UBR;
+ qos.txtp.max_sdu = 1524;
+ qos.txtp.pcr = ATM_MAX_PCR;
+ qos.rxtp = qos.txtp;
+
+ if ((err =
+ setsockopt(fd, SOL_SOCKET, SO_SNDBUF, &bufsize,
+ sizeof(bufsize))))
+ syslog(LOG_ERR, "setsockopt SO_SNDBUF: (%d) %s\n", err,
+ strerror(err));
+
+ if (setsockopt(fd, SOL_ATM, SO_ATMQOS, &qos, sizeof(qos)) < 0)
+ syslog(LOG_ERR, "setsockopt SO_ATMQOS %d", errno);
+
+ err =
+ connect(fd, (struct sockaddr *) &addr,
+ sizeof(struct sockaddr_atmpvc));
+
+ if (err < 0)
+ fatal("failed to connect on socket", err);
+
+ /* attach the vcc to device: */
+
+ be.backend_num = ATM_BACKEND_BR2684;
+ be.ifspec.method = BR2684_FIND_BYIFNAME;
+ sprintf(be.ifspec.spec.ifname, "nas%d", lastitf);
+ be.fcs_in = BR2684_FCSIN_NO;
+ be.fcs_out = BR2684_FCSOUT_NO;
+ be.fcs_auto = 0;
+ be.encaps = encap ? BR2684_ENCAPS_VC : BR2684_ENCAPS_LLC;
+ be.payload = payload;
+ be.has_vpiid = 0;
+ be.send_padding = 0;
+ be.min_size = 0;
+ err = ioctl(fd, ATM_SETBACKEND, &be);
+ if (err == 0)
+ syslog(LOG_INFO, "Interface configured");
+ else {
+ syslog(LOG_ERR, "Could not configure interface:%s",
+ strerror(errno));
+ exit(2);
+ }
+ return fd;
+}
+
+
+
+void usage(char *s)
+{
+ printf("usage: %s [-b] [[-c number] [-e 0|1] [-p 0|1] [-s num] [-a [itf.]vpi.vci]*]*\n"
+ " -b = run in background (daemonize)\n"
+ " -c <num> = use interface nas<num>\n"
+ " -e 0|1 = encapsulation (0=LLC, 1=VC Mux)\n"
+ " -p 0|1 = payload type (0=routed,1=bridged)\n"
+ " -s <num> = set sndbuf (send buffer) size (default 8192)\n"
+ " -a [itf.]vpi.vci = ATM interface no, VPI, VCI\n",
+ s);
+ exit(1);
+}
+
+
+
+int main(int argc, char **argv)
+{
+ int c, background = 0, encap = 0, sndbuf = 8192, payload = 1;
+ char *itfnum = NULL;
+
+ lastsock = -1;
+ lastitf = 0;
+
+ openlog(LOG_NAME, LOG_OPTION, LOG_FACILITY);
+ if (argc > 1)
+ while ((c = getopt(argc, argv, "a:bc:e:s:p:t:?h")) != EOF)
+ switch (c) {
+ case 'a':
+ assign_vcc(optarg, encap, payload, sndbuf);
+ break;
+ case 'b':
+ background = 1;
+ break;
+ case 'c':
+ create_br(optarg, payload);
+ itfnum = strdup(optarg);
+ break;
+ case 'e':
+ encap = (atoi(optarg));
+ if (encap < 0) {
+ syslog(LOG_ERR,
+ "invalid encapsulation: %s:\n",
+ optarg);
+ encap = 0;
+ }
+ break;
+ case 's':
+ sndbuf = (atoi(optarg));
+ if (sndbuf < 0) {
+ syslog(LOG_ERR,
+ "Invalid sndbuf: %s, using size of 8192 instead\n",
+ optarg);
+ sndbuf = 8192;
+ }
+ break;
+ case 'p': /* payload type: routed (0) or bridged (1) */
+ payload = atoi(optarg);
+ break;
+ case '?':
+ case 'h':
+ default:
+ usage(argv[0]);
+ } else
+ usage(argv[0]);
+
+ if (argc != optind)
+ usage(argv[0]);
+
+ if (lastsock >= 0)
+ close(lastsock);
+
+ if (background) {
+ pid_t pid;
+
+ pid = fork();
+ if (pid < 0) {
+ fprintf(stderr, "Error detaching\n");
+ exit(2);
+ } else if (pid)
+ exit(0); // This is the parent
+
+ // Become a process group and session group leader
+ if (setsid() < 0) {
+ fprintf(stderr, "Could not set process group\n");
+ exit(2);
+ }
+ // Fork again to let process group leader exit
+ pid = fork();
+ if (pid < 0) {
+ fprintf(stderr,
+ "Error detaching during second fork\n");
+ exit(2);
+ } else if (pid)
+ exit(0); // This is the parent
+
+ // Now we're ready for buisness
+ chdir("/"); // Don't keep directories in use
+ close(0);
+ close(1);
+ close(2); // Close stdin, -out and -error
+ /*
+ Note that this implementation does not keep an open
+ stdout/err.
+ If we need them they can be opened now
+ */
+
+ }
+
+ if (itfnum != NULL) {
+ create_pidfile(itfnum);
+ free(itfnum);
+ }
+
+ syslog(LOG_INFO, "RFC 1483/2684 bridge daemon started\n");
+ atexit(exitFunc);
+
+ while (1)
+ sleep(30); /* to keep the sockets... */
+ return 0;
+}

View File

@ -0,0 +1,161 @@
diff -ruN linux-atm-2.4.1/configure.in linux-atm-2.4.1.new/configure.in
--- linux-atm-2.4.1/configure.in 2003-04-25 04:17:05.000000000 +0200
+++ linux-atm-2.4.1.new/configure.in 2005-07-27 15:45:49.532396543 +0200
@@ -153,26 +153,5 @@
src/Makefile \
src/include/Makefile \
src/lib/Makefile \
- src/test/Makefile \
- src/debug/Makefile \
- src/qgen/Makefile \
- src/saal/Makefile \
- src/sigd/Makefile \
- src/maint/Makefile \
- src/arpd/Makefile \
- src/ilmid/Makefile \
- src/ilmid/asn1/Makefile \
- src/man/Makefile \
- src/led/Makefile \
- 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
)
diff -ruN linux-atm-2.4.1/src/Makefile.am linux-atm-2.4.1.new/src/Makefile.am
--- linux-atm-2.4.1/src/Makefile.am 2001-10-03 23:14:53.000000000 +0200
+++ linux-atm-2.4.1.new/src/Makefile.am 2005-07-27 15:33:52.389309711 +0200
@@ -1,3 +1,2 @@
-SUBDIRS = include lib test debug qgen saal sigd maint arpd ilmid man led lane \
- mpoad switch config extra
+SUBDIRS = include lib
diff -Nur linux-atm-2.4.1.orig/src/include/linux/atmbr2684.h linux-atm-2.4.1/src/include/linux/atmbr2684.h
--- linux-atm-2.4.1.orig/src/include/linux/atmbr2684.h 1970-01-01 01:00:00.000000000 +0100
+++ linux-atm-2.4.1/src/include/linux/atmbr2684.h 2005-11-13 00:06:42.000000000 +0100
@@ -0,0 +1,117 @@
+#ifndef _LINUX_ATMBR2684_H
+#define _LINUX_ATMBR2684_H
+
+#include <linux/atm.h>
+#include <linux/if.h> /* For IFNAMSIZ */
+#include <linux/if_ether.h> /* ETH_P_* */
+
+/*
+ * Type of media we're bridging (ethernet, token ring, etc) Currently only
+ * ethernet is supported
+ */
+#define BR2684_MEDIA_ETHERNET (0) /* 802.3 */
+#define BR2684_MEDIA_802_4 (1) /* 802.4 */
+#define BR2684_MEDIA_TR (2) /* 802.5 - token ring */
+#define BR2684_MEDIA_FDDI (3)
+#define BR2684_MEDIA_802_6 (4) /* 802.6 */
+
+/*
+ * Is there FCS inbound on this VC? This currently isn't supported.
+ */
+#define BR2684_FCSIN_NO (0)
+#define BR2684_FCSIN_IGNORE (1)
+#define BR2684_FCSIN_VERIFY (2)
+
+/*
+ * Is there FCS outbound on this VC? This currently isn't supported.
+ */
+#define BR2684_FCSOUT_NO (0)
+#define BR2684_FCSOUT_SENDZERO (1)
+#define BR2684_FCSOUT_GENERATE (2)
+
+/*
+ * Does this VC include LLC encapsulation?
+ */
+#define BR2684_ENCAPS_VC (0) /* VC-mux */
+#define BR2684_ENCAPS_LLC (1)
+#define BR2684_ENCAPS_AUTODETECT (2) /* Unsuported */
+
+/*
+ * Is this VC bridged or routed?
+ */
+
+#define BR2684_PAYLOAD_ROUTED (0)
+#define BR2684_PAYLOAD_BRIDGED (1)
+
+
+/*
+ * This is for the ATM_NEWBACKENDIF call - these are like socket families:
+ * the first element of the structure is the backend number and the rest
+ * is per-backend specific
+ */
+struct atm_newif_br2684 {
+ atm_backend_t backend_num; /* ATM_BACKEND_BR2684 */
+ int media; /* BR2684_MEDIA_* */
+ char ifname[IFNAMSIZ];
+ int mtu;
+ int payload; /* bridged or routed */
+};
+
+/*
+ * This structure is used to specify a br2684 interface - either by a
+ * positive integer (returned by ATM_NEWBACKENDIF) or the interfaces name
+ */
+#define BR2684_FIND_BYNOTHING (0)
+#define BR2684_FIND_BYNUM (1)
+#define BR2684_FIND_BYIFNAME (2)
+struct br2684_if_spec {
+ int method; /* BR2684_FIND_* */
+ union {
+ char ifname[IFNAMSIZ];
+ int devnum;
+ } spec;
+};
+
+/*
+ * This is for the ATM_SETBACKEND call - these are like socket families:
+ * the first element of the structure is the backend number and the rest
+ * is per-backend specific
+ */
+struct atm_backend_br2684 {
+ atm_backend_t backend_num; /* ATM_BACKEND_BR2684 */
+ struct br2684_if_spec ifspec;
+ int fcs_in; /* BR2684_FCSIN_* */
+ int fcs_out; /* BR2684_FCSOUT_* */
+ int fcs_auto; /* 1: fcs_{in,out} disabled if no FCS rx'ed */
+ int encaps; /* BR2684_ENCAPS_* */
+ int payload; /* BR2684_PAYLOAD_* */
+ int has_vpiid; /* 1: use vpn_id - Unsupported */
+ __u8 vpn_id[7];
+ int send_padding; /* unsupported */
+ int min_size; /* we will pad smaller packets than this */
+};
+
+/*
+ * The BR2684_SETFILT ioctl is an experimental mechanism for folks
+ * terminating a large number of IP-only vcc's. When netfilter allows
+ * efficient per-if in/out filters, this support will be removed
+ */
+struct br2684_filter {
+ __u32 prefix; /* network byte order */
+ __u32 netmask; /* 0 = disable filter */
+};
+
+struct br2684_filter_set {
+ struct br2684_if_spec ifspec;
+ struct br2684_filter filter;
+};
+
+enum br2684_payload {
+ p_routed = BR2684_PAYLOAD_ROUTED,
+ p_bridged = BR2684_PAYLOAD_BRIDGED,
+};
+
+#define BR2684_SETFILT _IOW( 'a', ATMIOC_BACKEND + 0, \
+ struct br2684_filter_set)
+
+#endif /* _LINUX_ATMBR2684_H */

View File

@ -11160,7 +11160,7 @@ diff -urN linux-atm.old/configure linux-atm.dev/configure
- ac_config_files="$ac_config_files Makefile doc/Makefile m4/Makefile src/Makefile src/include/Makefile src/lib/Makefile src/test/Makefile src/debug/Makefile src/qgen/Makefile src/saal/Makefile src/sigd/Makefile src/maint/Makefile src/arpd/Makefile src/ilmid/Makefile src/ilmid/asn1/Makefile src/man/Makefile src/led/Makefile 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" - ac_config_files="$ac_config_files Makefile doc/Makefile m4/Makefile src/Makefile src/include/Makefile src/lib/Makefile src/test/Makefile src/debug/Makefile src/qgen/Makefile src/saal/Makefile src/sigd/Makefile src/maint/Makefile src/arpd/Makefile src/ilmid/Makefile src/ilmid/asn1/Makefile src/man/Makefile src/led/Makefile 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"
+ ac_config_files="$ac_config_files Makefile doc/Makefile m4/Makefile src/Makefile src/include/Makefile src/lib/Makefile src/br2684/Makefile" + ac_config_files="$ac_config_files Makefile doc/Makefile m4/Makefile src/Makefile src/include/Makefile src/lib/Makefile"
cat >confcache <<\_ACEOF cat >confcache <<\_ACEOF
# This file is a shell script that caches the results of configure # This file is a shell script that caches the results of configure
# tests run on this system so they can be shared between configure # tests run on this system so they can be shared between configure
@ -11283,7 +11283,7 @@ diff -urN linux-atm.old/configure linux-atm.dev/configure
This config.status script is free software; the Free Software Foundation This config.status script is free software; the Free Software Foundation
gives unlimited permission to copy, distribute and modify it." gives unlimited permission to copy, distribute and modify it."
srcdir=$srcdir srcdir=$srcdir
@@ -9080,27 +9367,7 @@ @@ -9080,27 +9367,6 @@
"src/Makefile" ) CONFIG_FILES="$CONFIG_FILES src/Makefile" ;; "src/Makefile" ) CONFIG_FILES="$CONFIG_FILES src/Makefile" ;;
"src/include/Makefile" ) CONFIG_FILES="$CONFIG_FILES src/include/Makefile" ;; "src/include/Makefile" ) CONFIG_FILES="$CONFIG_FILES src/include/Makefile" ;;
"src/lib/Makefile" ) CONFIG_FILES="$CONFIG_FILES src/lib/Makefile" ;; "src/lib/Makefile" ) CONFIG_FILES="$CONFIG_FILES src/lib/Makefile" ;;
@ -11308,7 +11308,6 @@ diff -urN linux-atm.old/configure linux-atm.dev/configure
- "src/extra/Makefile" ) CONFIG_FILES="$CONFIG_FILES src/extra/Makefile" ;; - "src/extra/Makefile" ) CONFIG_FILES="$CONFIG_FILES src/extra/Makefile" ;;
- "src/extra/linux-atm.spec" ) CONFIG_FILES="$CONFIG_FILES src/extra/linux-atm.spec" ;; - "src/extra/linux-atm.spec" ) CONFIG_FILES="$CONFIG_FILES src/extra/linux-atm.spec" ;;
- "src/extra/ANS/Makefile" ) CONFIG_FILES="$CONFIG_FILES src/extra/ANS/Makefile" ;; - "src/extra/ANS/Makefile" ) CONFIG_FILES="$CONFIG_FILES src/extra/ANS/Makefile" ;;
+ "src/br2684/Makefile" ) CONFIG_FILES="$CONFIG_FILES src/br2684/Makefile" ;;
"default-1" ) CONFIG_COMMANDS="$CONFIG_COMMANDS default-1" ;; "default-1" ) CONFIG_COMMANDS="$CONFIG_COMMANDS default-1" ;;
"config.h" ) CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;; "config.h" ) CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;;
*) { { echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5 *) { { echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5
@ -11855,39 +11854,6 @@ diff -urN linux-atm.old/Makefile.in linux-atm.dev/Makefile.in
STRIP = @STRIP@ STRIP = @STRIP@
VERSION = @VERSION@ VERSION = @VERSION@
YACC = @YACC@ YACC = @YACC@
diff -urN linux-atm.old/src/br2684/Makefile.in linux-atm.dev/src/br2684/Makefile.in
--- linux-atm.old/src/br2684/Makefile.in 2005-08-23 01:12:10.884781000 +0200
+++ linux-atm.dev/src/br2684/Makefile.in 2005-08-23 01:12:46.632347232 +0200
@@ -57,11 +57,15 @@
NORMAL_UNINSTALL = :
PRE_UNINSTALL = :
POST_UNINSTALL = :
+build_alias = @build_alias@
+build_triplet = @build@
host_alias = @host_alias@
host_triplet = @host@
+target_alias = @target_alias@
+target_triplet = @target@
AR = @AR@
AS = @AS@
-CC = /usr/src/openwrt/staging_dir_mipsel/bin/mipsel-linux-gcc
+CC = @CC@
CXX = @CXX@
CXXCPP = @CXXCPP@
DLLTOOL = @DLLTOOL@
@@ -117,9 +121,9 @@
br2684ctl_DEPENDENCIES = $(top_builddir)/src/lib/libatm.la
br2684ctl_LDFLAGS =
CFLAGS = @CFLAGS@
-COMPILE = $(TARGET_CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
-LTCOMPILE = $(LIBTOOL) --mode=compile $(TARGET_CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
-CCLD = $(TARGET_CC)
+COMPILE = $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+LTCOMPILE = $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+CCLD = $(CC)
LINK = $(LIBTOOL) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(LDFLAGS) -o $@
man8dir = $(mandir)/man8
MANS = $(man_MANS)
diff -urN linux-atm.old/src/include/Makefile.in linux-atm.dev/src/include/Makefile.in diff -urN linux-atm.old/src/include/Makefile.in linux-atm.dev/src/include/Makefile.in
--- linux-atm.old/src/include/Makefile.in 2005-08-23 01:12:10.851786000 +0200 --- linux-atm.old/src/include/Makefile.in 2005-08-23 01:12:10.851786000 +0200
+++ linux-atm.dev/src/include/Makefile.in 2005-08-23 01:12:46.585354376 +0200 +++ linux-atm.dev/src/include/Makefile.in 2005-08-23 01:12:46.585354376 +0200
@ -12008,7 +11974,7 @@ diff -urN linux-atm.old/src/Makefile.in linux-atm.dev/src/Makefile.in
-SUBDIRS = include lib -SUBDIRS = include lib
- -
+SUBDIRS = include lib br2684 +SUBDIRS = include lib
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
CONFIG_HEADER = ../config.h CONFIG_HEADER = ../config.h
CONFIG_CLEAN_FILES = CONFIG_CLEAN_FILES =