Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net
Minor overlapping changes in xfrm_device.c, between the double ESP trailing bug fix setting the XFRM_INIT flag and the changes in net-next preparing for bonding encryption support. Signed-off-by: David S. Miller <davem@davemloft.net>
这个提交包含在:
@@ -67,6 +67,30 @@ config XFRM_STATISTICS
|
||||
|
||||
If unsure, say N.
|
||||
|
||||
# This option selects XFRM_ALGO along with the AH authentication algorithms that
|
||||
# RFC 8221 lists as MUST be implemented.
|
||||
config XFRM_AH
|
||||
tristate
|
||||
select XFRM_ALGO
|
||||
select CRYPTO
|
||||
select CRYPTO_HMAC
|
||||
select CRYPTO_SHA256
|
||||
|
||||
# This option selects XFRM_ALGO along with the ESP encryption and authentication
|
||||
# algorithms that RFC 8221 lists as MUST be implemented.
|
||||
config XFRM_ESP
|
||||
tristate
|
||||
select XFRM_ALGO
|
||||
select CRYPTO
|
||||
select CRYPTO_AES
|
||||
select CRYPTO_AUTHENC
|
||||
select CRYPTO_CBC
|
||||
select CRYPTO_ECHAINIV
|
||||
select CRYPTO_GCM
|
||||
select CRYPTO_HMAC
|
||||
select CRYPTO_SEQIV
|
||||
select CRYPTO_SHA256
|
||||
|
||||
config XFRM_IPCOMP
|
||||
tristate
|
||||
select XFRM_ALGO
|
||||
|
@@ -109,7 +109,7 @@ struct sk_buff *validate_xmit_xfrm(struct sk_buff *skb, netdev_features_t featur
|
||||
struct net_device *dev = skb->dev;
|
||||
struct sec_path *sp;
|
||||
|
||||
if (!xo)
|
||||
if (!xo || (xo->flags & XFRM_XMIT))
|
||||
return skb;
|
||||
|
||||
if (!(features & NETIF_F_HW_ESP))
|
||||
@@ -134,6 +134,8 @@ struct sk_buff *validate_xmit_xfrm(struct sk_buff *skb, netdev_features_t featur
|
||||
return skb;
|
||||
}
|
||||
|
||||
xo->flags |= XFRM_XMIT;
|
||||
|
||||
if (skb_is_gso(skb) && unlikely(x->xso.dev != dev)) {
|
||||
struct sk_buff *segs;
|
||||
|
||||
|
@@ -574,16 +574,12 @@ int xfrm_output(struct sock *sk, struct sk_buff *skb)
|
||||
switch (x->outer_mode.family) {
|
||||
case AF_INET:
|
||||
memset(IPCB(skb), 0, sizeof(*IPCB(skb)));
|
||||
#ifdef CONFIG_NETFILTER
|
||||
IPCB(skb)->flags |= IPSKB_XFRM_TRANSFORMED;
|
||||
#endif
|
||||
break;
|
||||
case AF_INET6:
|
||||
memset(IP6CB(skb), 0, sizeof(*IP6CB(skb)));
|
||||
|
||||
#ifdef CONFIG_NETFILTER
|
||||
IP6CB(skb)->flags |= IP6SKB_XFRM_TRANSFORMED;
|
||||
#endif
|
||||
break;
|
||||
}
|
||||
|
||||
|
在新工单中引用
屏蔽一个用户