Lines Matching full:family
39 2. Hash table by (daddr,family,reqid) to find what SAs exist for given
59 unsigned short family) in xfrm_dst_hash() argument
61 return __xfrm_dst_hash(daddr, saddr, reqid, family, net->xfrm.state_hmask); in xfrm_dst_hash()
67 unsigned short family) in xfrm_src_hash() argument
69 return __xfrm_src_hash(daddr, saddr, family, net->xfrm.state_hmask); in xfrm_src_hash()
74 __be32 spi, u8 proto, unsigned short family) in xfrm_spi_hash() argument
76 return __xfrm_spi_hash(daddr, spi, proto, family, net->xfrm.state_hmask); in xfrm_spi_hash()
92 x->props.reqid, x->props.family, in xfrm_hash_transfer()
97 x->props.family, in xfrm_hash_transfer()
103 x->id.proto, x->props.family, in xfrm_hash_transfer()
180 int xfrm_register_type(const struct xfrm_type *type, unsigned short family) in xfrm_register_type() argument
182 struct xfrm_state_afinfo *afinfo = xfrm_state_get_afinfo(family); in xfrm_register_type()
201 int xfrm_unregister_type(const struct xfrm_type *type, unsigned short family) in xfrm_unregister_type() argument
203 struct xfrm_state_afinfo *afinfo = xfrm_state_get_afinfo(family); in xfrm_unregister_type()
222 static const struct xfrm_type *xfrm_get_type(u8 proto, unsigned short family) in xfrm_get_type() argument
230 afinfo = xfrm_state_get_afinfo(family); in xfrm_get_type()
242 request_module("xfrm-type-%d-%d", family, proto); in xfrm_get_type()
257 unsigned short family) in xfrm_register_type_offload() argument
259 struct xfrm_state_afinfo *afinfo = xfrm_state_get_afinfo(family); in xfrm_register_type_offload()
279 unsigned short family) in xfrm_unregister_type_offload() argument
281 struct xfrm_state_afinfo *afinfo = xfrm_state_get_afinfo(family); in xfrm_unregister_type_offload()
301 xfrm_get_type_offload(u8 proto, unsigned short family, bool try_load) in xfrm_get_type_offload() argument
308 afinfo = xfrm_state_get_afinfo(family); in xfrm_get_type_offload()
320 request_module("xfrm-offload-%d-%d", family, proto); in xfrm_get_type_offload()
334 int xfrm_register_mode(struct xfrm_mode *mode, int family) in xfrm_register_mode() argument
343 afinfo = xfrm_state_get_afinfo(family); in xfrm_register_mode()
368 int xfrm_unregister_mode(struct xfrm_mode *mode, int family) in xfrm_unregister_mode() argument
377 afinfo = xfrm_state_get_afinfo(family); in xfrm_unregister_mode()
396 static struct xfrm_mode *xfrm_get_mode(unsigned int encap, int family) in xfrm_get_mode() argument
406 afinfo = xfrm_state_get_afinfo(family); in xfrm_get_mode()
416 request_module("xfrm-mode-%d-%d", family, encap); in xfrm_get_mode()
817 unsigned short family) in xfrm_init_tempstate() argument
819 struct xfrm_state_afinfo *afinfo = xfrm_state_afinfo_get_rcu(family); in xfrm_init_tempstate()
826 if (family != tmpl->encap_family) { in xfrm_init_tempstate()
837 unsigned short family) in __xfrm_state_lookup() argument
839 unsigned int h = xfrm_spi_hash(net, daddr, spi, proto, family); in __xfrm_state_lookup()
843 if (x->props.family != family || in __xfrm_state_lookup()
846 !xfrm_addr_equal(&x->id.daddr, daddr, family)) in __xfrm_state_lookup()
862 u8 proto, unsigned short family) in __xfrm_state_lookup_byaddr() argument
864 unsigned int h = xfrm_src_hash(net, daddr, saddr, family); in __xfrm_state_lookup_byaddr()
868 if (x->props.family != family || in __xfrm_state_lookup_byaddr()
870 !xfrm_addr_equal(&x->id.daddr, daddr, family) || in __xfrm_state_lookup_byaddr()
871 !xfrm_addr_equal(&x->props.saddr, saddr, family)) in __xfrm_state_lookup_byaddr()
885 __xfrm_state_locate(struct xfrm_state *x, int use_spi, int family) in __xfrm_state_locate() argument
892 x->id.spi, x->id.proto, family); in __xfrm_state_locate()
897 x->id.proto, family); in __xfrm_state_locate()
909 const struct flowi *fl, unsigned short family, in xfrm_state_look_at() argument
925 if ((x->sel.family && in xfrm_state_look_at()
926 (x->sel.family != family || in xfrm_state_look_at()
927 !xfrm_selector_match(&x->sel, fl, family))) || in xfrm_state_look_at()
940 if ((!x->sel.family || in xfrm_state_look_at()
941 (x->sel.family == family && in xfrm_state_look_at()
942 xfrm_selector_match(&x->sel, fl, family))) && in xfrm_state_look_at()
952 unsigned short family, u32 if_id) in xfrm_state_find() argument
973 if (x->props.family == encap_family && in xfrm_state_find()
982 xfrm_state_look_at(pol, x, fl, family, in xfrm_state_find()
990 if (x->props.family == encap_family && in xfrm_state_find()
999 xfrm_state_look_at(pol, x, fl, family, in xfrm_state_find()
1031 xfrm_init_tempstate(x, fl, tmpl, daddr, saddr, family); in xfrm_state_find()
1093 unsigned short family, u8 mode, u8 proto, u32 reqid) in xfrm_stateonly_find() argument
1099 h = xfrm_dst_hash(net, daddr, saddr, reqid, family); in xfrm_stateonly_find()
1101 if (x->props.family == family && in xfrm_stateonly_find()
1106 xfrm_state_addr_check(x, daddr, saddr, family) && in xfrm_stateonly_find()
1125 unsigned short family) in xfrm_state_lookup_byspi() argument
1133 if (x->props.family != family || in xfrm_state_lookup_byspi()
1154 x->props.reqid, x->props.family); in __xfrm_state_insert()
1157 h = xfrm_src_hash(net, &x->id.daddr, &x->props.saddr, x->props.family); in __xfrm_state_insert()
1162 x->props.family); in __xfrm_state_insert()
1180 unsigned short family = xnew->props.family; in __xfrm_state_bump_genids() local
1187 h = xfrm_dst_hash(net, &xnew->id.daddr, &xnew->props.saddr, reqid, family); in __xfrm_state_bump_genids()
1189 if (x->props.family == family && in __xfrm_state_bump_genids()
1193 xfrm_addr_equal(&x->id.daddr, &xnew->id.daddr, family) && in __xfrm_state_bump_genids()
1194 xfrm_addr_equal(&x->props.saddr, &xnew->props.saddr, family)) in __xfrm_state_bump_genids()
1213 unsigned short family, u8 mode, in __find_acq_core() argument
1219 unsigned int h = xfrm_dst_hash(net, daddr, saddr, reqid, family); in __find_acq_core()
1226 x->props.family != family || in __find_acq_core()
1231 !xfrm_addr_equal(&x->id.daddr, daddr, family) || in __find_acq_core()
1232 !xfrm_addr_equal(&x->props.saddr, saddr, family)) in __find_acq_core()
1244 switch (family) { in __find_acq_core()
1266 x->props.family = family; in __find_acq_core()
1277 h = xfrm_src_hash(net, daddr, saddr, family); in __find_acq_core()
1294 int family; in xfrm_state_add() local
1299 family = x->props.family; in xfrm_state_add()
1305 x1 = __xfrm_state_locate(x, use_spi, family); in xfrm_state_add()
1316 !xfrm_addr_equal(&x1->id.daddr, &x->id.daddr, family))) { in xfrm_state_add()
1323 x1 = __find_acq_core(net, &x->mark, family, x->props.mode, in xfrm_state_add()
1385 x->props.family = orig->props.family; in xfrm_state_clone()
1558 x1 = __xfrm_state_locate(x, use_spi, x->props.family); in xfrm_state_update()
1663 u8 proto, unsigned short family) in xfrm_state_lookup() argument
1668 x = __xfrm_state_lookup(net, mark, daddr, spi, proto, family); in xfrm_state_lookup()
1677 u8 proto, unsigned short family) in xfrm_state_lookup_byaddr() argument
1682 x = __xfrm_state_lookup_byaddr(net, mark, daddr, saddr, proto, family); in xfrm_state_lookup_byaddr()
1691 const xfrm_address_t *saddr, int create, unsigned short family) in xfrm_find_acq() argument
1696 x = __find_acq_core(net, mark, family, mode, reqid, if_id, proto, daddr, saddr, create); in xfrm_find_acq()
1706 unsigned short family, struct net *net) in xfrm_tmpl_sort() argument
1710 struct xfrm_state_afinfo *afinfo = xfrm_state_get_afinfo(family); in xfrm_tmpl_sort()
1728 unsigned short family) in xfrm_state_sort() argument
1732 struct xfrm_state_afinfo *afinfo = xfrm_state_get_afinfo(family); in xfrm_state_sort()
1841 x0 = xfrm_state_lookup(net, mark, &x->id.daddr, minspi, x->id.proto, x->props.family); in xfrm_alloc_spi()
1851 x0 = xfrm_state_lookup(net, mark, &x->id.daddr, htonl(spi), x->id.proto, x->props.family); in xfrm_alloc_spi()
1861 h = xfrm_spi_hash(net, &x->id.daddr, x->id.spi, x->id.proto, x->props.family); in xfrm_alloc_spi()
1879 if ((filter->family == AF_INET || in __xfrm_state_filter_match()
1880 filter->family == AF_INET6) && in __xfrm_state_filter_match()
1881 x->props.family != filter->family) in __xfrm_state_filter_match()
2194 if (WARN_ON(afinfo->family >= NPROTO)) in xfrm_state_register_afinfo()
2198 if (unlikely(xfrm_state_afinfo[afinfo->family] != NULL)) in xfrm_state_register_afinfo()
2201 rcu_assign_pointer(xfrm_state_afinfo[afinfo->family], afinfo); in xfrm_state_register_afinfo()
2209 int err = 0, family = afinfo->family; in xfrm_state_unregister_afinfo() local
2211 if (WARN_ON(family >= NPROTO)) in xfrm_state_unregister_afinfo()
2215 if (likely(xfrm_state_afinfo[afinfo->family] != NULL)) { in xfrm_state_unregister_afinfo()
2216 if (rcu_access_pointer(xfrm_state_afinfo[family]) != afinfo) in xfrm_state_unregister_afinfo()
2219 RCU_INIT_POINTER(xfrm_state_afinfo[afinfo->family], NULL); in xfrm_state_unregister_afinfo()
2227 struct xfrm_state_afinfo *xfrm_state_afinfo_get_rcu(unsigned int family) in xfrm_state_afinfo_get_rcu() argument
2229 if (unlikely(family >= NPROTO)) in xfrm_state_afinfo_get_rcu()
2232 return rcu_dereference(xfrm_state_afinfo[family]); in xfrm_state_afinfo_get_rcu()
2235 struct xfrm_state_afinfo *xfrm_state_get_afinfo(unsigned int family) in xfrm_state_get_afinfo() argument
2238 if (unlikely(family >= NPROTO)) in xfrm_state_get_afinfo()
2241 afinfo = rcu_dereference(xfrm_state_afinfo[family]); in xfrm_state_get_afinfo()
2283 int family = x->props.family; in __xfrm_init_state() local
2287 afinfo = xfrm_state_get_afinfo(family); in __xfrm_init_state()
2302 if (x->sel.family != AF_UNSPEC) { in __xfrm_init_state()
2303 inner_mode = xfrm_get_mode(x->props.mode, x->sel.family); in __xfrm_init_state()
2308 family != x->sel.family) { in __xfrm_init_state()
2318 inner_mode = xfrm_get_mode(x->props.mode, x->props.family); in __xfrm_init_state()
2328 if (x->props.family == AF_INET) in __xfrm_init_state()
2340 x->type = xfrm_get_type(x->id.proto, family); in __xfrm_init_state()
2344 x->type_offload = xfrm_get_type_offload(x->id.proto, family, offload); in __xfrm_init_state()
2350 x->outer_mode = xfrm_get_mode(x->props.mode, family); in __xfrm_init_state()
2447 switch (x->props.family) { in xfrm_audit_helper_sainfo()
2461 static void xfrm_audit_helper_pktinfo(struct sk_buff *skb, u16 family, in xfrm_audit_helper_pktinfo() argument
2467 switch (family) { in xfrm_audit_helper_pktinfo()
2522 xfrm_audit_helper_pktinfo(skb, x->props.family, audit_buf); in xfrm_audit_state_replay_overflow()
2540 xfrm_audit_helper_pktinfo(skb, x->props.family, audit_buf); in xfrm_audit_state_replay()
2548 void xfrm_audit_state_notfound_simple(struct sk_buff *skb, u16 family) in xfrm_audit_state_notfound_simple() argument
2555 xfrm_audit_helper_pktinfo(skb, family, audit_buf); in xfrm_audit_state_notfound_simple()
2560 void xfrm_audit_state_notfound(struct sk_buff *skb, u16 family, in xfrm_audit_state_notfound() argument
2569 xfrm_audit_helper_pktinfo(skb, family, audit_buf); in xfrm_audit_state_notfound()
2587 xfrm_audit_helper_pktinfo(skb, x->props.family, audit_buf); in xfrm_audit_state_icvfail()