Lines Matching refs:family
115 u16 family; member
172 xfrm_policy_inexact_lookup(struct net *net, u8 type, u16 family, u8 dir,
177 u8 type, u16 family, u8 dir, u32 if_id);
222 unsigned short family) in xfrm_selector_match() argument
224 switch (family) { in xfrm_selector_match()
233 static const struct xfrm_policy_afinfo *xfrm_policy_get_afinfo(unsigned short family) in xfrm_policy_get_afinfo() argument
237 if (unlikely(family >= ARRAY_SIZE(xfrm_policy_afinfo))) in xfrm_policy_get_afinfo()
240 afinfo = rcu_dereference(xfrm_policy_afinfo[family]); in xfrm_policy_get_afinfo()
255 int family, u32 mark) in __xfrm_dst_lookup() argument
260 afinfo = xfrm_policy_get_afinfo(family); in __xfrm_dst_lookup()
276 int family, u32 mark) in xfrm_dst_lookup() argument
292 dst = __xfrm_dst_lookup(net, tos, oif, saddr, daddr, family, mark); in xfrm_dst_lookup()
461 unsigned short family, int dir, in __get_hash_thresh() argument
464 switch (family) { in __get_hash_thresh()
483 unsigned short family, int dir) in policy_hash_bysel() argument
490 __get_hash_thresh(net, family, dir, &dbits, &sbits); in policy_hash_bysel()
491 hash = __sel_hash(sel, family, hmask, dbits, sbits); in policy_hash_bysel()
503 unsigned short family, int dir) in policy_hash_direct() argument
510 __get_hash_thresh(net, family, dir, &dbits, &sbits); in policy_hash_direct()
511 hash = __addr_hash(daddr, saddr, family, hmask, dbits, sbits); in policy_hash_direct()
533 __get_hash_thresh(net, pol->family, dir, &dbits, &sbits); in xfrm_dst_hash_transfer()
535 pol->family, nhashmask, dbits, sbits); in xfrm_dst_hash_transfer()
698 .family = pol->family, in xfrm_policy_inexact_alloc_bin()
737 int family, u8 prefixlen) in xfrm_pol_inexact_addr_use_any_list() argument
739 if (xfrm_addr_any(addr, family)) in xfrm_pol_inexact_addr_use_any_list()
742 if (family == AF_INET6 && prefixlen < INEXACT_PREFIXLEN_IPV6) in xfrm_pol_inexact_addr_use_any_list()
745 if (family == AF_INET && prefixlen < INEXACT_PREFIXLEN_IPV4) in xfrm_pol_inexact_addr_use_any_list()
762 policy->family, in xfrm_policy_inexact_insert_use_any_list()
767 policy->family, in xfrm_policy_inexact_insert_use_any_list()
793 u8 prefixlen, u16 family) in xfrm_policy_addr_delta() argument
799 switch (family) { in xfrm_policy_addr_delta()
839 u16 family) in xfrm_policy_inexact_list_reinsert() argument
854 WARN_ON_ONCE(policy->family != family); in xfrm_policy_inexact_list_reinsert()
883 family) == 0; in xfrm_policy_inexact_list_reinsert()
887 family) == 0; in xfrm_policy_inexact_list_reinsert()
903 u16 family) in xfrm_policy_inexact_node_reinsert() argument
923 prefixlen, family); in xfrm_policy_inexact_node_reinsert()
939 xfrm_policy_inexact_list_reinsert(net, node, family); in xfrm_policy_inexact_node_reinsert()
961 u16 family) in xfrm_policy_inexact_node_merge() argument
975 family); in xfrm_policy_inexact_node_merge()
983 xfrm_policy_inexact_list_reinsert(net, n, family); in xfrm_policy_inexact_node_merge()
990 u16 family, u8 prefixlen, u8 dir) in xfrm_policy_inexact_insert_node() argument
1005 family); in xfrm_policy_inexact_insert_node()
1019 family); in xfrm_policy_inexact_insert_node()
1040 cached, family); in xfrm_policy_inexact_insert_node()
1137 policy->family, in xfrm_policy_inexact_alloc_chain()
1143 policy->family, in xfrm_policy_inexact_alloc_chain()
1158 policy->family, in xfrm_policy_inexact_alloc_chain()
1166 policy->family, in xfrm_policy_inexact_alloc_chain()
1174 policy->family, in xfrm_policy_inexact_alloc_chain()
1261 if (policy->family == AF_INET) { in xfrm_hash_rebuild()
1269 if (policy->family == AF_INET) { in xfrm_hash_rebuild()
1333 policy->family, dir); in xfrm_hash_rebuild()
1454 u32 a = k->type << 24 | k->dir << 16 | k->family; in xfrm_pol_bin_key()
1485 ret = b->k.family ^ key->family; in xfrm_pol_bin_cmp()
1577 chain = policy_hash_bysel(net, &policy->selector, policy->family, dir); in xfrm_policy_insert()
1591 if (policy->family == AF_INET) in xfrm_policy_insert()
1650 chain = policy_hash_bysel(net, sel, sel->family, dir); in xfrm_policy_bysel_ctx()
1656 sel->family, dir, if_id); in xfrm_policy_bysel_ctx()
1890 u8 type, u16 family, int dir, u32 if_id) in xfrm_policy_match() argument
1896 if (pol->family != family || in xfrm_policy_match()
1902 match = xfrm_selector_match(sel, fl, family); in xfrm_policy_match()
1911 const xfrm_address_t *addr, u16 family) in xfrm_policy_lookup_inexact_addr() argument
1927 node->prefixlen, family); in xfrm_policy_lookup_inexact_addr()
1952 u16 family; in xfrm_policy_find_inexact_candidates() local
1957 family = b->k.family; in xfrm_policy_find_inexact_candidates()
1962 family); in xfrm_policy_find_inexact_candidates()
1966 family); in xfrm_policy_find_inexact_candidates()
1972 family); in xfrm_policy_find_inexact_candidates()
1980 xfrm_policy_inexact_lookup_rcu(struct net *net, u8 type, u16 family, in xfrm_policy_inexact_lookup_rcu() argument
1984 .family = family, in xfrm_policy_inexact_lookup_rcu()
1997 xfrm_policy_inexact_lookup(struct net *net, u8 type, u16 family, in xfrm_policy_inexact_lookup() argument
2005 bin = xfrm_policy_inexact_lookup_rcu(net, type, family, dir, if_id); in xfrm_policy_inexact_lookup()
2015 u8 type, u16 family, int dir, u32 if_id) in __xfrm_policy_eval_candidates() argument
2029 err = xfrm_policy_match(pol, fl, type, family, dir, if_id); in __xfrm_policy_eval_candidates()
2054 u8 type, u16 family, int dir, u32 if_id) in xfrm_policy_eval_candidates() argument
2062 fl, type, family, dir, in xfrm_policy_eval_candidates()
2077 u16 family, u8 dir, in xfrm_policy_lookup_bytype() argument
2088 daddr = xfrm_flowi_daddr(fl, family); in xfrm_policy_lookup_bytype()
2089 saddr = xfrm_flowi_saddr(fl, family); in xfrm_policy_lookup_bytype()
2097 chain = policy_hash_direct(net, daddr, saddr, family, dir); in xfrm_policy_lookup_bytype()
2102 err = xfrm_policy_match(pol, fl, type, family, dir, if_id); in xfrm_policy_lookup_bytype()
2115 bin = xfrm_policy_inexact_lookup_rcu(net, type, family, dir, if_id); in xfrm_policy_lookup_bytype()
2121 family, dir, if_id); in xfrm_policy_lookup_bytype()
2142 u16 family, u8 dir, u32 if_id) in xfrm_policy_lookup() argument
2147 pol = xfrm_policy_lookup_bytype(net, XFRM_POLICY_TYPE_SUB, fl, family, in xfrm_policy_lookup()
2152 return xfrm_policy_lookup_bytype(net, XFRM_POLICY_TYPE_MAIN, fl, family, in xfrm_policy_lookup()
2158 u16 family, u32 if_id) in xfrm_sk_policy_lookup() argument
2169 if (pol->family != family) { in xfrm_sk_policy_lookup()
2174 match = xfrm_selector_match(&pol->selector, fl, family); in xfrm_sk_policy_lookup()
2311 newp->family = old->family; in clone_policy()
2346 xfrm_address_t *remote, unsigned short family, u32 mark) in xfrm_get_saddr() argument
2349 const struct xfrm_policy_afinfo *afinfo = xfrm_policy_get_afinfo(family); in xfrm_get_saddr()
2362 struct xfrm_state **xfrm, unsigned short family) in xfrm_tmpl_resolve_one() argument
2367 xfrm_address_t *daddr = xfrm_flowi_daddr(fl, family); in xfrm_tmpl_resolve_one()
2368 xfrm_address_t *saddr = xfrm_flowi_saddr(fl, family); in xfrm_tmpl_resolve_one()
2392 family, policy->if_id); in xfrm_tmpl_resolve_one()
2421 struct xfrm_state **xfrm, unsigned short family) in xfrm_tmpl_resolve() argument
2436 ret = xfrm_tmpl_resolve_one(pols[i], fl, &tpp[cnx], family); in xfrm_tmpl_resolve()
2446 xfrm_state_sort(xfrm, tpp, cnx, family); in xfrm_tmpl_resolve()
2457 static int xfrm_get_tos(const struct flowi *fl, int family) in xfrm_get_tos() argument
2459 if (family == AF_INET) in xfrm_get_tos()
2465 static inline struct xfrm_dst *xfrm_alloc_dst(struct net *net, int family) in xfrm_alloc_dst() argument
2467 const struct xfrm_policy_afinfo *afinfo = xfrm_policy_get_afinfo(family); in xfrm_alloc_dst()
2474 switch (family) { in xfrm_alloc_dst()
2501 if (dst->ops->family == AF_INET6) { in xfrm_init_path()
2512 xfrm_policy_get_afinfo(xdst->u.dst.ops->family); in xfrm_fill_dst()
2550 int family = policy->selector.family; in xfrm_bundle_create() local
2553 xfrm_flowi_addr_get(fl, &saddr, &daddr, family); in xfrm_bundle_create()
2555 tos = xfrm_get_tos(fl, family); in xfrm_bundle_create()
2560 struct xfrm_dst *xdst = xfrm_alloc_dst(net, family); in xfrm_bundle_create()
2578 if (xfrm[i]->sel.family == AF_UNSPEC) { in xfrm_bundle_create()
2580 xfrm_af2proto(family)); in xfrm_bundle_create()
2598 family = xfrm[i]->props.family; in xfrm_bundle_create()
2600 &saddr, &daddr, family, mark); in xfrm_bundle_create()
2616 afinfo = xfrm_state_afinfo_get_rcu(inner_mode->family); in xfrm_bundle_create()
2666 static int xfrm_expand_policies(const struct flowi *fl, u16 family, in xfrm_expand_policies() argument
2687 fl, family, in xfrm_expand_policies()
2713 const struct flowi *fl, u16 family, in xfrm_resolve_and_create_bundle() argument
2724 err = xfrm_tmpl_resolve(pols, num_pols, fl, xfrm, family); in xfrm_resolve_and_create_bundle()
2773 xfrm_decode_session(skb, &fl, dst->ops->family); in xfrm_policy_queue_process()
2809 xfrm_decode_session(skb, &fl, skb_dst(skb)->ops->family); in xfrm_policy_queue_process()
2882 u16 family) in xfrm_create_dummy_bundle() argument
2890 xdst = xfrm_alloc_dst(net, family); in xfrm_create_dummy_bundle()
2939 u16 family, u8 dir, in xfrm_bundle_lookup() argument
2949 pols[0] = xfrm_policy_lookup(net, fl, family, dir, if_id); in xfrm_bundle_lookup()
2950 err = xfrm_expand_policies(fl, family, pols, in xfrm_bundle_lookup()
2959 xdst = xfrm_resolve_and_create_bundle(pols, num_pols, fl, family, in xfrm_bundle_lookup()
2982 xdst = xfrm_create_dummy_bundle(net, xflo, fl, num_xfrms, family); in xfrm_bundle_lookup()
3000 static struct dst_entry *make_blackhole(struct net *net, u16 family, in make_blackhole() argument
3003 const struct xfrm_policy_afinfo *afinfo = xfrm_policy_get_afinfo(family); in make_blackhole()
3034 u16 family = dst_orig->ops->family; in xfrm_lookup_with_ifid() local
3045 pols[0] = xfrm_sk_policy_lookup(sk, XFRM_POLICY_OUT, fl, family, in xfrm_lookup_with_ifid()
3047 err = xfrm_expand_policies(fl, family, pols, in xfrm_lookup_with_ifid()
3060 family, dst_orig); in xfrm_lookup_with_ifid()
3090 xdst = xfrm_bundle_lookup(net, fl, family, dir, &xflo, if_id); in xfrm_lookup_with_ifid()
3203 return make_blackhole(net, dst_orig->ops->family, dst_orig); in xfrm_lookup_route()
3234 unsigned short family) in xfrm_state_ok() argument
3245 xfrm_state_addr_cmp(tmpl, x, family)); in xfrm_state_ok()
3257 unsigned short family) in xfrm_policy_ok() argument
3267 if (xfrm_state_ok(tmpl, sp->xvec[idx], family)) in xfrm_policy_ok()
3448 unsigned int family, int reverse) in __xfrm_decode_session() argument
3450 switch (family) { in __xfrm_decode_session()
3480 unsigned short family) in __xfrm_policy_check() argument
3500 xi = ifcb->decode_session(skb, family); in __xfrm_policy_check()
3511 if (__xfrm_decode_session(skb, &fl, family, reverse) < 0) { in __xfrm_policy_check()
3516 nf_nat_decode_session(skb, &fl, family); in __xfrm_policy_check()
3525 if (!xfrm_selector_match(&x->sel, &fl, family)) { in __xfrm_policy_check()
3535 pol = xfrm_sk_policy_lookup(sk, dir, &fl, family, if_id); in __xfrm_policy_check()
3543 pol = xfrm_policy_lookup(net, &fl, family, dir, if_id); in __xfrm_policy_check()
3571 &fl, family, in __xfrm_policy_check()
3617 xfrm_tmpl_sort(stp, tpp, xfrm_nr, family); in __xfrm_policy_check()
3628 k = xfrm_policy_ok(tpp[i], sp, k, family); in __xfrm_policy_check()
3656 int __xfrm_route_forward(struct sk_buff *skb, unsigned short family) in __xfrm_route_forward() argument
3663 if (xfrm_decode_session(skb, &fl, family) < 0) { in __xfrm_route_forward()
3890 int xfrm_policy_register_afinfo(const struct xfrm_policy_afinfo *afinfo, int family) in xfrm_policy_register_afinfo() argument
3894 if (WARN_ON(family >= ARRAY_SIZE(xfrm_policy_afinfo))) in xfrm_policy_register_afinfo()
3898 if (unlikely(xfrm_policy_afinfo[family] != NULL)) in xfrm_policy_register_afinfo()
3918 rcu_assign_pointer(xfrm_policy_afinfo[family], afinfo); in xfrm_policy_register_afinfo()
4161 switch (sel->family) { in xfrm_audit_common_policyinfo()
4220 if (sel_tgt->family == sel_cmp->family && in xfrm_migrate_selector_match()
4222 sel_cmp->family) && in xfrm_migrate_selector_match()
4224 sel_cmp->family) && in xfrm_migrate_selector_match()
4245 chain = policy_hash_direct(net, &sel->daddr, &sel->saddr, sel->family, dir); in xfrm_migrate_policy_find()