encaptab
struct encaptab;
const struct encaptab *gv_encap_cookie4;
const struct encaptab *gv_encap_cookie6;
const struct encaptab *iv_encap_cookie4;
const struct encaptab *iv_encap_cookie6;
const struct encaptab *lv_encap_cookie;
const struct encaptab *encap_cookie;
static struct encaptab *encap4_lookup(struct mbuf *, int, int, enum direction,
static struct encaptab *encap6_lookup(struct mbuf *, int, int, enum direction,
static int encap_add(struct encaptab *);
static int encap_remove(struct encaptab *);
} encaptab __cacheline_aligned = {
#define encap_table encaptab.list
encaptab.psz = pserialize_create();
encaptab.elem_class = psref_class_create("encapelem", IPL_SOFTNET);
static struct encaptab *
struct encaptab *ep, *match;
encaptab.elem_class);
encaptab.elem_class);
encaptab.elem_class);
encaptab.elem_class);
encaptab.elem_class);
PSLIST_READER_FOREACH(ep, &encap_table, struct encaptab, chain) {
encaptab.elem_class);
encaptab.elem_class);
encaptab.elem_class);
encaptab.elem_class);
encaptab.elem_class),
encaptab.elem_class);
struct encaptab *match;
encaptab.elem_class);
encaptab.elem_class);
static struct encaptab *
struct encaptab *ep, *match;
encaptab.elem_class);
encaptab.elem_class);
encaptab.elem_class);
encaptab.elem_class);
encaptab.elem_class);
PSLIST_READER_FOREACH(ep, &encap_table, struct encaptab, chain) {
encaptab.elem_class);
encaptab.elem_class);
encaptab.elem_class);
encaptab.elem_class);
encaptab.elem_class),
encaptab.elem_class);
struct encaptab *match;
encaptab.elem_class);
encaptab.elem_class);
encap_add(struct encaptab *ep)
encap_remove(struct encaptab *ep)
const struct encaptab *
struct encaptab *ep;
psref_target_init(&ep->psref, encaptab.elem_class);
const struct encaptab *
struct encaptab *ep;
psref_target_init(&ep->psref, encaptab.elem_class);
struct encaptab *ep;
struct encaptab *match;
encaptab.elem_class);
PSLIST_READER_FOREACH(ep, &encap_table, struct encaptab, chain) {
encaptab.elem_class);
encaptab.elem_class);
encap_detach_addr(const struct encaptab *ep)
struct encaptab *retep;
struct encaptab *target;
pserialize_perform(encaptab.psz);
psref_target_destroy(&target->psref, encaptab.elem_class);
encap_detach(const struct encaptab *cookie)
const struct encaptab *ep = cookie;
struct encaptab *p;
PSLIST_WRITER_FOREACH(p, &encap_table, struct encaptab, chain) {
pserialize_perform(encaptab.psz);
encaptab.elem_class);
const struct encaptab *encap_attach_func(int, int,
const struct encaptab *encap_attach_addr(int, int,
int encap_detach(const struct encaptab *);
struct encaptab;
const struct encaptab *v_encap_cookie;