xfrm4_output.c (0c4b51f0054ce85c0ec578ab818f0631834573eb) xfrm4_output.c (be10de0a322ded7701a4dcce4a0ba83b3bbf42e5)
1/*
2 * xfrm4_output.c - Common IPsec encapsulation code for IPv4.
3 * Copyright (c) 2004 Herbert Xu <herbert@gondor.apana.org.au>
4 *
5 * This program is free software; you can redistribute it and/or
6 * modify it under the terms of the GNU General Public License
7 * as published by the Free Software Foundation; either version
8 * 2 of the License, or (at your option) any later version.

--- 83 unchanged lines hidden (view full) ---

92#endif
93
94 return x->outer_mode->afinfo->output_finish(sk, skb);
95}
96
97int xfrm4_output(struct sock *sk, struct sk_buff *skb)
98{
99 struct net *net = dev_net(skb_dst(skb)->dev);
1/*
2 * xfrm4_output.c - Common IPsec encapsulation code for IPv4.
3 * Copyright (c) 2004 Herbert Xu <herbert@gondor.apana.org.au>
4 *
5 * This program is free software; you can redistribute it and/or
6 * modify it under the terms of the GNU General Public License
7 * as published by the Free Software Foundation; either version
8 * 2 of the License, or (at your option) any later version.

--- 83 unchanged lines hidden (view full) ---

92#endif
93
94 return x->outer_mode->afinfo->output_finish(sk, skb);
95}
96
97int xfrm4_output(struct sock *sk, struct sk_buff *skb)
98{
99 struct net *net = dev_net(skb_dst(skb)->dev);
100
100 return NF_HOOK_COND(NFPROTO_IPV4, NF_INET_POST_ROUTING,
101 net, sk, skb, NULL, skb_dst(skb)->dev,
102 __xfrm4_output,
103 !(IPCB(skb)->flags & IPSKB_REROUTED));
104}
105
106void xfrm4_local_error(struct sk_buff *skb, u32 mtu)
107{
108 struct iphdr *hdr;
109
110 hdr = skb->encapsulation ? inner_ip_hdr(skb) : ip_hdr(skb);
111 ip_local_error(skb->sk, EMSGSIZE, hdr->daddr,
112 inet_sk(skb->sk)->inet_dport, mtu);
113}
101 return NF_HOOK_COND(NFPROTO_IPV4, NF_INET_POST_ROUTING,
102 net, sk, skb, NULL, skb_dst(skb)->dev,
103 __xfrm4_output,
104 !(IPCB(skb)->flags & IPSKB_REROUTED));
105}
106
107void xfrm4_local_error(struct sk_buff *skb, u32 mtu)
108{
109 struct iphdr *hdr;
110
111 hdr = skb->encapsulation ? inner_ip_hdr(skb) : ip_hdr(skb);
112 ip_local_error(skb->sk, EMSGSIZE, hdr->daddr,
113 inet_sk(skb->sk)->inet_dport, mtu);
114}