[Devel,RHEL7,COMMIT] net/veth: NETIF_F_VENET hunk for RH7.3 rebase

Submitted by Konstantin Khorenko on Nov. 7, 2016, 2:03 p.m.

Details

Message ID 201611071403.uA7E3WfC014852@finist_cl7.x64_64.work.ct
State New
Series "net/veth: NETIF_F_VENET hunk for RH7.3 rebase"
Headers show

Commit Message

Konstantin Khorenko Nov. 7, 2016, 2:03 p.m.
The commit is pushed to "branch-rh7-3.10.0-493.vz7.25.x-ovz" and will appear at https://src.openvz.org/scm/ovz/vzkernel.git
after rh7-3.10.0-493.el7
------>
commit e30b666e2ad07b0267bcef670fec1095ff4a31bd
Author: Dmitry Safonov <dsafonov@virtuozzo.com>
Date:   Mon Nov 7 18:03:32 2016 +0400

    net/veth: NETIF_F_VENET hunk for RH7.3 rebase
    
    Hunk:
    # --- a/net/bridge/br_forward.c
    # +++ b/net/bridge/br_forward.c
    # @@ -44,7 +44,8 @@ int br_dev_queue_push_xmit(struct sock *sk, struct sk_buff *skb)
    #    {
    #           /* ip_fragment doesn't copy the MAC header */
    #           if (nf_bridge_maybe_copy_header(skb) ||
    # -           (packet_length(skb) > skb->dev->mtu && !skb_is_gso(skb))) {
    # +           (!(skb->dev->features & NETIF_F_VENET) &&
    # +            packet_length(skb) > skb->dev->mtu && !skb_is_gso(skb))) {
    #                   kfree_skb(skb);
    #           } else {
    #                   skb_push(skb, ETH_HLEN);
    
    is_skb_forwardable() now checks packet length and GSO enabling.
    Not interested in package size for veth forwarding - don't drop.
    
    To be merged into commit 53dba9e212cc3f440acc60a8d333df3967931937
    ("Initial patch commit + compilation fixes").
    
    https://jira.sw.ru/browse/PSBM-54819
    
    Cc: Andrei Vagin <avagin@virtuozzo.com>
    Cc: Kirill Tkhai <ktkhai@virtuozzo.com>
    Signed-off-by: Dmitry Safonov <dsafonov@virtuozzo.com>
---
 net/bridge/br_forward.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

Patch hide | download patch | download mbox

diff --git a/net/bridge/br_forward.c b/net/bridge/br_forward.c
index 5962f6f..e04576e 100644
--- a/net/bridge/br_forward.c
+++ b/net/bridge/br_forward.c
@@ -42,7 +42,8 @@  static inline unsigned int packet_length(const struct sk_buff *skb)
 
 int br_dev_queue_push_xmit(struct sock *sk, struct sk_buff *skb)
 {
-	if (!is_skb_forwardable(skb->dev, skb))
+	if (!(skb->dev->features & NETIF_F_VENET) &&
+	    !is_skb_forwardable(skb->dev, skb))
 		goto drop;
 
 	skb_push(skb, ETH_HLEN);