Lines Matching full:family
45 2. Hash table by (daddr,family,reqid) to find what SAs exist for given
65 unsigned short family) in xfrm_dst_hash() argument
69 return __xfrm_dst_hash(daddr, saddr, reqid, family, net->xfrm.state_hmask); in xfrm_dst_hash()
75 unsigned short family) in xfrm_src_hash() argument
79 return __xfrm_src_hash(daddr, saddr, family, net->xfrm.state_hmask); in xfrm_src_hash()
84 __be32 spi, u8 proto, unsigned short family) in xfrm_spi_hash() argument
88 return __xfrm_spi_hash(daddr, spi, proto, family, net->xfrm.state_hmask); in xfrm_spi_hash()
131 x->props.reqid, x->props.family, in xfrm_hash_transfer()
136 x->props.family, in xfrm_hash_transfer()
142 x->id.proto, x->props.family, in xfrm_hash_transfer()
236 int xfrm_register_type(const struct xfrm_type *type, unsigned short family) in xfrm_register_type() argument
238 struct xfrm_state_afinfo *afinfo = xfrm_state_get_afinfo(family); in xfrm_register_type()
282 void xfrm_unregister_type(const struct xfrm_type *type, unsigned short family) in xfrm_unregister_type() argument
284 struct xfrm_state_afinfo *afinfo = xfrm_state_get_afinfo(family); in xfrm_unregister_type()
325 static const struct xfrm_type *xfrm_get_type(u8 proto, unsigned short family) in xfrm_get_type() argument
332 afinfo = xfrm_state_get_afinfo(family); in xfrm_get_type()
368 request_module("xfrm-type-%d-%d", family, proto); in xfrm_get_type()
382 unsigned short family) in xfrm_register_type_offload() argument
384 struct xfrm_state_afinfo *afinfo = xfrm_state_get_afinfo(family); in xfrm_register_type_offload()
407 unsigned short family) in xfrm_unregister_type_offload() argument
409 struct xfrm_state_afinfo *afinfo = xfrm_state_get_afinfo(family); in xfrm_unregister_type_offload()
434 afinfo = xfrm_state_get_afinfo(x->props.family); in xfrm_set_type_offload()
452 request_module("xfrm-offload-%d-%d", x->props.family, in xfrm_set_type_offload()
467 .family = AF_INET,
471 .family = AF_INET,
476 .family = AF_INET,
481 .family = AF_INET,
489 .family = AF_INET6,
493 .family = AF_INET6,
497 .family = AF_INET6,
502 .family = AF_INET6,
507 .family = AF_INET6,
511 static const struct xfrm_mode *xfrm_get_mode(unsigned int encap, int family) in xfrm_get_mode() argument
518 switch (family) { in xfrm_get_mode()
521 if (mode->family == family) in xfrm_get_mode()
526 if (mode->family == family) in xfrm_get_mode()
1054 sel->family = AF_INET; in __xfrm4_init_tempsel()
1073 sel->family = AF_INET6; in __xfrm6_init_tempsel()
1084 unsigned short family) in xfrm_init_tempstate() argument
1086 switch (family) { in xfrm_init_tempstate()
1116 x->props.family = tmpl->encap_family; in xfrm_init_tempstate()
1144 unsigned short family, in __xfrm_state_lookup_all() argument
1147 unsigned int h = __xfrm_spi_hash(daddr, spi, proto, family, state_ptrs->hmask); in __xfrm_state_lookup_all()
1168 if (x->props.family != family || in __xfrm_state_lookup_all()
1171 !xfrm_addr_equal(&x->id.daddr, daddr, family)) in __xfrm_state_lookup_all()
1188 unsigned short family) in __xfrm_state_lookup() argument
1190 unsigned int h = __xfrm_spi_hash(daddr, spi, proto, family, state_ptrs->hmask); in __xfrm_state_lookup()
1194 if (x->props.family != family || in __xfrm_state_lookup()
1197 !xfrm_addr_equal(&x->id.daddr, daddr, family)) in __xfrm_state_lookup()
1213 unsigned short family) in xfrm_input_state_lookup() argument
1223 if (x->props.family != family || in xfrm_input_state_lookup()
1226 !xfrm_addr_equal(&x->id.daddr, daddr, family)) in xfrm_input_state_lookup()
1238 x = __xfrm_state_lookup(&state_ptrs, mark, daddr, spi, proto, family); in xfrm_input_state_lookup()
1261 u8 proto, unsigned short family) in __xfrm_state_lookup_byaddr() argument
1263 unsigned int h = __xfrm_src_hash(daddr, saddr, family, state_ptrs->hmask); in __xfrm_state_lookup_byaddr()
1267 if (x->props.family != family || in __xfrm_state_lookup_byaddr()
1269 !xfrm_addr_equal(&x->id.daddr, daddr, family) || in __xfrm_state_lookup_byaddr()
1270 !xfrm_addr_equal(&x->props.saddr, saddr, family)) in __xfrm_state_lookup_byaddr()
1284 __xfrm_state_locate(struct xfrm_state *x, int use_spi, int family) in __xfrm_state_locate() argument
1294 x->id.spi, x->id.proto, family); in __xfrm_state_locate()
1299 x->id.proto, family); in __xfrm_state_locate()
1311 const struct flowi *fl, unsigned short family, in xfrm_state_look_at() argument
1333 if ((x->sel.family && in xfrm_state_look_at()
1334 (x->sel.family != family || in xfrm_state_look_at()
1335 !xfrm_selector_match(&x->sel, fl, family))) || in xfrm_state_look_at()
1354 if ((!x->sel.family || in xfrm_state_look_at()
1355 (x->sel.family == family && in xfrm_state_look_at()
1356 xfrm_selector_match(&x->sel, fl, family))) && in xfrm_state_look_at()
1367 unsigned short family, u32 if_id) in xfrm_state_find() argument
1396 if (x->props.family == encap_family && in xfrm_state_find()
1413 if (x->props.family == encap_family && in xfrm_state_find()
1422 xfrm_state_look_at(pol, x, fl, family, in xfrm_state_find()
1456 if (x->props.family == encap_family && in xfrm_state_find()
1465 xfrm_state_look_at(pol, x, fl, family, in xfrm_state_find()
1491 if (x->props.family == encap_family && in xfrm_state_find()
1500 xfrm_state_look_at(pol, x, fl, family, in xfrm_state_find()
1537 xfrm_init_tempstate(x, fl, tmpl, daddr, saddr, family); in xfrm_state_find()
1664 unsigned short family, u8 mode, u8 proto, u32 reqid) in xfrm_stateonly_find() argument
1670 h = xfrm_dst_hash(net, daddr, saddr, reqid, family); in xfrm_stateonly_find()
1672 if (x->props.family == family && in xfrm_stateonly_find()
1677 xfrm_state_addr_check(x, daddr, saddr, family) && in xfrm_stateonly_find()
1696 unsigned short family) in xfrm_state_lookup_byspi() argument
1704 if (x->props.family != family || in xfrm_state_lookup_byspi()
1725 x->props.reqid, x->props.family); in __xfrm_state_insert()
1729 h = xfrm_src_hash(net, &x->id.daddr, &x->props.saddr, x->props.family); in __xfrm_state_insert()
1735 x->props.family); in __xfrm_state_insert()
1762 unsigned short family = xnew->props.family; in __xfrm_state_bump_genids() local
1770 h = xfrm_dst_hash(net, &xnew->id.daddr, &xnew->props.saddr, reqid, family); in __xfrm_state_bump_genids()
1772 if (x->props.family == family && in __xfrm_state_bump_genids()
1777 xfrm_addr_equal(&x->id.daddr, &xnew->id.daddr, family) && in __xfrm_state_bump_genids()
1778 xfrm_addr_equal(&x->props.saddr, &xnew->props.saddr, family)) in __xfrm_state_bump_genids()
1797 unsigned short family, u8 mode, in __find_acq_core() argument
1803 unsigned int h = xfrm_dst_hash(net, daddr, saddr, reqid, family); in __find_acq_core()
1810 x->props.family != family || in __find_acq_core()
1816 !xfrm_addr_equal(&x->id.daddr, daddr, family) || in __find_acq_core()
1817 !xfrm_addr_equal(&x->props.saddr, saddr, family)) in __find_acq_core()
1829 switch (family) { in __find_acq_core()
1852 x->props.family = family; in __find_acq_core()
1866 h = xfrm_src_hash(net, daddr, saddr, family); in __find_acq_core()
1884 int family; in xfrm_state_add() local
1889 family = x->props.family; in xfrm_state_add()
1895 x1 = __xfrm_state_locate(x, use_spi, family); in xfrm_state_add()
1906 !xfrm_addr_equal(&x1->id.daddr, &x->id.daddr, family))) { in xfrm_state_add()
1913 x1 = __find_acq_core(net, &x->mark, family, x->props.mode, in xfrm_state_add()
1975 x->props.family = orig->props.family; in xfrm_state_clone()
2131 xc->props.family = m->new_family; in xfrm_state_migrate()
2167 x1 = __xfrm_state_locate(x, use_spi, x->props.family); in xfrm_state_update()
2294 u8 proto, unsigned short family) in xfrm_state_lookup() argument
2302 x = __xfrm_state_lookup(&state_ptrs, mark, daddr, spi, proto, family); in xfrm_state_lookup()
2311 u8 proto, unsigned short family) in xfrm_state_lookup_byaddr() argument
2320 x = __xfrm_state_lookup_byaddr(&state_ptrs, mark, daddr, saddr, proto, family); in xfrm_state_lookup_byaddr()
2329 const xfrm_address_t *saddr, int create, unsigned short family) in xfrm_find_acq() argument
2334 x = __find_acq_core(net, mark, family, mode, reqid, if_id, pcpu_num, in xfrm_find_acq()
2443 unsigned short family) in xfrm_tmpl_sort() argument
2447 if (family == AF_INET6) in xfrm_tmpl_sort()
2457 unsigned short family) in xfrm_state_sort() argument
2461 if (family == AF_INET6) in xfrm_state_sort()
2568 x0 = xfrm_state_lookup(net, mark, &x->id.daddr, minspi, x->id.proto, x->props.family); in xfrm_alloc_spi()
2579 x0 = xfrm_state_lookup(net, mark, &x->id.daddr, htonl(spi), x->id.proto, x->props.family); in xfrm_alloc_spi()
2590 h = xfrm_spi_hash(net, &x->id.daddr, x->id.spi, x->id.proto, x->props.family); in xfrm_alloc_spi()
2611 if ((filter->family == AF_INET || in __xfrm_state_filter_match()
2612 filter->family == AF_INET6) && in __xfrm_state_filter_match()
2613 x->props.family != filter->family) in __xfrm_state_filter_match()
3012 if (WARN_ON(afinfo->family >= NPROTO)) in xfrm_state_register_afinfo()
3016 if (unlikely(xfrm_state_afinfo[afinfo->family] != NULL)) in xfrm_state_register_afinfo()
3019 rcu_assign_pointer(xfrm_state_afinfo[afinfo->family], afinfo); in xfrm_state_register_afinfo()
3027 int err = 0, family = afinfo->family; in xfrm_state_unregister_afinfo() local
3029 if (WARN_ON(family >= NPROTO)) in xfrm_state_unregister_afinfo()
3033 if (likely(xfrm_state_afinfo[afinfo->family] != NULL)) { in xfrm_state_unregister_afinfo()
3034 if (rcu_access_pointer(xfrm_state_afinfo[family]) != afinfo) in xfrm_state_unregister_afinfo()
3037 RCU_INIT_POINTER(xfrm_state_afinfo[afinfo->family], NULL); in xfrm_state_unregister_afinfo()
3045 struct xfrm_state_afinfo *xfrm_state_afinfo_get_rcu(unsigned int family) in xfrm_state_afinfo_get_rcu() argument
3047 if (unlikely(family >= NPROTO)) in xfrm_state_afinfo_get_rcu()
3050 return rcu_dereference(xfrm_state_afinfo[family]); in xfrm_state_afinfo_get_rcu()
3054 struct xfrm_state_afinfo *xfrm_state_get_afinfo(unsigned int family) in xfrm_state_get_afinfo() argument
3057 if (unlikely(family >= NPROTO)) in xfrm_state_get_afinfo()
3060 afinfo = rcu_dereference(xfrm_state_afinfo[family]); in xfrm_state_get_afinfo()
3103 if (x->props.family == AF_INET) in xfrm_state_mtu()
3105 else if (x->props.family == AF_INET6) in xfrm_state_mtu()
3128 int family = x->props.family; in __xfrm_init_state() local
3131 if (family == AF_INET && in __xfrm_init_state()
3137 if (x->sel.family != AF_UNSPEC) { in __xfrm_init_state()
3138 inner_mode = xfrm_get_mode(x->props.mode, x->sel.family); in __xfrm_init_state()
3145 family != x->sel.family) { in __xfrm_init_state()
3146 NL_SET_ERR_MSG(extack, "Only tunnel modes can accommodate a change of family"); in __xfrm_init_state()
3155 inner_mode = xfrm_get_mode(x->props.mode, x->props.family); in __xfrm_init_state()
3163 if (x->props.family == AF_INET) in __xfrm_init_state()
3173 x->type = xfrm_get_type(x->id.proto, family); in __xfrm_init_state()
3183 outer_mode = xfrm_get_mode(x->props.mode, family); in __xfrm_init_state()
3320 switch (x->props.family) { in xfrm_audit_helper_sainfo()
3334 static void xfrm_audit_helper_pktinfo(struct sk_buff *skb, u16 family, in xfrm_audit_helper_pktinfo() argument
3340 switch (family) { in xfrm_audit_helper_pktinfo()
3395 xfrm_audit_helper_pktinfo(skb, x->props.family, audit_buf); in xfrm_audit_state_replay_overflow()
3413 xfrm_audit_helper_pktinfo(skb, x->props.family, audit_buf); in xfrm_audit_state_replay()
3421 void xfrm_audit_state_notfound_simple(struct sk_buff *skb, u16 family) in xfrm_audit_state_notfound_simple() argument
3428 xfrm_audit_helper_pktinfo(skb, family, audit_buf); in xfrm_audit_state_notfound_simple()
3433 void xfrm_audit_state_notfound(struct sk_buff *skb, u16 family, in xfrm_audit_state_notfound() argument
3442 xfrm_audit_helper_pktinfo(skb, family, audit_buf); in xfrm_audit_state_notfound()
3460 xfrm_audit_helper_pktinfo(skb, x->props.family, audit_buf); in xfrm_audit_state_icvfail()