Lines Matching refs:afinfo

102 	struct xfrm_policy_afinfo *afinfo;  in xfrm_policy_get_afinfo()  local
107 afinfo = rcu_dereference(xfrm_policy_afinfo[family]); in xfrm_policy_get_afinfo()
108 if (unlikely(!afinfo)) in xfrm_policy_get_afinfo()
110 return afinfo; in xfrm_policy_get_afinfo()
113 static void xfrm_policy_put_afinfo(struct xfrm_policy_afinfo *afinfo) in xfrm_policy_put_afinfo() argument
124 struct xfrm_policy_afinfo *afinfo; in __xfrm_dst_lookup() local
127 afinfo = xfrm_policy_get_afinfo(family); in __xfrm_dst_lookup()
128 if (unlikely(afinfo == NULL)) in __xfrm_dst_lookup()
131 dst = afinfo->dst_lookup(net, tos, oif, saddr, daddr); in __xfrm_dst_lookup()
133 xfrm_policy_put_afinfo(afinfo); in __xfrm_dst_lookup()
1402 struct xfrm_policy_afinfo *afinfo = xfrm_policy_get_afinfo(family); in xfrm_get_saddr() local
1404 if (unlikely(afinfo == NULL)) in xfrm_get_saddr()
1406 err = afinfo->get_saddr(net, oif, local, remote); in xfrm_get_saddr()
1407 xfrm_policy_put_afinfo(afinfo); in xfrm_get_saddr()
1515 struct xfrm_policy_afinfo *afinfo = xfrm_policy_get_afinfo(family); in xfrm_get_tos() local
1518 if (!afinfo) in xfrm_get_tos()
1521 tos = afinfo->get_tos(fl); in xfrm_get_tos()
1523 xfrm_policy_put_afinfo(afinfo); in xfrm_get_tos()
1580 struct xfrm_policy_afinfo *afinfo = xfrm_policy_get_afinfo(family); in xfrm_alloc_dst() local
1584 if (!afinfo) in xfrm_alloc_dst()
1609 xfrm_policy_put_afinfo(afinfo); in xfrm_alloc_dst()
1617 struct xfrm_policy_afinfo *afinfo = in xfrm_init_path() local
1621 if (!afinfo) in xfrm_init_path()
1624 err = afinfo->init_path(path, dst, nfheader_len); in xfrm_init_path()
1626 xfrm_policy_put_afinfo(afinfo); in xfrm_init_path()
1634 struct xfrm_policy_afinfo *afinfo = in xfrm_fill_dst() local
1638 if (!afinfo) in xfrm_fill_dst()
1641 err = afinfo->fill_dst(xdst, dev, fl); in xfrm_fill_dst()
1643 xfrm_policy_put_afinfo(afinfo); in xfrm_fill_dst()
1731 dst1->output = inner_mode->afinfo->output; in xfrm_bundle_create()
2186 struct xfrm_policy_afinfo *afinfo = xfrm_policy_get_afinfo(family); in make_blackhole() local
2189 if (!afinfo) { in make_blackhole()
2193 ret = afinfo->blackhole_route(net, dst_orig); in make_blackhole()
2195 xfrm_policy_put_afinfo(afinfo); in make_blackhole()
2437 struct xfrm_policy_afinfo *afinfo = xfrm_policy_get_afinfo(family); in __xfrm_decode_session() local
2440 if (unlikely(afinfo == NULL)) in __xfrm_decode_session()
2443 afinfo->decode_session(skb, fl, reverse); in __xfrm_decode_session()
2445 xfrm_policy_put_afinfo(afinfo); in __xfrm_decode_session()
2827 int xfrm_policy_register_afinfo(struct xfrm_policy_afinfo *afinfo) in xfrm_policy_register_afinfo() argument
2830 if (unlikely(afinfo == NULL)) in xfrm_policy_register_afinfo()
2832 if (unlikely(afinfo->family >= NPROTO)) in xfrm_policy_register_afinfo()
2835 if (unlikely(xfrm_policy_afinfo[afinfo->family] != NULL)) in xfrm_policy_register_afinfo()
2838 struct dst_ops *dst_ops = afinfo->dst_ops; in xfrm_policy_register_afinfo()
2853 if (likely(afinfo->garbage_collect == NULL)) in xfrm_policy_register_afinfo()
2854 afinfo->garbage_collect = xfrm_garbage_collect_deferred; in xfrm_policy_register_afinfo()
2855 rcu_assign_pointer(xfrm_policy_afinfo[afinfo->family], afinfo); in xfrm_policy_register_afinfo()
2863 int xfrm_policy_unregister_afinfo(struct xfrm_policy_afinfo *afinfo) in xfrm_policy_unregister_afinfo() argument
2866 if (unlikely(afinfo == NULL)) in xfrm_policy_unregister_afinfo()
2868 if (unlikely(afinfo->family >= NPROTO)) in xfrm_policy_unregister_afinfo()
2871 if (likely(xfrm_policy_afinfo[afinfo->family] != NULL)) { in xfrm_policy_unregister_afinfo()
2872 if (unlikely(xfrm_policy_afinfo[afinfo->family] != afinfo)) in xfrm_policy_unregister_afinfo()
2875 RCU_INIT_POINTER(xfrm_policy_afinfo[afinfo->family], in xfrm_policy_unregister_afinfo()
2880 struct dst_ops *dst_ops = afinfo->dst_ops; in xfrm_policy_unregister_afinfo()
2888 afinfo->garbage_collect = NULL; in xfrm_policy_unregister_afinfo()