Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/netbsd-6]: src Pull up following revision(s) (requested by rmind in tick...



details:   https://anonhg.NetBSD.org/src/rev/406ed517292d
branches:  netbsd-6
changeset: 775450:406ed517292d
user:      riz <riz%NetBSD.org@localhost>
date:      Sun Nov 18 22:38:24 2012 +0000

description:
Pull up following revision(s) (requested by rmind in ticket #693):
        lib/npf/ext_normalise/shlib_version: revision 1.1
        lib/libnpf/npf.c: revision 1.13
        distrib/sets/lists/modules/mi: revision 1.48
        sys/net/npf/npf_rproc.c: revision 1.3
        sys/net/npf/npf_rproc.c: revision 1.4
        sys/modules/npf/Makefile: revision 1.11
        usr.sbin/npf/npfctl/npfctl.h: revision 1.20
        lib/npf/ext_log/npfext_log.c: revision 1.1
        lib/libnpf/npf.h: revision 1.11
        sys/net/npf/npf_inet.c: revision 1.17
        sys/net/npf/npf_log.c: file removal
        sys/net/npf/npf_handler.c: revision 1.22
        distrib/sets/lists/base/shl.mi: revision 1.636
        sys/net/npf/npf_impl.h: revision 1.23
        usr.sbin/npf/npfctl/Makefile: revision 1.8
        lib/npf/Makefile: revision 1.1
        lib/npf/ext_log/shlib_version: revision 1.1
        lib/Makefile: revision 1.189
        distrib/sets/lists/comp/shl.mi: revision 1.236
        usr.sbin/npf/npfctl/npf_build.c: revision 1.14
        distrib/sets/lists/base/mi: revision 1.1007
        usr.sbin/npf/npfctl/npf_scan.l: revision 1.6
        distrib/sets/lists/base/mi: revision 1.1009
        sys/net/npf/npf.h: revision 1.21
        lib/npf/ext_normalise/npfext_normalise.c: revision 1.1
        etc/mtree/NetBSD.dist.base: revision 1.105
        lib/libnpf/Makefile: revision 1.3
        etc/mtree/NetBSD.dist.base: revision 1.106
        usr.sbin/npf/npfctl/npf_extmod.c: revision 1.1
        sys/net/npf/npf_ctl.c: revision 1.18
        lib/npf/ext_log/Makefile: revision 1.1
        distrib/sets/lists/comp/mi: revision 1.1781
        usr.sbin/npf/npfctl/npf_var.h: revision 1.4
        sys/net/npf/npf.c: revision 1.13
        sys/modules/Makefile: revision 1.111
        sys/net/npf/npf_ext_log.c: revision 1.1
        lib/npf/Makefile.inc: revision 1.1
        sys/net/npf/npf_ext_normalise.c: revision 1.1
        sys/net/npf/files.npf: revision 1.8
        sys/rump/net/lib/libnpf/Makefile: revision 1.2
        sys/modules/npf_ext_log/Makefile: revision 1.1
        lib/npf/ext_normalise/Makefile: revision 1.1
        usr.sbin/npf/npfctl/npfctl.c: revision 1.20
        usr.sbin/npf/npfctl/npf_parse.y: revision 1.13
        sys/modules/npf_ext_normalise/Makefile: revision 1.1
Implement dynamic NPF extensions interface.  An extension consists of
dynamically loaded module (.so) supplementing npfctl(8) and a kernel
module.  Move normalisation and logging functionality into their own
extensions.  More improvements to come.
Add /usr/lib/npf.
Add ./usr/libdata/debug/usr/lib/npf for rmind
Fix MKDEBUG set lists
ext_ops does not change during the life cycle and can be fetched without
the mutex held. This avoids confusion in the compiler about an uninitialized
variable ext_ops.
ok rmind@

diffstat:

 distrib/sets/lists/base/mi               |    4 +-
 distrib/sets/lists/base/shl.mi           |   14 +-
 distrib/sets/lists/comp/mi               |    3 +-
 distrib/sets/lists/comp/shl.mi           |    4 +-
 distrib/sets/lists/modules/mi            |    6 +-
 etc/mtree/NetBSD.dist.base               |    4 +-
 lib/Makefile                             |    3 +-
 lib/libnpf/npf.c                         |  104 ++++++++---
 lib/libnpf/npf.h                         |   19 +-
 lib/npf/Makefile                         |   11 +
 lib/npf/Makefile.inc                     |    8 +
 lib/npf/ext_log/Makefile                 |   13 +
 lib/npf/ext_log/npfext_log.c             |   75 +++++++++
 lib/npf/ext_log/shlib_version            |    4 +
 lib/npf/ext_normalise/Makefile           |   13 +
 lib/npf/ext_normalise/npfext_normalise.c |  100 ++++++++++++
 lib/npf/ext_normalise/shlib_version      |    4 +
 sys/modules/Makefile                     |    4 +-
 sys/modules/npf/Makefile                 |    4 +-
 sys/modules/npf_ext_log/Makefile         |   11 +
 sys/modules/npf_ext_normalise/Makefile   |   11 +
 sys/net/npf/files.npf                    |    7 +-
 sys/net/npf/npf.c                        |   18 +-
 sys/net/npf/npf.h                        |   52 ++++-
 sys/net/npf/npf_ctl.c                    |   83 ++++++---
 sys/net/npf/npf_ext_log.c                |  254 ++++++++++++++++++++++++++++++
 sys/net/npf/npf_ext_normalise.c          |  255 +++++++++++++++++++++++++++++++
 sys/net/npf/npf_handler.c                |    9 +-
 sys/net/npf/npf_impl.h                   |   14 +-
 sys/net/npf/npf_inet.c                   |  118 +--------------
 sys/net/npf/npf_log.c                    |  180 ---------------------
 sys/net/npf/npf_rproc.c                  |  231 ++++++++++++++++++++++-----
 sys/rump/net/lib/libnpf/Makefile         |   10 +-
 usr.sbin/npf/npfctl/Makefile             |    8 +-
 usr.sbin/npf/npfctl/npf_build.c          |   81 +++------
 usr.sbin/npf/npfctl/npf_extmod.c         |  127 +++++++++++++++
 usr.sbin/npf/npfctl/npf_parse.y          |   75 ++++-----
 usr.sbin/npf/npfctl/npf_scan.l           |   10 +-
 usr.sbin/npf/npfctl/npf_var.h            |   32 ++-
 usr.sbin/npf/npfctl/npfctl.c             |    8 +-
 usr.sbin/npf/npfctl/npfctl.h             |   28 ++-
 41 files changed, 1440 insertions(+), 579 deletions(-)

diffs (truncated from 2905 to 300 lines):

diff -r 87512770a550 -r 406ed517292d distrib/sets/lists/base/mi
--- a/distrib/sets/lists/base/mi        Sun Nov 18 22:09:46 2012 +0000
+++ b/distrib/sets/lists/base/mi        Sun Nov 18 22:38:24 2012 +0000
@@ -1,4 +1,4 @@
-# $NetBSD: mi,v 1.984.2.10 2012/10/01 20:15:34 riz Exp $
+# $NetBSD: mi,v 1.984.2.11 2012/11/18 22:38:30 riz Exp $
 #
 # Note:        Don't delete entries from here - mark them as "obsolete" instead,
 #      unless otherwise stated below.
@@ -932,6 +932,7 @@
 ./usr/lib/runemodule/libEUC.so.3               base-obsolete           obsolete
 ./usr/lib/runemodule/libEUC.so.3.0             base-obsolete           obsolete
 ./usr/lib/runemodule/libEUCTW.a                        base-obsolete           obsolete
+./usr/lib/npf                                  base-sys-usr
 ./usr/lib/runemodule/libEUCTW.so               base-obsolete           obsolete
 ./usr/lib/runemodule/libEUCTW.so.3             base-obsolete           obsolete
 ./usr/lib/runemodule/libEUCTW.so.3.0           base-obsolete           obsolete
@@ -975,6 +976,7 @@
 ./usr/libdata/firmware/radeon/CEDAR_pfp.bin    base-firmware-usr
 ./usr/libdata/firmware/radeon/CEDAR_rlc.bin    base-firmware-usr
 ./usr/libdata/firmware/radeon/CYPRESS_me.bin   base-firmware-usr
+./usr/libdata/debug/usr/lib/npf                        base-sys-usr
 ./usr/libdata/firmware/radeon/CYPRESS_pfp.bin  base-firmware-usr
 ./usr/libdata/firmware/radeon/CYPRESS_rlc.bin  base-firmware-usr
 ./usr/libdata/firmware/radeon/JUNIPER_me.bin   base-firmware-usr
diff -r 87512770a550 -r 406ed517292d distrib/sets/lists/base/shl.mi
--- a/distrib/sets/lists/base/shl.mi    Sun Nov 18 22:09:46 2012 +0000
+++ b/distrib/sets/lists/base/shl.mi    Sun Nov 18 22:38:24 2012 +0000
@@ -1,4 +1,4 @@
-# $NetBSD: shl.mi,v 1.616.2.5 2012/09/17 19:00:25 riz Exp $
+# $NetBSD: shl.mi,v 1.616.2.6 2012/11/18 22:38:29 riz Exp $
 #
 # Note:        Don't delete entries from here - mark them as "obsolete" instead,
 #      unless otherwise stated below.
@@ -713,6 +713,12 @@
 ./usr/lib/libzpool_pic.a                       base-zfs-shlib          zfs,dynamicroot
 ./usr/lib/lua/5.1/gpio.so                      base-sys-shlib
 ./usr/lib/lua/5.1/sqlite.so                            base-sys-shlib
+./usr/lib/npf/ext_log.so                       base-npf-shlib          npf
+./usr/lib/npf/ext_log.so.0                     base-npf-shlib          npf
+./usr/lib/npf/ext_log.so.0.0                   base-npf-shlib          npf
+./usr/lib/npf/ext_normalise.so                 base-npf-shlib          npf
+./usr/lib/npf/ext_normalise.so.0               base-npf-shlib          npf
+./usr/lib/npf/ext_normalise.so.0.0             base-npf-shlib          npf
 ./usr/lib/nss_mdns.so.0                                base-obsolete           obsolete
 ./usr/lib/nss_mdnsd.so.0                       base-mdns-shlib         mdns
 ./usr/lib/nss_multicast_dns.so.0               base-mdns-shlib         mdns
@@ -726,6 +732,12 @@
 ./usr/lib/security/pam_guest.so.3              base-sys-shlib          pam
 ./usr/lib/security/pam_krb5.so.3               base-sys-shlib          kerberos,pam
 ./usr/lib/security/pam_ksu.so.3                        base-sys-shlib          kerberos,pam
+./usr/lib/npf/ext_log.so                       base-npf-shlib          npf
+./usr/lib/npf/ext_log.so.0                     base-npf-shlib          npf
+./usr/lib/npf/ext_log.so.0.0                   base-npf-shlib          npf
+./usr/lib/npf/ext_normalise.so                 base-npf-shlib          npf
+./usr/lib/npf/ext_normalise.so.0               base-npf-shlib          npf
+./usr/lib/npf/ext_normalise.so.0.0             base-npf-shlib          npf
 ./usr/lib/security/pam_lastlog.so.3            base-sys-shlib          pam
 ./usr/lib/security/pam_login_access.so.3       base-sys-shlib          pam
 ./usr/lib/security/pam_nologin.so.3            base-sys-shlib          pam
diff -r 87512770a550 -r 406ed517292d distrib/sets/lists/comp/mi
--- a/distrib/sets/lists/comp/mi        Sun Nov 18 22:09:46 2012 +0000
+++ b/distrib/sets/lists/comp/mi        Sun Nov 18 22:38:24 2012 +0000
@@ -1,4 +1,4 @@
-#      $NetBSD: mi,v 1.1738.2.7 2012/09/17 19:00:28 riz Exp $
+#      $NetBSD: mi,v 1.1738.2.8 2012/11/18 22:38:33 riz Exp $
 #
 # Note: don't delete entries from here - mark them as "obsolete" instead.
 #
@@ -3713,6 +3713,7 @@
 ./usr/libdata/debug/usr/bin/mkfifo.debug       comp-util-debug         debug
 ./usr/libdata/debug/usr/bin/mklocale.debug     comp-locale-debug       debug
 ./usr/libdata/debug/usr/bin/mkstr.debug                comp-c-debug            debug
+./usr/libdata/debug/usr/bin/lzf.debug          comp-util-debug         debug
 ./usr/libdata/debug/usr/bin/mktemp.debug       comp-util-debug         debug
 ./usr/libdata/debug/usr/bin/mkubootimage.debug comp-util-debug         debug
 ./usr/libdata/debug/usr/bin/modstat.debug      comp-obsolete           obsolete
diff -r 87512770a550 -r 406ed517292d distrib/sets/lists/comp/shl.mi
--- a/distrib/sets/lists/comp/shl.mi    Sun Nov 18 22:09:46 2012 +0000
+++ b/distrib/sets/lists/comp/shl.mi    Sun Nov 18 22:38:24 2012 +0000
@@ -1,4 +1,4 @@
-# $NetBSD: shl.mi,v 1.209.2.5 2012/09/17 19:00:32 riz Exp $
+# $NetBSD: shl.mi,v 1.209.2.6 2012/11/18 22:38:32 riz Exp $
 #
 # Note: don't delete entries from here - mark them as "obsolete" instead.
 #
@@ -425,3 +425,5 @@
 ./usr/libdata/debug/usr/lib/libz.so.1.0.debug          comp-sys-debug  debug
 ./usr/libdata/debug/usr/lib/libzfs.so.0.0.debug                comp-zfs-debug  zfs,dynamicroot,debug
 ./usr/libdata/debug/usr/lib/libzpool.so.0.0.debug      comp-zfs-debug  zfs,dynamicroot,debug
+./usr/libdata/debug/usr/lib/npf/libext_log.so.0.0.debug        comp-sys-debug  debug,npf
+./usr/libdata/debug/usr/lib/npf/libext_normalise.so.0.0.debug  comp-sys-debug  debug,npf
diff -r 87512770a550 -r 406ed517292d distrib/sets/lists/modules/mi
--- a/distrib/sets/lists/modules/mi     Sun Nov 18 22:09:46 2012 +0000
+++ b/distrib/sets/lists/modules/mi     Sun Nov 18 22:38:24 2012 +0000
@@ -1,4 +1,4 @@
-# $NetBSD: mi,v 1.39 2011/12/05 02:04:34 jym Exp $
+# $NetBSD: mi,v 1.39.2.1 2012/11/18 22:38:25 riz Exp $
 #
 # Note: don't delete entries from here - mark them as "obsolete" instead.
 #
@@ -115,6 +115,10 @@
 ./@MODULEDIR@/ntfs/ntfs.kmod                   base-kernel-modules     kmod
 ./@MODULEDIR@/null                             base-kernel-modules     kmod
 ./@MODULEDIR@/null/null.kmod                   base-kernel-modules     kmod
+./@MODULEDIR@/npf_ext_log                      base-kernel-modules     kmod
+./@MODULEDIR@/npf_ext_log/npf_ext_log.kmod     base-kernel-modules     kmod
+./@MODULEDIR@/npf_ext_normalise                        base-kernel-modules     kmod
+./@MODULEDIR@/npf_ext_normalise/npf_ext_normalise.kmod base-kernel-modules     kmod
 ./@MODULEDIR@/onewire                          base-kernel-modules     kmod
 ./@MODULEDIR@/onewire/onewire.kmod             base-kernel-modules     kmod
 ./@MODULEDIR@/overlay                          base-kernel-modules     kmod
diff -r 87512770a550 -r 406ed517292d etc/mtree/NetBSD.dist.base
--- a/etc/mtree/NetBSD.dist.base        Sun Nov 18 22:09:46 2012 +0000
+++ b/etc/mtree/NetBSD.dist.base        Sun Nov 18 22:38:24 2012 +0000
@@ -1,4 +1,4 @@
-#      $NetBSD: NetBSD.dist.base,v 1.97.2.4 2012/10/01 20:15:36 riz Exp $
+#      $NetBSD: NetBSD.dist.base,v 1.97.2.5 2012/11/18 22:38:37 riz Exp $
 #      @(#)4.4BSD.dist 8.1 (Berkeley) 6/13/93
 
 # Do not customize this file as it may be overwritten on upgrades.
@@ -195,6 +195,7 @@
 ./usr/lib/lua/5.1
 ./usr/lib/pkgconfig
 ./usr/lib/security
+./usr/lib/npf
 ./usr/libdata
 ./usr/libdata/debug
 ./usr/libdata/debug/bin
@@ -207,6 +208,7 @@
 ./usr/libdata/debug/usr/lib/i18n
 ./usr/libdata/debug/usr/libexec
 ./usr/libdata/debug/usr/libexec/ching
+./usr/libdata/debug/usr/lib/npf
 ./usr/libdata/debug/usr/libexec/lpr
 ./usr/libdata/debug/usr/libexec/postfix
 ./usr/libdata/debug/usr/mdec
diff -r 87512770a550 -r 406ed517292d lib/Makefile
--- a/lib/Makefile      Sun Nov 18 22:09:46 2012 +0000
+++ b/lib/Makefile      Sun Nov 18 22:38:24 2012 +0000
@@ -1,4 +1,4 @@
-#      $NetBSD: Makefile,v 1.181.2.1 2012/03/02 18:27:53 riz Exp $
+#      $NetBSD: Makefile,v 1.181.2.2 2012/11/18 22:38:32 riz Exp $
 #      from: @(#)Makefile      5.25.1.1 (Berkeley) 5/7/91
 
 .include <bsd.own.mk>
@@ -110,6 +110,7 @@
 SUBDIR+=       libnpf          # depends on libprop
 .endif
 
+SUBDIR+=       npf
 .if (${MKCRYPTO} != "no")
 SUBDIR+=       ../crypto/external/bsd/openssl/lib # depends on libcrypt
 .endif
diff -r 87512770a550 -r 406ed517292d lib/libnpf/npf.c
--- a/lib/libnpf/npf.c  Sun Nov 18 22:09:46 2012 +0000
+++ b/lib/libnpf/npf.c  Sun Nov 18 22:38:24 2012 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: npf.c,v 1.7.2.5 2012/08/19 17:40:31 riz Exp $  */
+/*     $NetBSD: npf.c,v 1.7.2.6 2012/11/18 22:38:25 riz Exp $  */
 
 /*-
  * Copyright (c) 2010-2012 The NetBSD Foundation, Inc.
@@ -30,7 +30,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: npf.c,v 1.7.2.5 2012/08/19 17:40:31 riz Exp $");
+__KERNEL_RCSID(0, "$NetBSD: npf.c,v 1.7.2.6 2012/11/18 22:38:25 riz Exp $");
 
 #include <sys/types.h>
 #include <netinet/in_systm.h>
@@ -78,6 +78,11 @@
        prop_dictionary_t       ntl_dict;
 };
 
+struct nl_ext {
+       const char *            nxt_name;
+       prop_dictionary_t       nxt_dict;
+};
+
 /*
  * CONFIGURATION INTERFACE.
  */
@@ -250,6 +255,43 @@
 }
 
 /*
+ * NPF EXTENSION INTERFACE.
+ */
+
+nl_ext_t *
+npf_ext_construct(const char *name)
+{
+       nl_ext_t *ext;
+
+       ext = malloc(sizeof(*ext));
+       if (ext == NULL) {
+               return NULL;
+       }
+       ext->nxt_name = strdup(name);
+       if (ext->nxt_name == NULL) {
+               free(ext);
+               return NULL;
+       }
+       ext->nxt_dict = prop_dictionary_create();
+
+       return ext;
+}
+
+void
+npf_ext_param_u32(nl_ext_t *ext, const char *key, uint32_t val)
+{
+       prop_dictionary_t extdict = ext->nxt_dict;
+       prop_dictionary_set_uint32(extdict, key, val);
+}
+
+void
+npf_ext_param_bool(nl_ext_t *ext, const char *key, bool val)
+{
+       prop_dictionary_t extdict = ext->nxt_dict;
+       prop_dictionary_set_bool(extdict, key, val);
+}
+
+/*
  * RULE INTERFACE.
  */
 
@@ -367,6 +409,7 @@
 
                subrules = prop_dictionary_get(rldict, "subrules");
                (void)_npf_rule_foreach1(subrules, nlevel + 1, func);
+               prop_object_release(subrules);
        }
        prop_object_iterator_release(it);
        return 0;
