Lines Matching refs:family
89 unsigned short family) in xfrm_selector_match() argument
91 switch (family) { in xfrm_selector_match()
100 static struct xfrm_policy_afinfo *xfrm_policy_get_afinfo(unsigned short family) in xfrm_policy_get_afinfo() argument
104 if (unlikely(family >= NPROTO)) in xfrm_policy_get_afinfo()
107 afinfo = rcu_dereference(xfrm_policy_afinfo[family]); in xfrm_policy_get_afinfo()
122 int family) in __xfrm_dst_lookup() argument
127 afinfo = xfrm_policy_get_afinfo(family); in __xfrm_dst_lookup()
142 int family) in xfrm_dst_lookup() argument
158 dst = __xfrm_dst_lookup(net, tos, oif, saddr, daddr, family); in xfrm_dst_lookup()
356 unsigned short family, int dir, in __get_hash_thresh() argument
359 switch (family) { in __get_hash_thresh()
378 unsigned short family, int dir) in policy_hash_bysel() argument
385 __get_hash_thresh(net, family, dir, &dbits, &sbits); in policy_hash_bysel()
386 hash = __sel_hash(sel, family, hmask, dbits, sbits); in policy_hash_bysel()
396 unsigned short family, int dir) in policy_hash_direct() argument
403 __get_hash_thresh(net, family, dir, &dbits, &sbits); in policy_hash_direct()
404 hash = __addr_hash(daddr, saddr, family, hmask, dbits, sbits); in policy_hash_direct()
425 __get_hash_thresh(net, pol->family, dir, &dbits, &sbits); in xfrm_dst_hash_transfer()
427 pol->family, nhashmask, dbits, sbits); in xfrm_dst_hash_transfer()
631 policy->family, in xfrm_hash_rebuild()
757 chain = policy_hash_bysel(net, &policy->selector, policy->family, dir); in xfrm_policy_insert()
788 if (policy->family == AF_INET) in xfrm_policy_insert()
824 chain = policy_hash_bysel(net, sel, sel->family, dir); in xfrm_policy_bysel_ctx()
1072 u8 type, u16 family, int dir) in xfrm_policy_match() argument
1078 if (pol->family != family || in xfrm_policy_match()
1083 match = xfrm_selector_match(sel, fl, family); in xfrm_policy_match()
1093 u16 family, u8 dir) in xfrm_policy_lookup_bytype() argument
1101 daddr = xfrm_flowi_daddr(fl, family); in xfrm_policy_lookup_bytype()
1102 saddr = xfrm_flowi_saddr(fl, family); in xfrm_policy_lookup_bytype()
1107 chain = policy_hash_direct(net, daddr, saddr, family, dir); in xfrm_policy_lookup_bytype()
1110 err = xfrm_policy_match(pol, fl, type, family, dir); in xfrm_policy_lookup_bytype()
1129 err = xfrm_policy_match(pol, fl, type, family, dir); in xfrm_policy_lookup_bytype()
1151 __xfrm_policy_lookup(struct net *net, const struct flowi *fl, u16 family, u8 dir) in __xfrm_policy_lookup() argument
1156 pol = xfrm_policy_lookup_bytype(net, XFRM_POLICY_TYPE_SUB, fl, family, dir); in __xfrm_policy_lookup()
1160 return xfrm_policy_lookup_bytype(net, XFRM_POLICY_TYPE_MAIN, fl, family, dir); in __xfrm_policy_lookup()
1182 xfrm_policy_lookup(struct net *net, const struct flowi *fl, u16 family, in xfrm_policy_lookup() argument
1190 pol = __xfrm_policy_lookup(net, fl, family, flow_to_policy_dir(dir)); in xfrm_policy_lookup()
1399 xfrm_address_t *remote, unsigned short family) in xfrm_get_saddr() argument
1402 struct xfrm_policy_afinfo *afinfo = xfrm_policy_get_afinfo(family); in xfrm_get_saddr()
1415 struct xfrm_state **xfrm, unsigned short family) in xfrm_tmpl_resolve_one() argument
1420 xfrm_address_t *daddr = xfrm_flowi_daddr(fl, family); in xfrm_tmpl_resolve_one()
1421 xfrm_address_t *saddr = xfrm_flowi_saddr(fl, family); in xfrm_tmpl_resolve_one()
1444 x = xfrm_state_find(remote, local, fl, tmpl, policy, &error, family); in xfrm_tmpl_resolve_one()
1473 struct xfrm_state **xfrm, unsigned short family) in xfrm_tmpl_resolve() argument
1488 ret = xfrm_tmpl_resolve_one(pols[i], fl, &tpp[cnx], family); in xfrm_tmpl_resolve()
1498 xfrm_state_sort(xfrm, tpp, cnx, family); in xfrm_tmpl_resolve()
1513 static inline int xfrm_get_tos(const struct flowi *fl, int family) in xfrm_get_tos() argument
1515 struct xfrm_policy_afinfo *afinfo = xfrm_policy_get_afinfo(family); in xfrm_get_tos()
1578 static inline struct xfrm_dst *xfrm_alloc_dst(struct net *net, int family) in xfrm_alloc_dst() argument
1580 struct xfrm_policy_afinfo *afinfo = xfrm_policy_get_afinfo(family); in xfrm_alloc_dst()
1587 switch (family) { in xfrm_alloc_dst()
1618 xfrm_policy_get_afinfo(dst->ops->family); in xfrm_init_path()
1635 xfrm_policy_get_afinfo(xdst->u.dst.ops->family); in xfrm_fill_dst()
1670 int family = policy->selector.family; in xfrm_bundle_create() local
1673 xfrm_flowi_addr_get(fl, &saddr, &daddr, family); in xfrm_bundle_create()
1675 tos = xfrm_get_tos(fl, family); in xfrm_bundle_create()
1683 struct xfrm_dst *xdst = xfrm_alloc_dst(net, family); in xfrm_bundle_create()
1692 if (xfrm[i]->sel.family == AF_UNSPEC) { in xfrm_bundle_create()
1694 xfrm_af2proto(family)); in xfrm_bundle_create()
1714 family = xfrm[i]->props.family; in xfrm_bundle_create()
1716 &saddr, &daddr, family); in xfrm_bundle_create()
1816 static int xfrm_expand_policies(const struct flowi *fl, u16 family, in xfrm_expand_policies() argument
1837 fl, family, in xfrm_expand_policies()
1862 const struct flowi *fl, u16 family, in xfrm_resolve_and_create_bundle() argument
1872 err = xfrm_tmpl_resolve(pols, num_pols, fl, xfrm, family); in xfrm_resolve_and_create_bundle()
1923 xfrm_decode_session(skb, &fl, dst->ops->family); in xfrm_policy_queue_process()
1955 xfrm_decode_session(skb, &fl, skb_dst(skb)->ops->family); in xfrm_policy_queue_process()
2026 u16 family) in xfrm_create_dummy_bundle() argument
2034 xdst = xfrm_alloc_dst(net, family); in xfrm_create_dummy_bundle()
2082 xfrm_bundle_lookup(struct net *net, const struct flowi *fl, u16 family, u8 dir, in xfrm_bundle_lookup() argument
2114 pols[0] = __xfrm_policy_lookup(net, fl, family, in xfrm_bundle_lookup()
2116 err = xfrm_expand_policies(fl, family, pols, in xfrm_bundle_lookup()
2126 new_xdst = xfrm_resolve_and_create_bundle(pols, num_pols, fl, family, in xfrm_bundle_lookup()
2161 xdst = xfrm_create_dummy_bundle(net, xflo, fl, num_xfrms, family); in xfrm_bundle_lookup()
2183 static struct dst_entry *make_blackhole(struct net *net, u16 family, in make_blackhole() argument
2186 struct xfrm_policy_afinfo *afinfo = xfrm_policy_get_afinfo(family); in make_blackhole()
2213 u16 family = dst_orig->ops->family; in xfrm_lookup() local
2225 err = xfrm_expand_policies(fl, family, pols, in xfrm_lookup()
2238 family, dst_orig); in xfrm_lookup()
2266 flo = flow_cache_lookup(net, fl, family, dir, in xfrm_lookup()
2363 return make_blackhole(net, dst_orig->ops->family, dst_orig); in xfrm_lookup_route()
2390 unsigned short family) in xfrm_state_ok() argument
2401 xfrm_state_addr_cmp(tmpl, x, family)); in xfrm_state_ok()
2413 unsigned short family) in xfrm_policy_ok() argument
2423 if (xfrm_state_ok(tmpl, sp->xvec[idx], family)) in xfrm_policy_ok()
2435 unsigned int family, int reverse) in __xfrm_decode_session() argument
2437 struct xfrm_policy_afinfo *afinfo = xfrm_policy_get_afinfo(family); in __xfrm_decode_session()
2463 unsigned short family) in __xfrm_policy_check() argument
2480 if (__xfrm_decode_session(skb, &fl, family, reverse) < 0) { in __xfrm_policy_check()
2485 nf_nat_decode_session(skb, &fl, family); in __xfrm_policy_check()
2493 if (!xfrm_selector_match(&x->sel, &fl, family)) { in __xfrm_policy_check()
2513 flo = flow_cache_lookup(net, &fl, family, fl_dir, in __xfrm_policy_check()
2542 &fl, family, in __xfrm_policy_check()
2582 xfrm_tmpl_sort(stp, tpp, xfrm_nr, family, net); in __xfrm_policy_check()
2593 k = xfrm_policy_ok(tpp[i], sp, k, family); in __xfrm_policy_check()
2621 int __xfrm_route_forward(struct sk_buff *skb, unsigned short family) in __xfrm_route_forward() argument
2628 if (xfrm_decode_session(skb, &fl, family) < 0) { in __xfrm_route_forward()
2832 if (unlikely(afinfo->family >= NPROTO)) in xfrm_policy_register_afinfo()
2835 if (unlikely(xfrm_policy_afinfo[afinfo->family] != NULL)) in xfrm_policy_register_afinfo()
2855 rcu_assign_pointer(xfrm_policy_afinfo[afinfo->family], afinfo); in xfrm_policy_register_afinfo()
2868 if (unlikely(afinfo->family >= NPROTO)) in xfrm_policy_unregister_afinfo()
2871 if (likely(xfrm_policy_afinfo[afinfo->family] != NULL)) { in xfrm_policy_unregister_afinfo()
2872 if (unlikely(xfrm_policy_afinfo[afinfo->family] != afinfo)) in xfrm_policy_unregister_afinfo()
2875 RCU_INIT_POINTER(xfrm_policy_afinfo[afinfo->family], in xfrm_policy_unregister_afinfo()
3099 switch (sel->family) { in xfrm_audit_common_policyinfo()
3158 if (sel_tgt->family == sel_cmp->family && in xfrm_migrate_selector_match()
3160 sel_cmp->family) && in xfrm_migrate_selector_match()
3162 sel_cmp->family) && in xfrm_migrate_selector_match()
3183 chain = policy_hash_direct(net, &sel->daddr, &sel->saddr, sel->family, dir); in xfrm_migrate_policy_find()