xfrm: remove output indirection from xfrm_mode
Same is input indirection. Only exception: we need to export
xfrm_outer_mode_output for pktgen.
Increases size of vmlinux by about 163 byte:
Before:
text data bss dec filename
15730208 6936948 4046908 26714064 vmlinux
After:
15730311 6937008
4046908 26714227 vmlinux
xfrm_inner_extract_output has no more external callers, make it static.
v2: add IS_ENABLED(IPV6) guard in xfrm6_prepare_output
add two missing breaks in xfrm_outer_mode_output (Sabrina Dubroca)
add WARN_ON_ONCE for 'call AF_INET6 related output function, but
CONFIG_IPV6=n' case.
make xfrm_inner_extract_output static
Signed-off-by: Florian Westphal <fw@strlen.de>
Reviewed-by: Sabrina Dubroca <sd@queasysnail.net>
Signed-off-by: Steffen Klassert <steffen.klassert@secunet.com>
This commit is contained in:

committed by
Steffen Klassert

parent
c2d305e510
commit
0c620e97b3
@@ -449,17 +449,6 @@ struct xfrm_mode {
|
||||
*/
|
||||
int (*output2)(struct xfrm_state *x,struct sk_buff *skb);
|
||||
|
||||
/*
|
||||
* This is the actual output entry point.
|
||||
*
|
||||
* For transport mode and equivalent this would be identical to
|
||||
* output2 (which does not need to be set). While tunnel mode
|
||||
* and equivalent would set this to a tunnel encapsulation function
|
||||
* (xfrm4_prepare_output or xfrm6_prepare_output) that would in turn
|
||||
* call output2.
|
||||
*/
|
||||
int (*output)(struct xfrm_state *x, struct sk_buff *skb);
|
||||
|
||||
/*
|
||||
* Adjust pointers into the packet and do GSO segmentation.
|
||||
*/
|
||||
@@ -1603,7 +1592,11 @@ int xfrm_trans_queue(struct sk_buff *skb,
|
||||
struct sk_buff *));
|
||||
int xfrm_output_resume(struct sk_buff *skb, int err);
|
||||
int xfrm_output(struct sock *sk, struct sk_buff *skb);
|
||||
int xfrm_inner_extract_output(struct xfrm_state *x, struct sk_buff *skb);
|
||||
|
||||
#if IS_ENABLED(CONFIG_NET_PKTGEN)
|
||||
int pktgen_xfrm_outer_mode_output(struct xfrm_state *x, struct sk_buff *skb);
|
||||
#endif
|
||||
|
||||
void xfrm_local_error(struct sk_buff *skb, int mtu);
|
||||
int xfrm4_extract_header(struct sk_buff *skb);
|
||||
int xfrm4_extract_input(struct xfrm_state *x, struct sk_buff *skb);
|
||||
@@ -1622,7 +1615,6 @@ static inline int xfrm4_rcv_spi(struct sk_buff *skb, int nexthdr, __be32 spi)
|
||||
}
|
||||
|
||||
int xfrm4_extract_output(struct xfrm_state *x, struct sk_buff *skb);
|
||||
int xfrm4_prepare_output(struct xfrm_state *x, struct sk_buff *skb);
|
||||
int xfrm4_output(struct net *net, struct sock *sk, struct sk_buff *skb);
|
||||
int xfrm4_output_finish(struct sock *sk, struct sk_buff *skb);
|
||||
int xfrm4_rcv_cb(struct sk_buff *skb, u8 protocol, int err);
|
||||
@@ -1649,7 +1641,6 @@ int xfrm6_tunnel_deregister(struct xfrm6_tunnel *handler, unsigned short family)
|
||||
__be32 xfrm6_tunnel_alloc_spi(struct net *net, xfrm_address_t *saddr);
|
||||
__be32 xfrm6_tunnel_spi_lookup(struct net *net, const xfrm_address_t *saddr);
|
||||
int xfrm6_extract_output(struct xfrm_state *x, struct sk_buff *skb);
|
||||
int xfrm6_prepare_output(struct xfrm_state *x, struct sk_buff *skb);
|
||||
int xfrm6_output(struct net *net, struct sock *sk, struct sk_buff *skb);
|
||||
int xfrm6_output_finish(struct sock *sk, struct sk_buff *skb);
|
||||
int xfrm6_find_1stfragopt(struct xfrm_state *x, struct sk_buff *skb,
|
||||
|
Reference in New Issue
Block a user