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()
121 int family) in __xfrm_dst_lookup() argument
126 afinfo = xfrm_policy_get_afinfo(family); in __xfrm_dst_lookup()
140 int family) in xfrm_dst_lookup() argument
156 dst = __xfrm_dst_lookup(net, tos, saddr, daddr, family); in xfrm_dst_lookup()
355 unsigned short family, int dir, in __get_hash_thresh() argument
358 switch (family) { in __get_hash_thresh()
377 unsigned short family, int dir) in policy_hash_bysel() argument
384 __get_hash_thresh(net, family, dir, &dbits, &sbits); in policy_hash_bysel()
385 hash = __sel_hash(sel, family, hmask, dbits, sbits); in policy_hash_bysel()
395 unsigned short family, int dir) in policy_hash_direct() argument
402 __get_hash_thresh(net, family, dir, &dbits, &sbits); in policy_hash_direct()
403 hash = __addr_hash(daddr, saddr, family, hmask, dbits, sbits); in policy_hash_direct()
424 __get_hash_thresh(net, pol->family, dir, &dbits, &sbits); in xfrm_dst_hash_transfer()
426 pol->family, nhashmask, dbits, sbits); in xfrm_dst_hash_transfer()
630 policy->family, in xfrm_hash_rebuild()
756 chain = policy_hash_bysel(net, &policy->selector, policy->family, dir); in xfrm_policy_insert()
787 if (policy->family == AF_INET) in xfrm_policy_insert()
823 chain = policy_hash_bysel(net, sel, sel->family, dir); in xfrm_policy_bysel_ctx()
1069 u8 type, u16 family, int dir) in xfrm_policy_match() argument
1075 if (pol->family != family || in xfrm_policy_match()
1080 match = xfrm_selector_match(sel, fl, family); in xfrm_policy_match()
1090 u16 family, u8 dir) in xfrm_policy_lookup_bytype() argument
1098 daddr = xfrm_flowi_daddr(fl, family); in xfrm_policy_lookup_bytype()
1099 saddr = xfrm_flowi_saddr(fl, family); in xfrm_policy_lookup_bytype()
1104 chain = policy_hash_direct(net, daddr, saddr, family, dir); in xfrm_policy_lookup_bytype()
1107 err = xfrm_policy_match(pol, fl, type, family, dir); in xfrm_policy_lookup_bytype()
1123 err = xfrm_policy_match(pol, fl, type, family, dir); in xfrm_policy_lookup_bytype()
1145 __xfrm_policy_lookup(struct net *net, const struct flowi *fl, u16 family, u8 dir) in __xfrm_policy_lookup() argument
1150 pol = xfrm_policy_lookup_bytype(net, XFRM_POLICY_TYPE_SUB, fl, family, dir); in __xfrm_policy_lookup()
1154 return xfrm_policy_lookup_bytype(net, XFRM_POLICY_TYPE_MAIN, fl, family, dir); in __xfrm_policy_lookup()
1176 xfrm_policy_lookup(struct net *net, const struct flowi *fl, u16 family, in xfrm_policy_lookup() argument
1184 pol = __xfrm_policy_lookup(net, fl, family, flow_to_policy_dir(dir)); in xfrm_policy_lookup()
1380 unsigned short family) in xfrm_get_saddr() argument
1383 struct xfrm_policy_afinfo *afinfo = xfrm_policy_get_afinfo(family); in xfrm_get_saddr()
1396 struct xfrm_state **xfrm, unsigned short family) in xfrm_tmpl_resolve_one() argument
1401 xfrm_address_t *daddr = xfrm_flowi_daddr(fl, family); in xfrm_tmpl_resolve_one()
1402 xfrm_address_t *saddr = xfrm_flowi_saddr(fl, family); in xfrm_tmpl_resolve_one()
1423 x = xfrm_state_find(remote, local, fl, tmpl, policy, &error, family); in xfrm_tmpl_resolve_one()
1452 struct xfrm_state **xfrm, unsigned short family) in xfrm_tmpl_resolve() argument
1467 ret = xfrm_tmpl_resolve_one(pols[i], fl, &tpp[cnx], family); in xfrm_tmpl_resolve()
1477 xfrm_state_sort(xfrm, tpp, cnx, family); in xfrm_tmpl_resolve()
1492 static inline int xfrm_get_tos(const struct flowi *fl, int family) in xfrm_get_tos() argument
1494 struct xfrm_policy_afinfo *afinfo = xfrm_policy_get_afinfo(family); in xfrm_get_tos()
1557 static inline struct xfrm_dst *xfrm_alloc_dst(struct net *net, int family) in xfrm_alloc_dst() argument
1559 struct xfrm_policy_afinfo *afinfo = xfrm_policy_get_afinfo(family); in xfrm_alloc_dst()
1566 switch (family) { in xfrm_alloc_dst()
1599 xfrm_policy_get_afinfo(dst->ops->family); in xfrm_init_path()
1616 xfrm_policy_get_afinfo(xdst->u.dst.ops->family); in xfrm_fill_dst()
1651 int family = policy->selector.family; in xfrm_bundle_create() local
1654 xfrm_flowi_addr_get(fl, &saddr, &daddr, family); in xfrm_bundle_create()
1656 tos = xfrm_get_tos(fl, family); in xfrm_bundle_create()
1664 struct xfrm_dst *xdst = xfrm_alloc_dst(net, family); in xfrm_bundle_create()
1673 if (xfrm[i]->sel.family == AF_UNSPEC) { in xfrm_bundle_create()
1675 xfrm_af2proto(family)); in xfrm_bundle_create()
1695 family = xfrm[i]->props.family; in xfrm_bundle_create()
1697 family); in xfrm_bundle_create()
1797 static int xfrm_expand_policies(const struct flowi *fl, u16 family, in xfrm_expand_policies() argument
1818 fl, family, in xfrm_expand_policies()
1843 const struct flowi *fl, u16 family, in xfrm_resolve_and_create_bundle() argument
1853 err = xfrm_tmpl_resolve(pols, num_pols, fl, xfrm, family); in xfrm_resolve_and_create_bundle()
1903 xfrm_decode_session(skb, &fl, dst->ops->family); in xfrm_policy_queue_process()
1936 xfrm_decode_session(skb, &fl, skb_dst(skb)->ops->family); in xfrm_policy_queue_process()
2008 u16 family) in xfrm_create_dummy_bundle() argument
2016 xdst = xfrm_alloc_dst(net, family); in xfrm_create_dummy_bundle()
2064 xfrm_bundle_lookup(struct net *net, const struct flowi *fl, u16 family, u8 dir, in xfrm_bundle_lookup() argument
2096 pols[0] = __xfrm_policy_lookup(net, fl, family, in xfrm_bundle_lookup()
2098 err = xfrm_expand_policies(fl, family, pols, in xfrm_bundle_lookup()
2108 new_xdst = xfrm_resolve_and_create_bundle(pols, num_pols, fl, family, in xfrm_bundle_lookup()
2143 xdst = xfrm_create_dummy_bundle(net, xflo, fl, num_xfrms, family); in xfrm_bundle_lookup()
2165 static struct dst_entry *make_blackhole(struct net *net, u16 family, in make_blackhole() argument
2168 struct xfrm_policy_afinfo *afinfo = xfrm_policy_get_afinfo(family); in make_blackhole()
2195 u16 family = dst_orig->ops->family; in xfrm_lookup() local
2206 err = xfrm_expand_policies(fl, family, pols, in xfrm_lookup()
2219 family, dst_orig); in xfrm_lookup()
2247 flo = flow_cache_lookup(net, fl, family, dir, in xfrm_lookup()
2344 return make_blackhole(net, dst_orig->ops->family, dst_orig); in xfrm_lookup_route()
2371 unsigned short family) in xfrm_state_ok() argument
2382 xfrm_state_addr_cmp(tmpl, x, family)); in xfrm_state_ok()
2394 unsigned short family) in xfrm_policy_ok() argument
2404 if (xfrm_state_ok(tmpl, sp->xvec[idx], family)) in xfrm_policy_ok()
2416 unsigned int family, int reverse) in __xfrm_decode_session() argument
2418 struct xfrm_policy_afinfo *afinfo = xfrm_policy_get_afinfo(family); in __xfrm_decode_session()
2444 unsigned short family) in __xfrm_policy_check() argument
2461 if (__xfrm_decode_session(skb, &fl, family, reverse) < 0) { in __xfrm_policy_check()
2466 nf_nat_decode_session(skb, &fl, family); in __xfrm_policy_check()
2474 if (!xfrm_selector_match(&x->sel, &fl, family)) { in __xfrm_policy_check()
2493 flo = flow_cache_lookup(net, &fl, family, fl_dir, in __xfrm_policy_check()
2522 &fl, family, in __xfrm_policy_check()
2562 xfrm_tmpl_sort(stp, tpp, xfrm_nr, family, net); in __xfrm_policy_check()
2573 k = xfrm_policy_ok(tpp[i], sp, k, family); in __xfrm_policy_check()
2601 int __xfrm_route_forward(struct sk_buff *skb, unsigned short family) in __xfrm_route_forward() argument
2608 if (xfrm_decode_session(skb, &fl, family) < 0) { in __xfrm_route_forward()
2812 if (unlikely(afinfo->family >= NPROTO)) in xfrm_policy_register_afinfo()
2815 if (unlikely(xfrm_policy_afinfo[afinfo->family] != NULL)) in xfrm_policy_register_afinfo()
2835 rcu_assign_pointer(xfrm_policy_afinfo[afinfo->family], afinfo); in xfrm_policy_register_afinfo()
2848 if (unlikely(afinfo->family >= NPROTO)) in xfrm_policy_unregister_afinfo()
2851 if (likely(xfrm_policy_afinfo[afinfo->family] != NULL)) { in xfrm_policy_unregister_afinfo()
2852 if (unlikely(xfrm_policy_afinfo[afinfo->family] != afinfo)) in xfrm_policy_unregister_afinfo()
2855 RCU_INIT_POINTER(xfrm_policy_afinfo[afinfo->family], in xfrm_policy_unregister_afinfo()
3079 switch (sel->family) { in xfrm_audit_common_policyinfo()
3138 if (sel_tgt->family == sel_cmp->family && in xfrm_migrate_selector_match()
3140 sel_cmp->family) && in xfrm_migrate_selector_match()
3142 sel_cmp->family) && in xfrm_migrate_selector_match()
3163 chain = policy_hash_direct(net, &sel->daddr, &sel->saddr, sel->family, dir); in xfrm_migrate_policy_find()