new file mode 100644
new file mode 100644
new file mode 100644
@@ -0,0 +1,3 @@
+SUBDIRS = include files doc src
+
+ACLOCAL_AMFLAGS=-I m4
deleted file mode 100644
@@ -1,42 +0,0 @@
-DEBUG = @CONFIG_DEBUG@
-CC = @CC@
-CPP = @CPP@
-LEX = @LEX@
-YACC = @YACC@
-MKDIR_P = @MKDIR_P@
-INSTALL = @INSTALL@
-SED = @SED@
-DB2MAN = @DB2MAN@
-
-PACKAGE_TARNAME = @PACKAGE_TARNAME@
-
-prefix = @prefix@
-exec_prefix = @exec_prefix@
-sysconfdir = @sysconfdir@
-datarootdir = @datarootdir@
-mandir = @mandir@
-docdir = @docdir@
-pdfdir = @pdfdir@
-confdir = @sysconfdir@/nftables
-
-LDFLAGS += @LDFLAGS@
-LDFLAGS += @LIBS@
-
-CPPFLAGS += @CPPFLAGS@
-
-CFLAGS += @CFLAGS@ @DEFS@
-CFLAGS += -DDEFAULT_INCLUDE_PATH="\"$(confdir)\""
-CFLAGS += -include config.h
-CFLAGS += -Iinclude
-CFLAGS += -fno-strict-aliasing
-
-CFLAGS += -Wall
-CFLAGS += -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations
-CFLAGS += -Wdeclaration-after-statement -Wsign-compare -Winit-self
-CFLAGS += -Wformat-nonliteral -Wformat-security -Wmissing-format-attribute
-CFLAGS += -Wcast-align -Wundef -Wbad-function-cast # -Wshadow
-CFLAGS += -Waggregate-return -Wunused -Wwrite-strings
-
-ifeq ($(DEBUG),y)
-CFLAGS += -g -DDEBUG
-endif
deleted file mode 100644
@@ -1,5 +0,0 @@
-SUBDIRS += src
-SUBDIRS += files
-SUBDIRS += doc
-
-include Makefile.rules
deleted file mode 100644
@@ -1,96 +0,0 @@
-include Makefile.defs
-
-makedeps += $(SUBDIR)Makefile
-makedeps += Makefile
-makedeps += Makefile.defs
-makedeps += Makefile.rules
-
-configure: configure.ac
- sh autogen.sh
-
-%: %.in configure
- sh configure
-
-%.o: %.c $(makedeps)
- @echo -e " CC\t\t$<"
- $(CC) $(CFLAGS) -c -o $@ $<
-
-.%.d: %.c $(makedeps)
- @echo -e " DEP\t\t$<"
- $(RM) $@
- $(CC) -M $(CFLAGS) $< | sed 's,$(*F)\.o[ :]*,$*.o $@ : ,g' > $@
-
-%.c %.h: %.y $(makedeps)
- @echo -e " YACC\t\t$<"
- $(YACC) $(YACCFLAGS) --defines=$*.h.tmp -o $@ $<
- ( \
- echo "#ifndef __$(*F)_H"; \
- echo "#define __$(*F)_H"; \
- cat $*.h.tmp; \
- echo "#endif /* __$(*F)_H */" \
- ) > $*.h
- $(RM) $*.h.tmp
-
-%.c %.h: %.l $(makedeps)
- @echo -e " LEX\t\t$<"
- $(LEX) -t --header-file=$(<:.l=.h) $< > $@
-
-%.8: %.xml $(makedeps)
- @echo -e " MAN\t\t$@"
- (cd $(SUBDIR); $(DB2MAN) --xinclude ../$<)
-
-%.pdf: %.xml $(makedeps)
- @echo -e " PDF\t\t$@"
- dblatex -q -t pdf -o $@ $<
-
-archive:
- git archive --prefix=nftables-@PACKAGE_VERSION@/ HEAD | \
- bzip2 -c > nftables-@PACKAGE_VERSION@.tar.bz2
-
-define program_template
-$(1)-obj := $$(patsubst %,$(SUBDIR)%,$$($(1)-obj))
-$(1)-extra-clean-files := $$(patsubst %,$(SUBDIR)%,$$($(1)-extra-clean-files))
-
-depfiles := $$(patsubst $(SUBDIR)%.o,$(SUBDIR).%.d,$$($(1)-obj))
-
-$(SUBDIR)$(1): $$($(1)-extra-targets) $$($(1)-obj)
- @echo -e " LD\t\t$$@"
- $$(CC) $$($(1)-obj) $$(LDFLAGS) -o $$@
-all_targets += $(SUBDIR)$(1)
-
-.PHONY: $(1)-clean
-$(1)-clean:
- @echo -e " CLEAN\t\t$(1)"
- $$(RM) $$($(1)-obj) $$(depfiles) $$($(1)-extra-clean-files) $(SUBDIR)$(1)
-clean_targets += $(1)-clean
-
-.PHONY: $(1)-install
-$(1)-install:
- @echo -e " INSTALL\t$1"
- $(MKDIR_P) $$(DESTDIR)/$$($(1)-destdir)
- $(INSTALL) -m 755 -p \
- $(SUBDIR)$(1) \
- $$(DESTDIR)/$$($(1)-destdir)/$(1)
-install_targets += $(1)-install
-
-ifneq ($(MAKECMDGOALS),clean)
--include $$(depfiles)
-endif
-endef
-
-ifneq ($(SUBDIR),)
-include $(SUBDIR)/Makefile
-$(foreach prog,$(PROGRAMS),$(eval $(call program_template,$(prog))))
-endif
-
-.DEFAULT_GOAL := all
-
-.PHONY: all clean install
-all: $(SUBDIRS) $(all_targets)
-clean: $(SUBDIRS) $(clean_targets)
-install: all $(SUBDIRS) $(install_targets)
-
-.PHONY: $(SUBDIRS)
-$(SUBDIRS):
- @echo -e " SUBDIR\t$@/"
- @$(MAKE) -s -f Makefile.rules $(MAKECMDGOALS) SUBDIR="$@/" SUBDIRS=""
new file mode 100644
new file mode 100644
@@ -0,0 +1,61 @@
+Installation instructions for nftables
+======================================
+
+ Prerequisites
+ =============
+
+ - standard glibc headers, gcc etc.
+
+ - libmnl: git://git.netfilter.org/libmnl.git
+
+ - libnftnl: git://git.netfilter.org/libnftnl.git
+
+ - flex
+
+ - bison
+
+ - libgmp
+
+ - libreadline
+
+ - optional: docbook2x: required for building man-page
+
+ - optional: docbook-utils: required for building PDF man-page
+
+ Configuring and compiling
+ =========================
+
+ Run "sh autogen.sh" to generate the configure script, then:
+
+ sh configure [options]
+
+ --prefix=
+
+ The prefix to put all installed files under. It defaults to
+ /usr/local, so the binaries will go into /usr/local/bin, sbin,
+ manpages into /usr/local/share/man, etc.
+
+ --datarootdir=
+
+ The base directory for arch-independant files. Defaults to
+ $prefix/share.
+
+ --disable-debug
+
+ Disable debugging
+
+ Suggested configuration options: --prefix=/ --datarootdir=/usr/share
+
+ Run "make" to compile nftables, "make install" to install it in the
+ configured paths.
+
+ Other notes
+ ===========
+
+ The nftables kernel tree can be found at:
+
+ git://git.kernel.org/pub/scm/linux/kernel/git/pablo/nftables.git
+
+ The latest version of this code can be found at:
+
+ git://git.netfilter.org/nftables.git
new file mode 100644
@@ -0,0 +1 @@
+SUBDIRS = nftables
deleted file mode 100644
@@ -1,5 +0,0 @@
-install:
- @echo -e " INSTALL\tfiles"
- $(MKDIR_P) $(DESTDIR)/$(confdir)
- $(INSTALL) -m 755 -p $(SUBDIR)nftables/* $(DESTDIR)/$(confdir)/
- $(SED) -i "s~#\! nft~#\!@sbindir@/nft~" $(DESTDIR)/$(confdir)/*
new file mode 100644
@@ -0,0 +1,21 @@
+SUBDIRS = linux
+
+noinst_HEADERS = ct.h \
+ datatype.h \
+ erec.h \
+ expression.h \
+ exthdr.h \
+ gmputil.h \
+ headers.h \
+ list.h \
+ meta.h \
+ mnl.h \
+ netlink.h \
+ nftables.h \
+ parser.h \
+ payload.h \
+ proto.h \
+ rbtree.h \
+ rule.h \
+ statement.h \
+ utils.h
new file mode 100644
@@ -0,0 +1,7 @@
+SUBDIRS = netfilter
+noinst_HEADERS = netfilter_arp.h \
+ netfilter_bridge.h \
+ netfilter_decnet.h \
+ netfilter.h \
+ netfilter_ipv4.h \
+ netfilter_ipv6.h
new file mode 100644
@@ -0,0 +1,4 @@
+noinst_HEADERS = nf_conntrack_common.h \
+ nf_conntrack_tuple_common.h \
+ nfnetlink.h \
+ nf_tables.h
deleted file mode 100755
@@ -1,269 +0,0 @@
-#!/bin/sh
-#
-# install - install a program, script, or datafile
-#
-# This originates from X11R5 (mit/util/scripts/install.sh), which was
-# later released in X11R6 (xc/config/util/install.sh) with the
-# following copyright and license.
-#
-# Copyright (C) 1994 X Consortium
-#
-# Permission is hereby granted, free of charge, to any person obtaining a copy
-# of this software and associated documentation files (the "Software"), to
-# deal in the Software without restriction, including without limitation the
-# rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
-# sell copies of the Software, and to permit persons to whom the Software is
-# furnished to do so, subject to the following conditions:
-#
-# The above copyright notice and this permission notice shall be included in
-# all copies or substantial portions of the Software.
-#
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-# X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-# AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC-
-# TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-#
-# Except as contained in this notice, the name of the X Consortium shall not
-# be used in advertising or otherwise to promote the sale, use or other deal-
-# ings in this Software without prior written authorization from the X Consor-
-# tium.
-#
-#
-# FSF changes to this file are in the public domain.
-#
-# Calling this script install-sh is preferred over install.sh, to prevent
-# `make' implicit rules from creating a file called install from it
-# when there is no Makefile.
-#
-# This script is compatible with the BSD install script, but was written
-# from scratch. It can only install one file at a time, a restriction
-# shared with many OS's install programs.
-
-
-# set DOITPROG to echo to test this script
-
-# Don't use :- since 4.3BSD and earlier shells don't like it.
-doit="${DOITPROG-}"
-
-
-# put in absolute paths if you don't have them in your path; or use env. vars.
-
-mvprog="${MVPROG-mv}"
-cpprog="${CPPROG-cp}"
-chmodprog="${CHMODPROG-chmod}"
-chownprog="${CHOWNPROG-chown}"
-chgrpprog="${CHGRPPROG-chgrp}"
-stripprog="${STRIPPROG-strip}"
-rmprog="${RMPROG-rm}"
-mkdirprog="${MKDIRPROG-mkdir}"
-
-transformbasename=""
-transform_arg=""
-instcmd="$mvprog"
-chmodcmd="$chmodprog 0755"
-chowncmd=""
-chgrpcmd=""
-stripcmd=""
-rmcmd="$rmprog -f"
-mvcmd="$mvprog"
-src=""
-dst=""
-dir_arg=""
-
-while [ x"$1" != x ]; do
- case $1 in
- -c) instcmd="$cpprog"
- shift
- continue;;
-
- -d) dir_arg=true
- shift
- continue;;
-
- -m) chmodcmd="$chmodprog $2"
- shift
- shift
- continue;;
-
- -o) chowncmd="$chownprog $2"
- shift
- shift
- continue;;
-
- -g) chgrpcmd="$chgrpprog $2"
- shift
- shift
- continue;;
-
- -s) stripcmd="$stripprog"
- shift
- continue;;
-
- -t=*) transformarg=`echo $1 | sed 's/-t=//'`
- shift
- continue;;
-
- -b=*) transformbasename=`echo $1 | sed 's/-b=//'`
- shift
- continue;;
-
- *) if [ x"$src" = x ]
- then
- src=$1
- else
- # this colon is to work around a 386BSD /bin/sh bug
- :
- dst=$1
- fi
- shift
- continue;;
- esac
-done
-
-if [ x"$src" = x ]
-then
- echo "install: no input file specified"
- exit 1
-else
- true
-fi
-
-if [ x"$dir_arg" != x ]; then
- dst=$src
- src=""
-
- if [ -d $dst ]; then
- instcmd=:
- chmodcmd=""
- else
- instcmd=mkdir
- fi
-else
-
-# Waiting for this to be detected by the "$instcmd $src $dsttmp" command
-# might cause directories to be created, which would be especially bad
-# if $src (and thus $dsttmp) contains '*'.
-
- if [ -f $src -o -d $src ]
- then
- true
- else
- echo "install: $src does not exist"
- exit 1
- fi
-
- if [ x"$dst" = x ]
- then
- echo "install: no destination specified"
- exit 1
- else
- true
- fi
-
-# If destination is a directory, append the input filename; if your system
-# does not like double slashes in filenames, you may need to add some logic
-
- if [ -d $dst ]
- then
- dst="$dst"/`basename $src`
- else
- true
- fi
-fi
-
-## this sed command emulates the dirname command
-dstdir=`echo $dst | sed -e 's,[^/]*$,,;s,/$,,;s,^$,.,'`
-
-# Make sure that the destination directory exists.
-# this part is taken from Noah Friedman's mkinstalldirs script
-
-# Skip lots of stat calls in the usual case.
-if [ ! -d "$dstdir" ]; then
-defaultIFS='
-'
-IFS="${IFS-${defaultIFS}}"
-
-oIFS="${IFS}"
-# Some sh's can't handle IFS=/ for some reason.
-IFS='%'
-set - `echo ${dstdir} | sed -e 's@/@%@g' -e 's@^%@/@'`
-IFS="${oIFS}"
-
-pathcomp=''
-
-while [ $# -ne 0 ] ; do
- pathcomp="${pathcomp}${1}"
- shift
-
- if [ ! -d "${pathcomp}" ] ;
- then
- $mkdirprog "${pathcomp}"
- else
- true
- fi
-
- pathcomp="${pathcomp}/"
-done
-fi
-
-if [ x"$dir_arg" != x ]
-then
- $doit $instcmd $dst &&
-
- if [ x"$chowncmd" != x ]; then $doit $chowncmd $dst; else true ; fi &&
- if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dst; else true ; fi &&
- if [ x"$stripcmd" != x ]; then $doit $stripcmd $dst; else true ; fi &&
- if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dst; else true ; fi
-else
-
-# If we're going to rename the final executable, determine the name now.
-
- if [ x"$transformarg" = x ]
- then
- dstfile=`basename $dst`
- else
- dstfile=`basename $dst $transformbasename |
- sed $transformarg`$transformbasename
- fi
-
-# don't allow the sed command to completely eliminate the filename
-
- if [ x"$dstfile" = x ]
- then
- dstfile=`basename $dst`
- else
- true
- fi
-
-# Make a temp file name in the proper directory.
-
- dsttmp=$dstdir/#inst.$$#
-
-# Move or copy the file name to the temp name
-
- $doit $instcmd $src $dsttmp &&
-
- trap "rm -f ${dsttmp}" 0 &&
-
-# and set any options; do chmod last to preserve setuid bits
-
-# If any of these fail, we abort the whole thing. If we want to
-# ignore errors from any of these, just make sure not to ignore
-# errors from the above "$doit $instcmd $src $dsttmp" command.
-
- if [ x"$chowncmd" != x ]; then $doit $chowncmd $dsttmp; else true;fi &&
- if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dsttmp; else true;fi &&
- if [ x"$stripcmd" != x ]; then $doit $stripcmd $dsttmp; else true;fi &&
- if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dsttmp; else true;fi &&
-
-# Now rename the file to the real destination.
-
- $doit $rmcmd -f $dstdir/$dstfile &&
- $doit $mvcmd $dsttmp $dstdir/$dstfile
-
-fi &&
-
-
-exit 0