@@ -428,6 +471,7 @@
 npf_rproc_create(const char *name)
 {
        prop_dictionary_t rpdict;
+       prop_array_t extcalls;
        nl_rproc_t *nrp;
 
        nrp = malloc(sizeof(nl_rproc_t));
@@ -440,10 +484,36 @@
                return NULL;
        }
        prop_dictionary_set_cstring(rpdict, "name", name);
+
+       extcalls = prop_array_create();
+       if (extcalls == NULL) {
+               prop_object_release(rpdict);
+               free(nrp);
+               return NULL;
+       }
+       prop_dictionary_set(rpdict, "extcalls", extcalls);
+       prop_object_release(extcalls);
+
        nrp->nrp_dict = rpdict;
        return nrp;
 }
 
+int
+npf_rproc_extcall(nl_rproc_t *rp, nl_ext_t *ext)
+{
+       prop_dictionary_t rpdict = rp->nrp_dict;
+       prop_dictionary_t extdict = ext->nxt_dict;
+       prop_array_t extcalls;
+
+       extcalls = prop_dictionary_get(rpdict, "extcalls");
+       if (_npf_prop_array_lookup(extcalls, "name", ext->nxt_name)) {
+               return EEXIST;
+       }
+       prop_dictionary_set_cstring(extdict, "name", ext->nxt_name);
+       prop_array_add(extcalls, extdict);
+       return 0;
+}
+
 bool
 npf_rproc_exists_p(nl_config_t *ncf, const char *name)
 {
@@ -452,36 +522,6 @@
 }
 
 int
-_npf_rproc_setnorm(nl_rproc_t *rp, bool rnd, bool no_df, u_int minttl,
-    u_int maxmss)
-{
-       prop_dictionary_t rpdict = rp->nrp_dict;
-       uint32_t fl = 0;
-
-       prop_dictionary_set_bool(rpdict, "randomize-id", rnd);
-       prop_dictionary_set_bool(rpdict, "no-df", no_df);
-       prop_dictionary_set_uint32(rpdict, "min-ttl", minttl);
-       prop_dictionary_set_uint32(rpdict, "max-mss", maxmss);
-
-       prop_dictionary_get_uint32(rpdict, "flags", &fl);
-       prop_dictionary_set_uint32(rpdict, "flags", fl | NPF_RPROC_NORMALIZE);
-       return 0;
-}



Home | Main Index | Thread Index | Old Index