Lines Matching refs:family
121 u16 family; member
179 xfrm_policy_inexact_lookup(struct net *net, u8 type, u16 family, u8 dir,
184 u8 type, u16 family, u8 dir, u32 if_id);
229 unsigned short family) in xfrm_selector_match() argument
231 switch (family) { in xfrm_selector_match()
240 static const struct xfrm_policy_afinfo *xfrm_policy_get_afinfo(unsigned short family) in xfrm_policy_get_afinfo() argument
244 if (unlikely(family >= ARRAY_SIZE(xfrm_policy_afinfo))) in xfrm_policy_get_afinfo()
247 afinfo = rcu_dereference(xfrm_policy_afinfo[family]); in xfrm_policy_get_afinfo()
262 int family, u32 mark) in __xfrm_dst_lookup() argument
267 afinfo = xfrm_policy_get_afinfo(family); in __xfrm_dst_lookup()
283 int family, u32 mark) in xfrm_dst_lookup() argument
299 dst = __xfrm_dst_lookup(net, tos, oif, saddr, daddr, family, mark); in xfrm_dst_lookup()
468 unsigned short family, int dir, in __get_hash_thresh() argument
471 switch (family) { in __get_hash_thresh()
490 unsigned short family, int dir) in policy_hash_bysel() argument
497 __get_hash_thresh(net, family, dir, &dbits, &sbits); in policy_hash_bysel()
498 hash = __sel_hash(sel, family, hmask, dbits, sbits); in policy_hash_bysel()
510 unsigned short family, int dir) in policy_hash_direct() argument
517 __get_hash_thresh(net, family, dir, &dbits, &sbits); in policy_hash_direct()
518 hash = __addr_hash(daddr, saddr, family, hmask, dbits, sbits); in policy_hash_direct()
540 __get_hash_thresh(net, pol->family, dir, &dbits, &sbits); in xfrm_dst_hash_transfer()
542 pol->family, nhashmask, dbits, sbits); in xfrm_dst_hash_transfer()
705 .family = pol->family, in xfrm_policy_inexact_alloc_bin()
744 int family, u8 prefixlen) in xfrm_pol_inexact_addr_use_any_list() argument
746 if (xfrm_addr_any(addr, family)) in xfrm_pol_inexact_addr_use_any_list()
749 if (family == AF_INET6 && prefixlen < INEXACT_PREFIXLEN_IPV6) in xfrm_pol_inexact_addr_use_any_list()
752 if (family == AF_INET && prefixlen < INEXACT_PREFIXLEN_IPV4) in xfrm_pol_inexact_addr_use_any_list()
769 policy->family, in xfrm_policy_inexact_insert_use_any_list()
774 policy->family, in xfrm_policy_inexact_insert_use_any_list()
800 u8 prefixlen, u16 family) in xfrm_policy_addr_delta() argument
806 switch (family) { in xfrm_policy_addr_delta()
846 u16 family) in xfrm_policy_inexact_list_reinsert() argument
861 WARN_ON_ONCE(policy->family != family); in xfrm_policy_inexact_list_reinsert()
890 family) == 0; in xfrm_policy_inexact_list_reinsert()
894 family) == 0; in xfrm_policy_inexact_list_reinsert()
910 u16 family) in xfrm_policy_inexact_node_reinsert() argument
930 prefixlen, family); in xfrm_policy_inexact_node_reinsert()
946 xfrm_policy_inexact_list_reinsert(net, node, family); in xfrm_policy_inexact_node_reinsert()
968 u16 family) in xfrm_policy_inexact_node_merge() argument
982 family); in xfrm_policy_inexact_node_merge()
990 xfrm_policy_inexact_list_reinsert(net, n, family); in xfrm_policy_inexact_node_merge()
997 u16 family, u8 prefixlen, u8 dir) in xfrm_policy_inexact_insert_node() argument
1012 family); in xfrm_policy_inexact_insert_node()
1026 family); in xfrm_policy_inexact_insert_node()
1047 cached, family); in xfrm_policy_inexact_insert_node()
1144 policy->family, in xfrm_policy_inexact_alloc_chain()
1150 policy->family, in xfrm_policy_inexact_alloc_chain()
1165 policy->family, in xfrm_policy_inexact_alloc_chain()
1173 policy->family, in xfrm_policy_inexact_alloc_chain()
1181 policy->family, in xfrm_policy_inexact_alloc_chain()
1268 if (policy->family == AF_INET) { in xfrm_hash_rebuild()
1276 if (policy->family == AF_INET) { in xfrm_hash_rebuild()
1340 policy->family, dir); in xfrm_hash_rebuild()
1461 u32 a = k->type << 24 | k->dir << 16 | k->family; in xfrm_pol_bin_key()
1492 ret = b->k.family ^ key->family; in xfrm_pol_bin_cmp()
1584 chain = policy_hash_bysel(net, &policy->selector, policy->family, dir); in xfrm_policy_insert()
1598 if (policy->family == AF_INET) in xfrm_policy_insert()
1657 chain = policy_hash_bysel(net, sel, sel->family, dir); in xfrm_policy_bysel_ctx()
1663 sel->family, dir, if_id); in xfrm_policy_bysel_ctx()
1897 u8 type, u16 family, int dir, u32 if_id) in xfrm_policy_match() argument
1903 if (pol->family != family || in xfrm_policy_match()
1909 match = xfrm_selector_match(sel, fl, family); in xfrm_policy_match()
1919 const xfrm_address_t *addr, u16 family) in xfrm_policy_lookup_inexact_addr() argument
1935 node->prefixlen, family); in xfrm_policy_lookup_inexact_addr()
1960 u16 family; in xfrm_policy_find_inexact_candidates() local
1965 family = b->k.family; in xfrm_policy_find_inexact_candidates()
1970 family); in xfrm_policy_find_inexact_candidates()
1974 family); in xfrm_policy_find_inexact_candidates()
1980 family); in xfrm_policy_find_inexact_candidates()
1988 xfrm_policy_inexact_lookup_rcu(struct net *net, u8 type, u16 family, in xfrm_policy_inexact_lookup_rcu() argument
1992 .family = family, in xfrm_policy_inexact_lookup_rcu()
2005 xfrm_policy_inexact_lookup(struct net *net, u8 type, u16 family, in xfrm_policy_inexact_lookup() argument
2013 bin = xfrm_policy_inexact_lookup_rcu(net, type, family, dir, if_id); in xfrm_policy_inexact_lookup()
2023 u8 type, u16 family, int dir, u32 if_id) in __xfrm_policy_eval_candidates() argument
2037 err = xfrm_policy_match(pol, fl, type, family, dir, if_id); in __xfrm_policy_eval_candidates()
2062 u8 type, u16 family, int dir, u32 if_id) in xfrm_policy_eval_candidates() argument
2070 fl, type, family, dir, in xfrm_policy_eval_candidates()
2085 u16 family, u8 dir, in xfrm_policy_lookup_bytype() argument
2096 daddr = xfrm_flowi_daddr(fl, family); in xfrm_policy_lookup_bytype()
2097 saddr = xfrm_flowi_saddr(fl, family); in xfrm_policy_lookup_bytype()
2105 chain = policy_hash_direct(net, daddr, saddr, family, dir); in xfrm_policy_lookup_bytype()
2110 err = xfrm_policy_match(pol, fl, type, family, dir, if_id); in xfrm_policy_lookup_bytype()
2123 bin = xfrm_policy_inexact_lookup_rcu(net, type, family, dir, if_id); in xfrm_policy_lookup_bytype()
2129 family, dir, if_id); in xfrm_policy_lookup_bytype()
2150 u16 family, u8 dir, u32 if_id) in xfrm_policy_lookup() argument
2155 pol = xfrm_policy_lookup_bytype(net, XFRM_POLICY_TYPE_SUB, fl, family, in xfrm_policy_lookup()
2160 return xfrm_policy_lookup_bytype(net, XFRM_POLICY_TYPE_MAIN, fl, family, in xfrm_policy_lookup()
2166 u16 family, u32 if_id) in xfrm_sk_policy_lookup() argument
2177 if (pol->family != family) { in xfrm_sk_policy_lookup()
2182 match = xfrm_selector_match(&pol->selector, fl, family); in xfrm_sk_policy_lookup()
2320 newp->family = old->family; in clone_policy()
2355 xfrm_address_t *remote, unsigned short family, u32 mark) in xfrm_get_saddr() argument
2358 const struct xfrm_policy_afinfo *afinfo = xfrm_policy_get_afinfo(family); in xfrm_get_saddr()
2371 struct xfrm_state **xfrm, unsigned short family) in xfrm_tmpl_resolve_one() argument
2376 xfrm_address_t *daddr = xfrm_flowi_daddr(fl, family); in xfrm_tmpl_resolve_one()
2377 xfrm_address_t *saddr = xfrm_flowi_saddr(fl, family); in xfrm_tmpl_resolve_one()
2401 family, policy->if_id); in xfrm_tmpl_resolve_one()
2430 struct xfrm_state **xfrm, unsigned short family) in xfrm_tmpl_resolve() argument
2445 ret = xfrm_tmpl_resolve_one(pols[i], fl, &tpp[cnx], family); in xfrm_tmpl_resolve()
2455 xfrm_state_sort(xfrm, tpp, cnx, family); in xfrm_tmpl_resolve()
2466 static int xfrm_get_tos(const struct flowi *fl, int family) in xfrm_get_tos() argument
2468 if (family == AF_INET) in xfrm_get_tos()
2474 static inline struct xfrm_dst *xfrm_alloc_dst(struct net *net, int family) in xfrm_alloc_dst() argument
2476 const struct xfrm_policy_afinfo *afinfo = xfrm_policy_get_afinfo(family); in xfrm_alloc_dst()
2483 switch (family) { in xfrm_alloc_dst()
2512 if (dst->ops->family == AF_INET6) { in xfrm_init_path()
2523 xfrm_policy_get_afinfo(xdst->u.dst.ops->family); in xfrm_fill_dst()
2561 int family = policy->selector.family; in xfrm_bundle_create() local
2564 xfrm_flowi_addr_get(fl, &saddr, &daddr, family); in xfrm_bundle_create()
2566 tos = xfrm_get_tos(fl, family); in xfrm_bundle_create()
2571 struct xfrm_dst *xdst = xfrm_alloc_dst(net, family); in xfrm_bundle_create()
2589 if (xfrm[i]->sel.family == AF_UNSPEC) { in xfrm_bundle_create()
2591 xfrm_af2proto(family)); in xfrm_bundle_create()
2609 family = xfrm[i]->props.family; in xfrm_bundle_create()
2611 &saddr, &daddr, family, mark); in xfrm_bundle_create()
2627 afinfo = xfrm_state_afinfo_get_rcu(inner_mode->family); in xfrm_bundle_create()
2677 static int xfrm_expand_policies(const struct flowi *fl, u16 family, in xfrm_expand_policies() argument
2700 fl, family, in xfrm_expand_policies()
2727 const struct flowi *fl, u16 family, in xfrm_resolve_and_create_bundle() argument
2738 err = xfrm_tmpl_resolve(pols, num_pols, fl, xfrm, family); in xfrm_resolve_and_create_bundle()
2787 xfrm_decode_session(skb, &fl, dst->ops->family); in xfrm_policy_queue_process()
2823 xfrm_decode_session(skb, &fl, skb_dst(skb)->ops->family); in xfrm_policy_queue_process()
2896 u16 family) in xfrm_create_dummy_bundle() argument
2904 xdst = xfrm_alloc_dst(net, family); in xfrm_create_dummy_bundle()
2953 u16 family, u8 dir, in xfrm_bundle_lookup() argument
2963 pols[0] = xfrm_policy_lookup(net, fl, family, dir, if_id); in xfrm_bundle_lookup()
2964 err = xfrm_expand_policies(fl, family, pols, in xfrm_bundle_lookup()
2973 xdst = xfrm_resolve_and_create_bundle(pols, num_pols, fl, family, in xfrm_bundle_lookup()
2996 xdst = xfrm_create_dummy_bundle(net, xflo, fl, num_xfrms, family); in xfrm_bundle_lookup()
3014 static struct dst_entry *make_blackhole(struct net *net, u16 family, in make_blackhole() argument
3017 const struct xfrm_policy_afinfo *afinfo = xfrm_policy_get_afinfo(family); in make_blackhole()
3048 u16 family = dst_orig->ops->family; in xfrm_lookup_with_ifid() local
3059 pols[0] = xfrm_sk_policy_lookup(sk, XFRM_POLICY_OUT, fl, family, in xfrm_lookup_with_ifid()
3061 err = xfrm_expand_policies(fl, family, pols, in xfrm_lookup_with_ifid()
3074 family, dst_orig); in xfrm_lookup_with_ifid()
3104 xdst = xfrm_bundle_lookup(net, fl, family, dir, &xflo, if_id); in xfrm_lookup_with_ifid()
3212 return make_blackhole(net, dst_orig->ops->family, dst_orig); in xfrm_lookup_route()
3243 unsigned short family) in xfrm_state_ok() argument
3254 xfrm_state_addr_cmp(tmpl, x, family)); in xfrm_state_ok()
3266 unsigned short family) in xfrm_policy_ok() argument
3276 if (xfrm_state_ok(tmpl, sp->xvec[idx], family)) in xfrm_policy_ok()
3516 unsigned int family, int reverse) in __xfrm_decode_session() argument
3518 switch (family) { in __xfrm_decode_session()
3548 unsigned short family) in __xfrm_policy_check() argument
3568 xi = ifcb->decode_session(skb, family); in __xfrm_policy_check()
3579 if (__xfrm_decode_session(skb, &fl, family, reverse) < 0) { in __xfrm_policy_check()
3584 nf_nat_decode_session(skb, &fl, family); in __xfrm_policy_check()
3593 if (!xfrm_selector_match(&x->sel, &fl, family)) { in __xfrm_policy_check()
3603 pol = xfrm_sk_policy_lookup(sk, dir, &fl, family, if_id); in __xfrm_policy_check()
3611 pol = xfrm_policy_lookup(net, &fl, family, dir, if_id); in __xfrm_policy_check()
3634 &fl, family, in __xfrm_policy_check()
3675 xfrm_tmpl_sort(stp, tpp, xfrm_nr, family); in __xfrm_policy_check()
3686 k = xfrm_policy_ok(tpp[i], sp, k, family); in __xfrm_policy_check()
3714 int __xfrm_route_forward(struct sk_buff *skb, unsigned short family) in __xfrm_route_forward() argument
3721 if (xfrm_decode_session(skb, &fl, family) < 0) { in __xfrm_route_forward()
3948 int xfrm_policy_register_afinfo(const struct xfrm_policy_afinfo *afinfo, int family) in xfrm_policy_register_afinfo() argument
3952 if (WARN_ON(family >= ARRAY_SIZE(xfrm_policy_afinfo))) in xfrm_policy_register_afinfo()
3956 if (unlikely(xfrm_policy_afinfo[family] != NULL)) in xfrm_policy_register_afinfo()
3976 rcu_assign_pointer(xfrm_policy_afinfo[family], afinfo); in xfrm_policy_register_afinfo()
4222 switch (sel->family) { in xfrm_audit_common_policyinfo()
4281 if (sel_tgt->family == sel_cmp->family && in xfrm_migrate_selector_match()
4283 sel_cmp->family) && in xfrm_migrate_selector_match()
4285 sel_cmp->family) && in xfrm_migrate_selector_match()
4306 chain = policy_hash_direct(net, &sel->daddr, &sel->saddr, sel->family, dir); in xfrm_migrate_policy_find()