| /netbsd-src/sys/net/npf/ |
| H A D | files.npf | 1 # $NetBSD: files.npf,v 1.23 2020/05/30 14:16:56 rmind Exp $ 10 defpseudo npf: ifnet, libnv 13 file net/npf/npf.c npf 14 file net/npf/npf_conf.c npf 15 file net/npf/npf_ctl.c npf 16 file net/npf/npf_handler.c npf 17 file net/npf/npf_mbuf.c npf 18 file net/npf/npf_bpf.c npf 19 file net/npf/npf_params.c npf 20 file net/npf/npf_ruleset.c npf [all …]
|
| H A D | npf_if.c | 74 #define NPF_IFMAP_SLOT2ID(npf, slot) ((npf)->ifmap_off + (slot) + 1) argument 75 #define NPF_IFMAP_ID2SLOT(npf, id) \ argument 76 ((id) - atomic_load_relaxed(&(npf)->ifmap_off) - 1) 79 npf_ifmap_init(npf_t *npf, const npf_ifops_t *ifops) in npf_ifmap_init() argument 84 ifops->flush(npf, (void *)(uintptr_t)0); in npf_ifmap_init() 86 mutex_init(&npf->ifmap_lock, MUTEX_DEFAULT, IPL_SOFTNET); in npf_ifmap_init() 87 npf->ifmap = kmem_zalloc(nbytes, KM_SLEEP); in npf_ifmap_init() 88 npf->ifmap_cnt = 0; in npf_ifmap_init() 89 npf->ifmap_off = 0; in npf_ifmap_init() 90 npf->ifops = ifops; in npf_ifmap_init() [all …]
|
| H A D | npf_conf.c | 64 npf_config_init(npf_t *npf) in npf_config_init() argument 68 mutex_init(&npf->config_lock, MUTEX_DEFAULT, IPL_SOFTNET); in npf_config_init() 80 npf_config_load(npf, nc, NULL, true); in npf_config_init() 81 KASSERT(npf->config != NULL); in npf_config_init() 113 npf_config_fini(npf_t *npf) in npf_config_fini() argument 118 mutex_enter(&npf->config_lock); in npf_config_fini() 119 npf_conn_tracking(npf, false); in npf_config_fini() 120 npf_ebr_full_sync(npf->ebr); in npf_config_fini() 121 npf_conn_load(npf, cd, false); in npf_config_fini() 122 npf_ifmap_flush(npf); in npf_config_fini() [all …]
|
| H A D | npf.c | 78 npf_t *npf; in npfk_create() local 80 npf = kmem_zalloc(sizeof(npf_t), KM_SLEEP); in npfk_create() 81 npf->ebr = npf_ebr_create(); in npfk_create() 82 npf->stats_percpu = percpu_alloc(NPF_STATS_SIZE); in npfk_create() 83 npf->mbufops = mbufops; in npfk_create() 84 npf->arg = arg; in npfk_create() 86 npf_param_init(npf); in npfk_create() 87 npf_state_sysinit(npf); in npfk_create() 88 npf_ifmap_init(npf, ifops); in npfk_create() 89 npf_conn_init(npf); in npfk_create() [all …]
|
| H A D | npf_alg.c | 71 npf_alg_init(npf_t *npf) in npf_alg_init() argument 76 npf->algset = aset; in npf_alg_init() 80 npf_alg_fini(npf_t *npf) in npf_alg_fini() argument 82 npf_algset_t *aset = npf->algset; in npf_alg_fini() 88 npf_alg_lookup(npf_t *npf, const char *name) in npf_alg_lookup() argument 90 npf_algset_t *aset = npf->algset; in npf_alg_lookup() 92 KASSERT(npf_config_locked_p(npf)); in npf_alg_lookup() 105 npf_alg_construct(npf_t *npf, const char *name) in npf_alg_construct() argument 109 npf_config_enter(npf); in npf_alg_construct() 110 if ((alg = npf_alg_lookup(npf, name)) == NULL) { in npf_alg_construct() [all …]
|
| H A D | npf_worker.c | 51 LIST_HEAD(, npf) instances; 132 npf_worker_addfunc(npf_t *npf, npf_workfunc_t work) in npf_worker_addfunc() argument 134 KASSERTMSG(npf->worker_flags == 0, in npf_worker_addfunc() 138 if (npf->worker_funcs[i] == NULL) { in npf_worker_addfunc() 139 npf->worker_funcs[i] = work; in npf_worker_addfunc() 147 npf_worker_signal(npf_t *npf) in npf_worker_signal() argument 151 if ((npf->worker_flags & WFLAG_ACTIVE) == 0) { in npf_worker_signal() 165 npf_worker_enlist(npf_t *npf) in npf_worker_enlist() argument 169 KASSERT(npf->worker_flags == 0); in npf_worker_enlist() 175 LIST_INSERT_HEAD(&winfo->instances, npf, worker_entry); in npf_worker_enlist() [all …]
|
| H A D | npf_conn.c | 149 npf_conn_init(npf_t *npf) in npf_conn_init() argument 151 npf_conn_params_t *params = npf_param_allocgroup(npf, in npf_conn_init() 167 npf_param_register(npf, param_map, __arraycount(param_map)); in npf_conn_init() 169 npf->conn_cache[0] = pool_cache_init( in npf_conn_init() 172 npf->conn_cache[1] = pool_cache_init( in npf_conn_init() 176 mutex_init(&npf->conn_lock, MUTEX_DEFAULT, IPL_NONE); in npf_conn_init() 177 atomic_store_relaxed(&npf->conn_tracking, CONN_TRACKING_OFF); in npf_conn_init() 178 npf->conn_db = npf_conndb_create(); in npf_conn_init() 179 npf_conndb_sysinit(npf); in npf_conn_init() 181 npf_worker_addfunc(npf, npf_conn_worker); in npf_conn_init() [all …]
|
| H A D | npf_os.c | 81 MODULE(MODULE_CLASS_MISC, npf, "bpf"); 84 MODULE(MODULE_CLASS_DRIVER, npf, "bpf"); 137 npf_t *npf = npf_getkernctx(); in npf_fini() local 144 npfk_destroy(npf); in npf_fini() 152 npf_t *npf; in npf_init() local 158 npf = npfk_create(0, NULL, &kern_ifops, NULL); in npf_init() 159 npf_setkernctx(npf); in npf_init() 222 npf_stats_export(npf_t *npf, void *data) in npf_stats_export() argument 228 npfk_stats(npf, fullst); /* will zero the buffer */ in npf_stats_export() 257 npf_t *npf = npf_getkernctx(); in npf_dev_ioctl() local [all …]
|
| H A D | npf_ctl.c | 55 npf_mk_params(npf_t *npf, const nvlist_t *req, nvlist_t *resp, bool set) in npf_mk_params() argument 75 error = npfk_param_set(npf, name, val); in npf_mk_params() 81 error = npf_param_check(npf, name, val); in npf_mk_params() 142 npf_mk_table(npf_t *npf, const nvlist_t *req, nvlist_t *resp, in npf_mk_table() argument 196 npf_mk_tables(npf_t *npf, const nvlist_t *req, nvlist_t *resp, npf_config_t *nc) in npf_mk_tables() argument 218 error = npf_mk_table(npf, table, resp, tblset, &t, 0); in npf_mk_tables() 231 npf_mk_singlerproc(npf_t *npf, const nvlist_t *rproc, nvlist_t *resp) in npf_mk_singlerproc() argument 250 if (!name || npf_ext_construct(npf, name, rp, extcall)) { in npf_mk_singlerproc() 261 npf_mk_rprocs(npf_t *npf, const nvlist_t *req, nvlist_t *resp, npf_config_t *nc) in npf_mk_rprocs() argument 283 if ((rp = npf_mk_singlerproc(npf, rproc, resp)) == NULL) { in npf_mk_rprocs() [all …]
|
| H A D | npf_params.c | 53 npf_param_general_register(npf_t *npf) in npf_param_general_register() argument 58 &npf->ip4_reassembly, in npf_param_general_register() 64 &npf->ip6_reassembly, in npf_param_general_register() 69 npf_param_register(npf, param_map, __arraycount(param_map)); in npf_param_general_register() 90 npf_param_init(npf_t *npf) in npf_param_init() argument 96 npf->paraminfo = paraminfo; in npf_param_init() 99 npf_param_general_register(npf); in npf_param_init() 103 npf_param_fini(npf_t *npf) in npf_param_fini() argument 105 npf_paraminfo_t *pinfo = npf->paraminfo; in npf_param_fini() 135 npf_params_export(const npf_t *npf, nvlist_t *nv) in npf_params_export() argument [all …]
|
| H A D | npf_ifaddr.c | 50 lookup_ifnet_table(npf_t *npf, ifnet_t *ifp) in lookup_ifnet_table() argument 52 const npf_ifops_t *ifops = npf->ifops; in lookup_ifnet_table() 60 ifname = ifops->getname(npf, ifp); in lookup_ifnet_table() 64 nc = npf_config_enter(npf); in lookup_ifnet_table() 82 npf_config_exit(npf); in lookup_ifnet_table() 88 replace_ifnet_table(npf_t *npf, npf_table_t *newt) in replace_ifnet_table() argument 90 npf_tableset_t *ts = atomic_load_relaxed(&npf->config)->tableset; in replace_ifnet_table() 93 KASSERT(npf_config_locked_p(npf)); in replace_ifnet_table() 101 npf_config_sync(npf); in replace_ifnet_table() 102 npf_config_exit(npf); in replace_ifnet_table() [all …]
|
| H A D | npf_handler.c | 71 #define m_freem(m) npf->mbufops->free(m) 82 npf_reassembly(npf_t *npf, npf_cache_t *npc, bool *mff) in npf_reassembly() argument 91 if (npf_iscached(npc, NPC_IP4) && npf->ip4_reassembly) { in npf_reassembly() 93 } else if (npf_iscached(npc, NPC_IP6) && npf->ip6_reassembly) { in npf_reassembly() 105 npf_stats_inc(npf, NPF_STAT_REASSFAIL); in npf_reassembly() 112 npf_stats_inc(npf, NPF_STAT_FRAGMENTS); in npf_reassembly() 121 nbuf_init(npf, nbuf, m, nbuf->nb_ifp); in npf_reassembly() 127 npf_stats_inc(npf, NPF_STAT_REASSEMBLY); in npf_reassembly() 144 npfk_packet_handler(npf_t *npf, struct mbuf **mp, ifnet_t *ifp, int di) in npfk_packet_handler() argument 161 nbuf_init(npf, &nbuf, *mp, ifp); in npfk_packet_handler() [all …]
|
| H A D | npf_rproc.c | 81 npf_ext_init(npf_t *npf) in npf_ext_init() argument 83 mutex_init(&npf->ext_lock, MUTEX_DEFAULT, IPL_NONE); in npf_ext_init() 84 LIST_INIT(&npf->ext_list); in npf_ext_init() 88 npf_ext_fini(npf_t *npf) in npf_ext_fini() argument 90 KASSERT(LIST_EMPTY(&npf->ext_list)); in npf_ext_fini() 91 mutex_destroy(&npf->ext_lock); in npf_ext_fini() 102 npf_ext_lookup(npf_t *npf, const char *name, bool autoload) in npf_ext_lookup() argument 108 KASSERT(mutex_owned(&npf->ext_lock)); in npf_ext_lookup() 111 LIST_FOREACH(ext, &npf->ext_list, ext_entry) in npf_ext_lookup() 118 mutex_exit(&npf->ext_lock); in npf_ext_lookup() [all …]
|
| H A D | npf_conndb.c | 100 npf_conndb_sysinit(npf_t *npf) in npf_conndb_sysinit() argument 102 npf_conndb_params_t *params = npf_param_allocgroup(npf, in npf_conndb_sysinit() 124 npf_param_register(npf, param_map, __arraycount(param_map)); in npf_conndb_sysinit() 128 npf_conndb_sysfini(npf_t *npf) in npf_conndb_sysfini() argument 131 npf_param_freegroup(npf, NPF_PARAMS_CONNDB, len); in npf_conndb_sysfini() 164 npf_conndb_lookup(npf_t *npf, const npf_connkey_t *ck, npf_flow_t *flow) in npf_conndb_lookup() argument 166 npf_conndb_t *cd = atomic_load_relaxed(&npf->conn_db); in npf_conndb_lookup() 174 int s = npf_config_read_enter(npf); in npf_conndb_lookup() 177 npf_config_read_exit(npf, s); in npf_conndb_lookup() 193 npf_config_read_exit(npf, s); in npf_conndb_lookup() [all …]
|
| H A D | npf_state.c | 92 npf_state_sysinit(npf_t *npf) in npf_state_sysinit() argument 94 npf_state_params_t *params = npf_param_allocgroup(npf, in npf_state_sysinit() 125 npf_param_register(npf, param_map, __arraycount(param_map)); in npf_state_sysinit() 126 npf_state_tcp_sysinit(npf); in npf_state_sysinit() 130 npf_state_sysfini(npf_t *npf) in npf_state_sysfini() argument 133 npf_param_freegroup(npf, NPF_PARAMS_GENERIC_STATE, len); in npf_state_sysfini() 134 npf_state_tcp_sysfini(npf); in npf_state_sysfini() 216 npf_state_etime(npf_t *npf, const npf_state_t *nst, const int proto) in npf_state_etime() argument 225 timeout = npf_state_tcp_timeout(npf, nst); in npf_state_etime() 230 params = npf->params[NPF_PARAMS_GENERIC_STATE]; in npf_state_etime() [all …]
|
| H A D | npf_ext_rndblock.c | 138 npf_ext_rndblock_init(npf_t *npf) in npf_ext_rndblock_init() argument 152 npf_ext_rndblock_id = npf_ext_register(npf, "rndblock", in npf_ext_rndblock_init() 158 npf_ext_rndblock_fini(npf_t *npf) in npf_ext_rndblock_fini() argument 164 return npf_ext_unregister(npf, npf_ext_rndblock_id); in npf_ext_rndblock_fini() 174 npf_t *npf = npf_getkernctx(); in npf_ext_rndblock_modcmd() local 178 return npf_ext_rndblock_init(npf); in npf_ext_rndblock_modcmd() 180 return npf_ext_rndblock_fini(npf); in npf_ext_rndblock_modcmd()
|
| H A D | npf_ext_log.c | 155 npf_ext_log_init(npf_t *npf) in npf_ext_log_init() argument 164 npf_ext_log_id = npf_ext_register(npf, "log", &npf_log_ops); in npf_ext_log_init() 169 npf_ext_log_fini(npf_t *npf) in npf_ext_log_fini() argument 171 return npf_ext_unregister(npf, npf_ext_log_id); in npf_ext_log_fini() 178 npf_t *npf = npf_getkernctx(); in npf_ext_log_modcmd() local 182 return npf_ext_log_init(npf); in npf_ext_log_modcmd() 184 return npf_ext_log_fini(npf); in npf_ext_log_modcmd()
|
| H A D | npf_nat.c | 180 npf_natpolicy_create(npf_t *npf, const nvlist_t *nat, npf_ruleset_t *rset) in npf_natpolicy_create() argument 188 np->n_npfctx = npf; in npf_natpolicy_create() 415 npf_t *npf = npc->npc_ctx; in npf_nat_inspect() local 416 int slock = npf_config_read_enter(npf); in npf_nat_inspect() 417 npf_ruleset_t *rlset = npf_config_natset(npf); in npf_nat_inspect() 423 npf_config_read_exit(npf, slock); in npf_nat_inspect() 428 npf_config_read_exit(npf, slock); in npf_nat_inspect() 482 npf_t *npf = npc->npc_ctx; in npf_nat_create() local 494 npf_stats_inc(npf, NPF_STAT_NAT_CREATE); in npf_nat_create() 513 int slock = npf_config_read_enter(npf); in npf_nat_create() [all …]
|
| H A D | npf_ext_normalize.c | 208 npf_ext_normalize_init(npf_t *npf) in npf_ext_normalize_init() argument 217 npf_ext_normalize_id = npf_ext_register(npf, in npf_ext_normalize_init() 223 npf_ext_normalize_fini(npf_t *npf) in npf_ext_normalize_fini() argument 225 return npf_ext_unregister(npf, npf_ext_normalize_id); in npf_ext_normalize_fini() 232 npf_t *npf = npf_getkernctx(); in npf_ext_normalize_modcmd() local 236 return npf_ext_normalize_init(npf); in npf_ext_normalize_modcmd() 238 return npf_ext_unregister(npf, npf_ext_normalize_id); in npf_ext_normalize_modcmd()
|
| /netbsd-src/usr.sbin/npf/npftest/libnpftest/ |
| H A D | npf_gc_test.c | 68 npf_t *npf = npf_getkernctx(); in run_conn_gc() local 72 npf->conn_db = cd; in run_conn_gc() 97 npf_conndb_gc(npf, cd, false, false); in run_conn_gc() 105 npf_conndb_gc(npf, cd, true, false); in run_conn_gc() 107 npf->conn_db = NULL; in run_conn_gc() 158 run_conndb_tests(npf_t *npf) in run_conndb_tests() argument 160 npf_conndb_t *orig_cd = npf->conn_db; in run_conndb_tests() 163 npf_config_enter(npf); in run_conndb_tests() 164 npf_conn_tracking(npf, true); in run_conndb_tests() 165 npf_config_exit(npf); in run_conndb_tests() [all …]
|
| H A D | npf_test_subr.c | 65 npf_t *npf; in npf_test_init() local 69 if ((npf = npf_getkernctx()) != NULL) { in npf_test_init() 70 npf_worker_discharge(npf); in npf_test_init() 74 npf = npfk_create(0, &npftest_mbufops, &npftest_ifops, NULL); in npf_test_init() 75 npfk_thread_register(npf); in npf_test_init() 76 npf_setkernctx(npf); in npf_test_init() 89 npf_t *npf = npf_getkernctx(); in npf_test_fini() local 91 npfk_thread_unregister(npf); in npf_test_fini() 92 npfk_destroy(npf); in npf_test_fini() 116 npf_t *npf = npf_getkernctx(); in npf_test_addif() local [all …]
|
| H A D | npf_rule_test.c | 200 npf_t *npf = npf_getkernctx(); 209 slock = npf_config_read_enter(npf); 210 rl = npf_ruleset_inspect(npc, npf_config_ruleset(npf), t->di, NPF_LAYER_3); 217 npf_config_read_exit(npf, slock); 228 npf_t *npf = npf_getkernctx(); 233 error = npfk_packet_handler(npf, &m, ifp, t->di); 243 npf_t *npf = npf_getkernctx(); 249 rl = npf_rule_alloc(npf, rule); 283 npf_t *npf = npf_getkernctx(); 296 npf_config_enter(npf); 62 npf_t *npf = npf_getkernctx(); run_raw_testcase() local 90 npf_t *npf = npf_getkernctx(); run_handler_testcase() local 105 npf_t *npf = npf_getkernctx(); npf_blockall_rule() local 145 npf_t *npf = npf_getkernctx(); test_dynamic() local [all...] |
| /netbsd-src/etc/rc.d/ |
| H A D | npf_boot | 19 if [ -f /etc/npf.boot.conf ]; then 20 /sbin/npfctl reload /etc/npf.boot.conf 21 elif [ -f /etc/defaults/npf.boot.conf ]; then 22 /sbin/npfctl reload /etc/defaults/npf.boot.conf 33 load_rc_config_var npf npf
|
| /netbsd-src/lib/npf/ |
| H A D | mod.mk | 15 LIBDIR= ${LIBROOTDIR}/${MLIBDIR}/npf 17 SHLIBINSTALLDIR=${LIBROOTDIR}/${MLIBDIR}/npf 19 LIBDIR= ${LIBROOTDIR}/npf 21 SHLIBINSTALLDIR=${LIBROOTDIR}/npf 25 SRCS= npf${MOD}.c 26 LIBDPLIBS+= npf ${NETBSDSRCDIR}/lib/libnpf
|
| /netbsd-src/usr.sbin/npf/npftest/ |
| H A D | README | 10 npfctl debug npftest.conf /tmp/npf.nvlist 11 npftest -c /tmp/npf.nvlist -t 16 npfctl debug npftest.conf /tmp/npf.nvlist 17 npftest -c /tmp/npf.nvlist -s stream.pcap > stream_npf_data.txt 23 npftest -b rule -c /tmp/npf.nvlist -p $ncpu 29 cd src/sys/net/npf
|