Lines Matching refs:pfk

80 static void pfkey_terminate_dump(struct pfkey_sock *pfk)  in pfkey_terminate_dump()  argument
82 if (pfk->dump.dump) { in pfkey_terminate_dump()
83 if (pfk->dump.skb) { in pfkey_terminate_dump()
84 kfree_skb(pfk->dump.skb); in pfkey_terminate_dump()
85 pfk->dump.skb = NULL; in pfkey_terminate_dump()
87 pfk->dump.done(pfk); in pfkey_terminate_dump()
88 pfk->dump.dump = NULL; in pfkey_terminate_dump()
89 pfk->dump.done = NULL; in pfkey_terminate_dump()
239 struct pfkey_sock *pfk = pfkey_sk(sk); in pfkey_broadcast() local
246 if (pfk->promisc) in pfkey_broadcast()
256 !pfk->registered) in pfkey_broadcast()
279 static int pfkey_do_dump(struct pfkey_sock *pfk) in pfkey_do_dump() argument
284 rc = pfk->dump.dump(pfk); in pfkey_do_dump()
288 if (pfk->dump.skb) { in pfkey_do_dump()
289 if (!pfkey_can_dump(&pfk->sk)) in pfkey_do_dump()
292 hdr = (struct sadb_msg *) pfk->dump.skb->data; in pfkey_do_dump()
295 pfkey_broadcast(pfk->dump.skb, GFP_ATOMIC, BROADCAST_ONE, in pfkey_do_dump()
296 &pfk->sk, sock_net(&pfk->sk)); in pfkey_do_dump()
297 pfk->dump.skb = NULL; in pfkey_do_dump()
300 pfkey_terminate_dump(pfk); in pfkey_do_dump()
1650 struct pfkey_sock *pfk = pfkey_sk(sk); in pfkey_register() local
1657 if (pfk->registered&(1<<hdr->sadb_msg_satype)) in pfkey_register()
1659 pfk->registered |= (1<<hdr->sadb_msg_satype); in pfkey_register()
1667 pfk->registered &= ~(1<<hdr->sadb_msg_satype); in pfkey_register()
1748 struct pfkey_sock *pfk = ptr; in dump_sa() local
1752 if (!pfkey_can_dump(&pfk->sk)) in dump_sa()
1760 out_hdr->sadb_msg_version = pfk->dump.msg_version; in dump_sa()
1766 out_hdr->sadb_msg_pid = pfk->dump.msg_portid; in dump_sa()
1768 if (pfk->dump.skb) in dump_sa()
1769 pfkey_broadcast(pfk->dump.skb, GFP_ATOMIC, BROADCAST_ONE, in dump_sa()
1770 &pfk->sk, sock_net(&pfk->sk)); in dump_sa()
1771 pfk->dump.skb = out_skb; in dump_sa()
1776 static int pfkey_dump_sa(struct pfkey_sock *pfk) in pfkey_dump_sa() argument
1778 struct net *net = sock_net(&pfk->sk); in pfkey_dump_sa()
1779 return xfrm_state_walk(net, &pfk->dump.u.state, dump_sa, (void *) pfk); in pfkey_dump_sa()
1782 static void pfkey_dump_sa_done(struct pfkey_sock *pfk) in pfkey_dump_sa_done() argument
1784 struct net *net = sock_net(&pfk->sk); in pfkey_dump_sa_done()
1786 xfrm_state_walk_done(&pfk->dump.u.state, net); in pfkey_dump_sa_done()
1793 struct pfkey_sock *pfk = pfkey_sk(sk); in pfkey_dump() local
1795 if (pfk->dump.dump != NULL) in pfkey_dump()
1818 pfk->dump.msg_version = hdr->sadb_msg_version; in pfkey_dump()
1819 pfk->dump.msg_portid = hdr->sadb_msg_pid; in pfkey_dump()
1820 pfk->dump.dump = pfkey_dump_sa; in pfkey_dump()
1821 pfk->dump.done = pfkey_dump_sa_done; in pfkey_dump()
1822 xfrm_state_walk_init(&pfk->dump.u.state, proto, filter); in pfkey_dump()
1824 return pfkey_do_dump(pfk); in pfkey_dump()
1829 struct pfkey_sock *pfk = pfkey_sk(sk); in pfkey_promisc() local
1837 pfk->promisc = satype; in pfkey_promisc()
2632 struct pfkey_sock *pfk = ptr; in dump_sp() local
2637 if (!pfkey_can_dump(&pfk->sk)) in dump_sp()
2649 out_hdr->sadb_msg_version = pfk->dump.msg_version; in dump_sp()
2654 out_hdr->sadb_msg_pid = pfk->dump.msg_portid; in dump_sp()
2656 if (pfk->dump.skb) in dump_sp()
2657 pfkey_broadcast(pfk->dump.skb, GFP_ATOMIC, BROADCAST_ONE, in dump_sp()
2658 &pfk->sk, sock_net(&pfk->sk)); in dump_sp()
2659 pfk->dump.skb = out_skb; in dump_sp()
2664 static int pfkey_dump_sp(struct pfkey_sock *pfk) in pfkey_dump_sp() argument
2666 struct net *net = sock_net(&pfk->sk); in pfkey_dump_sp()
2667 return xfrm_policy_walk(net, &pfk->dump.u.policy, dump_sp, (void *) pfk); in pfkey_dump_sp()
2670 static void pfkey_dump_sp_done(struct pfkey_sock *pfk) in pfkey_dump_sp_done() argument
2672 struct net *net = sock_net((struct sock *)pfk); in pfkey_dump_sp_done()
2674 xfrm_policy_walk_done(&pfk->dump.u.policy, net); in pfkey_dump_sp_done()
2679 struct pfkey_sock *pfk = pfkey_sk(sk); in pfkey_spddump() local
2681 if (pfk->dump.dump != NULL) in pfkey_spddump()
2684 pfk->dump.msg_version = hdr->sadb_msg_version; in pfkey_spddump()
2685 pfk->dump.msg_portid = hdr->sadb_msg_pid; in pfkey_spddump()
2686 pfk->dump.dump = pfkey_dump_sp; in pfkey_spddump()
2687 pfk->dump.done = pfkey_dump_sp_done; in pfkey_spddump()
2688 xfrm_policy_walk_init(&pfk->dump.u.policy, XFRM_POLICY_TYPE_MAIN); in pfkey_spddump()
2690 return pfkey_do_dump(pfk); in pfkey_spddump()
3636 struct pfkey_sock *pfk = pfkey_sk(sk); in pfkey_recvmsg() local
3663 if (pfk->dump.dump != NULL && in pfkey_recvmsg()
3665 pfkey_do_dump(pfk); in pfkey_recvmsg()