Lines Matching defs:family

80  * xfrm_pol_inexact_bin = hash(dir,type,family,if_id);
123 u16 family;
195 xfrm_policy_inexact_lookup(struct net *net, u8 type, u16 family, u8 dir,
200 u8 type, u16 family, u8 dir, u32 if_id);
243 unsigned short family)
245 switch (family) {
254 static const struct xfrm_policy_afinfo *xfrm_policy_get_afinfo(unsigned short family)
258 if (unlikely(family >= ARRAY_SIZE(xfrm_policy_afinfo)))
261 afinfo = rcu_dereference(xfrm_policy_afinfo[family]);
273 struct dst_entry *__xfrm_dst_lookup(int family,
279 afinfo = xfrm_policy_get_afinfo(family);
295 int family, u32 mark)
334 dst = __xfrm_dst_lookup(family, &params);
516 unsigned short family, int dir,
519 switch (family) {
538 unsigned short family, int dir)
545 __get_hash_thresh(net, family, dir, &dbits, &sbits);
546 hash = __sel_hash(sel, family, hmask, dbits, sbits);
558 unsigned short family, int dir)
565 __get_hash_thresh(net, family, dir, &dbits, &sbits);
566 hash = __addr_hash(daddr, saddr, family, hmask, dbits, sbits);
588 __get_hash_thresh(net, pol->family, dir, &dbits, &sbits);
590 pol->family, nhashmask, dbits, sbits);
753 .family = pol->family,
792 int family, u8 prefixlen)
794 if (xfrm_addr_any(addr, family))
797 if (family == AF_INET6 && prefixlen < INEXACT_PREFIXLEN_IPV6)
800 if (family == AF_INET && prefixlen < INEXACT_PREFIXLEN_IPV4)
817 policy->family,
822 policy->family,
848 u8 prefixlen, u16 family)
854 switch (family) {
894 u16 family)
909 WARN_ON_ONCE(policy->family != family);
938 family) == 0;
942 family) == 0;
958 u16 family)
978 prefixlen, family);
994 xfrm_policy_inexact_list_reinsert(net, node, family);
1016 u16 family)
1030 family);
1038 xfrm_policy_inexact_list_reinsert(net, n, family);
1045 u16 family, u8 prefixlen, u8 dir)
1060 family);
1074 family);
1095 cached, family);
1192 policy->family,
1198 policy->family,
1213 policy->family,
1221 policy->family,
1229 policy->family,
1321 if (policy->family == AF_INET) {
1329 if (policy->family == AF_INET) {
1376 policy->family, dir);
1495 u32 a = k->type << 24 | k->dir << 16 | k->family;
1526 ret = b->k.family ^ key->family;
1588 chain = policy_hash_bysel(net, &policy->selector, policy->family, dir);
1601 /* After previous checking, family can either be AF_INET or AF_INET6 */
1602 if (policy->family == AF_INET)
1661 chain = policy_hash_bysel(net, sel, sel->family, dir);
1667 sel->family, dir, if_id);
1972 u8 type, u16 family, u32 if_id)
1978 if (pol->family != family ||
1984 match = xfrm_selector_match(sel, fl, family);
1993 const xfrm_address_t *addr, u16 family)
2009 node->prefixlen, family);
2034 u16 family;
2039 family = b->k.family;
2044 family);
2048 family);
2054 family);
2062 xfrm_policy_inexact_lookup_rcu(struct net *net, u8 type, u16 family,
2066 .family = family,
2079 xfrm_policy_inexact_lookup(struct net *net, u8 type, u16 family,
2087 bin = xfrm_policy_inexact_lookup_rcu(net, type, family, dir, if_id);
2097 u8 type, u16 family, u32 if_id)
2111 err = xfrm_policy_match(pol, fl, type, family, if_id);
2136 u8 type, u16 family, u32 if_id)
2144 fl, type, family, if_id);
2158 u16 family, u8 dir,
2169 daddr = xfrm_flowi_daddr(fl, family);
2170 saddr = xfrm_flowi_saddr(fl, family);
2178 chain = policy_hash_direct(net, daddr, saddr, family, dir);
2183 err = xfrm_policy_match(pol, fl, type, family, if_id);
2199 bin = xfrm_policy_inexact_lookup_rcu(net, type, family, dir, if_id);
2205 family, if_id);
2226 u16 family, u8 dir, u32 if_id)
2231 pol = xfrm_policy_lookup_bytype(net, XFRM_POLICY_TYPE_SUB, fl, family,
2236 return xfrm_policy_lookup_bytype(net, XFRM_POLICY_TYPE_MAIN, fl, family,
2242 u16 family, u32 if_id)
2253 if (pol->family != family) {
2258 match = xfrm_selector_match(&pol->selector, fl, family);
2436 newp->family = old->family;
2470 xfrm_get_saddr(unsigned short family, xfrm_address_t *saddr,
2474 const struct xfrm_policy_afinfo *afinfo = xfrm_policy_get_afinfo(family);
2487 struct xfrm_state **xfrm, unsigned short family)
2492 xfrm_address_t *daddr = xfrm_flowi_daddr(fl, family);
2493 xfrm_address_t *saddr = xfrm_flowi_saddr(fl, family);
2523 family, policy->if_id);
2558 struct xfrm_state **xfrm, unsigned short family)
2573 ret = xfrm_tmpl_resolve_one(pols[i], fl, &tpp[cnx], family);
2583 xfrm_state_sort(xfrm, tpp, cnx, family);
2594 static dscp_t xfrm_get_dscp(const struct flowi *fl, int family)
2596 if (family == AF_INET)
2602 static inline struct xfrm_dst *xfrm_alloc_dst(struct net *net, int family)
2604 const struct xfrm_policy_afinfo *afinfo = xfrm_policy_get_afinfo(family);
2611 switch (family) {
2638 if (dst->ops->family == AF_INET6) {
2648 xfrm_policy_get_afinfo(xdst->u.dst.ops->family);
2685 int family = policy->selector.family;
2689 xfrm_flowi_addr_get(fl, &saddr, &daddr, family);
2691 dscp = xfrm_get_dscp(fl, family);
2696 struct xfrm_dst *xdst = xfrm_alloc_dst(net, family);
2714 if (xfrm[i]->sel.family == AF_UNSPEC) {
2716 xfrm_af2proto(family));
2736 family = xfrm[i]->props.family;
2740 &daddr, family, mark);
2759 afinfo = xfrm_state_afinfo_get_rcu(inner_mode->family);
2810 static int xfrm_expand_policies(const struct flowi *fl, u16 family,
2833 fl, family,
2860 const struct flowi *fl, u16 family,
2871 err = xfrm_tmpl_resolve(pols, num_pols, fl, xfrm, family);
2920 xfrm_decode_session(net, skb, &fl, dst->ops->family);
2956 xfrm_decode_session(net, skb, &fl, skb_dst(skb)->ops->family);
3029 u16 family)
3037 xdst = xfrm_alloc_dst(net, family);
3086 u16 family, u8 dir,
3096 pols[0] = xfrm_policy_lookup(net, fl, family, dir, if_id);
3097 err = xfrm_expand_policies(fl, family, pols,
3106 xdst = xfrm_resolve_and_create_bundle(pols, num_pols, fl, family,
3129 xdst = xfrm_create_dummy_bundle(net, xflo, fl, num_xfrms, family);
3147 static struct dst_entry *make_blackhole(struct net *net, u16 family,
3150 const struct xfrm_policy_afinfo *afinfo = xfrm_policy_get_afinfo(family);
3181 u16 family = dst_orig->ops->family;
3192 pols[0] = xfrm_sk_policy_lookup(sk, XFRM_POLICY_OUT, fl, family,
3194 err = xfrm_expand_policies(fl, family, pols,
3207 family, dst_orig);
3237 xdst = xfrm_bundle_lookup(net, fl, family, dir, &xflo, if_id);
3352 return make_blackhole(net, dst_orig->ops->family, dst_orig);
3383 unsigned short family, u32 if_id)
3394 xfrm_state_addr_cmp(tmpl, x, family)) &&
3407 unsigned short family, u32 if_id)
3417 if (xfrm_state_ok(tmpl, sp->xvec[idx], family, if_id))
3503 unsigned int family, int reverse)
3511 switch (family) {
3552 static bool icmp_err_packet(const struct flowi *fl, unsigned short family)
3556 if (family == AF_INET &&
3563 if (family == AF_INET6) {
3576 static bool xfrm_icmp_flow_decode(struct sk_buff *skb, unsigned short family,
3581 int hl = family == AF_INET ? (sizeof(struct iphdr) + sizeof(struct icmphdr)) :
3592 if (xfrm_decode_session_reverse(dev_net(skb->dev), newskb, fl1, family) < 0)
3598 nf_nat_decode_session(newskb, fl1, family);
3606 static bool xfrm_selector_inner_icmp_match(struct sk_buff *skb, unsigned short family,
3612 if (icmp_err_packet(fl, family)) {
3615 if (xfrm_icmp_flow_decode(skb, family, fl, &fl1))
3618 ret = xfrm_selector_match(sel, &fl1, family);
3626 const struct flowi *fl, unsigned short family,
3631 if (icmp_err_packet(fl, family)) {
3635 if (xfrm_icmp_flow_decode(skb, family, fl, &fl1))
3638 pol = xfrm_policy_lookup(net, &fl1, family, XFRM_POLICY_FWD, if_id);
3648 unsigned short family, struct dst_entry *dst)
3650 if (icmp_err_packet(fl, family)) {
3655 if (xfrm_icmp_flow_decode(skb, family, fl, &fl1))
3677 unsigned short family)
3698 if (ifcb->decode_session(skb, family, &r)) {
3708 if (__xfrm_decode_session(net, skb, &fl, family, reverse) < 0) {
3713 nf_nat_decode_session(skb, &fl, family);
3724 if (!xfrm_selector_match(&x->sel, &fl, family)) {
3727 xfrm_selector_inner_icmp_match(skb, family, &x->sel, &fl))
3740 pol = xfrm_sk_policy_lookup(sk, dir, &fl, family, if_id);
3748 pol = xfrm_policy_lookup(net, &fl, family, dir, if_id);
3756 pol = xfrm_in_fwd_icmp(skb, &fl, family, if_id);
3783 &fl, family,
3827 xfrm_tmpl_sort(stp, tpp, xfrm_nr, family);
3841 k = xfrm_policy_ok(tpp[i], sp, k, family, if_id);
3871 int __xfrm_route_forward(struct sk_buff *skb, unsigned short family)
3878 if (xfrm_decode_session(net, skb, &fl, family) < 0) {
3902 dst = xfrm_out_fwd_icmp(skb, &fl, family, dst);
4110 int xfrm_policy_register_afinfo(const struct xfrm_policy_afinfo *afinfo, int family)
4114 if (WARN_ON(family >= ARRAY_SIZE(xfrm_policy_afinfo)))
4118 if (unlikely(xfrm_policy_afinfo[family] != NULL))
4138 rcu_assign_pointer(xfrm_policy_afinfo[family], afinfo);
4427 switch (sel->family) {
4492 switch (sel->family) {
4517 pol = xfrm_policy_lookup_bytype(net, type, &fl, sel->family, dir, if_id);