Home | History | Annotate | Download | only in npf

Lines Matching defs:rlset

147 	npf_ruleset_t *rlset;
149 rlset = kmem_zalloc(len, KM_SLEEP);
150 LIST_INIT(&rlset->rs_dynamic);
151 LIST_INIT(&rlset->rs_all);
152 LIST_INIT(&rlset->rs_gc);
153 rlset->rs_slots = slots;
155 return rlset;
159 npf_ruleset_destroy(npf_ruleset_t *rlset)
161 size_t len = offsetof(npf_ruleset_t, rs_rules[rlset->rs_slots]);
164 while ((rl = LIST_FIRST(&rlset->rs_all)) != NULL) {
180 KASSERT(LIST_EMPTY(&rlset->rs_dynamic));
182 npf_ruleset_gc(rlset);
183 KASSERT(LIST_EMPTY(&rlset->rs_gc));
184 kmem_free(rlset, len);
191 npf_ruleset_insert(npf_ruleset_t *rlset, npf_rule_t *rl)
193 unsigned n = rlset->rs_nitems;
195 KASSERT(n < rlset->rs_slots);
197 LIST_INSERT_HEAD(&rlset->rs_all, rl, r_aentry);
199 LIST_INSERT_HEAD(&rlset->rs_dynamic, rl, r_dentry);
205 rlset->rs_rules[n] = rl;
206 rlset->rs_nitems++;
207 rl->r_id = ++rlset->rs_idcnt;
215 npf_ruleset_lookup(npf_ruleset_t *rlset, const char *name)
219 LIST_FOREACH(rl, &rlset->rs_dynamic, r_dentry) {
231 npf_ruleset_add(npf_ruleset_t *rlset, const char *rname, npf_rule_t *rl)
239 rg = npf_ruleset_lookup(rlset, rname);
245 rl->r_id = ++rlset->rs_idcnt;
286 LIST_INSERT_HEAD(&rlset->rs_all, rl, r_aentry);
307 npf_ruleset_remove(npf_ruleset_t *rlset, const char *rname, uint64_t id)
311 if ((rg = npf_ruleset_lookup(rlset, rname)) == NULL) {
321 LIST_INSERT_HEAD(&rlset->rs_gc, rl, r_aentry);
333 npf_ruleset_remkey(npf_ruleset_t *rlset, const char *rname,
340 if ((rg = npf_ruleset_lookup(rlset, rname)) == NULL) {
358 LIST_INSERT_HEAD(&rlset->rs_gc, rlast, r_aentry);
366 npf_ruleset_list(npf_t *npf, npf_ruleset_t *rlset, const char *rname,
373 if ((rg = npf_ruleset_lookup(rlset, rname)) == NULL) {
396 npf_ruleset_flush(npf_ruleset_t *rlset, const char *rname)
400 if ((rg = npf_ruleset_lookup(rlset, rname)) == NULL) {
412 LIST_INSERT_HEAD(&rlset->rs_gc, rl, r_aentry);
415 rlset->rs_idcnt = 0;
423 npf_ruleset_gc(npf_ruleset_t *rlset)
427 while ((rl = LIST_FIRST(&rlset->rs_gc)) != NULL) {
437 npf_ruleset_export(npf_t *npf, const npf_ruleset_t *rlset,
440 const unsigned nitems = rlset->rs_nitems;
447 const npf_rule_t *rl = rlset->rs_rules[n];
575 npf_ruleset_findnat(npf_ruleset_t *rlset, uint64_t id)
579 LIST_FOREACH(rl, &rlset->rs_all, r_aentry) {
593 npf_ruleset_freealg(npf_ruleset_t *rlset, npf_alg_t *alg)
598 LIST_FOREACH(rl, &rlset->rs_all, r_aentry) {
900 npf_ruleset_inspect(npf_cache_t *npc, const npf_ruleset_t *rlset,
905 const unsigned nitems = rlset->rs_nitems;
924 npf_rule_t *rl = rlset->rs_rules[n];
1069 npf_ruleset_t *rlset = npf_config_ruleset(npf);
1072 LIST_FOREACH(rg, &rlset->rs_dynamic, r_dentry) {