Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/1.2/patches/805962/?format=api
{ "id": 805962, "url": "http://patchwork.ozlabs.org/api/1.2/patches/805962/?format=api", "web_url": "http://patchwork.ozlabs.org/project/netdev/patch/1503678089-27131-2-git-send-email-u9012063@gmail.com/", "project": { "id": 7, "url": "http://patchwork.ozlabs.org/api/1.2/projects/7/?format=api", "name": "Linux network development", "link_name": "netdev", "list_id": "netdev.vger.kernel.org", "list_email": "netdev@vger.kernel.org", "web_url": null, "scm_url": null, "webscm_url": null, "list_archive_url": "", "list_archive_url_format": "", "commit_url_format": "" }, "msgid": "<1503678089-27131-2-git-send-email-u9012063@gmail.com>", "list_archive_url": null, "date": "2017-08-25T16:21:27", "name": "[net-next,1/3] gre: refactor the gre_fb_xmit", "commit_ref": null, "pull_url": null, "state": "accepted", "archived": true, "hash": "cdd8b9b51cbad484d9b8527942edfb8d97c22193", "submitter": { "id": 67856, "url": "http://patchwork.ozlabs.org/api/1.2/people/67856/?format=api", "name": "William Tu", "email": "u9012063@gmail.com" }, "delegate": { "id": 34, "url": "http://patchwork.ozlabs.org/api/1.2/users/34/?format=api", "username": "davem", "first_name": "David", "last_name": "Miller", "email": "davem@davemloft.net" }, "mbox": "http://patchwork.ozlabs.org/project/netdev/patch/1503678089-27131-2-git-send-email-u9012063@gmail.com/mbox/", "series": [], "comments": "http://patchwork.ozlabs.org/api/patches/805962/comments/", "check": "pending", "checks": "http://patchwork.ozlabs.org/api/patches/805962/checks/", "tags": {}, "related": [], "headers": { "Return-Path": "<netdev-owner@vger.kernel.org>", "X-Original-To": "patchwork-incoming@ozlabs.org", "Delivered-To": "patchwork-incoming@ozlabs.org", "Authentication-Results": [ "ozlabs.org;\n\tspf=none (mailfrom) smtp.mailfrom=vger.kernel.org\n\t(client-ip=209.132.180.67; helo=vger.kernel.org;\n\tenvelope-from=netdev-owner@vger.kernel.org;\n\treceiver=<UNKNOWN>)", "ozlabs.org; dkim=pass (2048-bit key;\n\tunprotected) header.d=gmail.com header.i=@gmail.com\n\theader.b=\"ge14DHcB\"; dkim-atps=neutral" ], "Received": [ "from vger.kernel.org (vger.kernel.org [209.132.180.67])\n\tby ozlabs.org (Postfix) with ESMTP id 3xf5yc6h2Cz9rxm\n\tfor <patchwork-incoming@ozlabs.org>;\n\tSat, 26 Aug 2017 02:21:44 +1000 (AEST)", "(majordomo@vger.kernel.org) by vger.kernel.org via listexpand\n\tid S934397AbdHYQVn (ORCPT <rfc822;patchwork-incoming@ozlabs.org>);\n\tFri, 25 Aug 2017 12:21:43 -0400", "from mail-pg0-f66.google.com ([74.125.83.66]:33173 \"EHLO\n\tmail-pg0-f66.google.com\" rhost-flags-OK-OK-OK-OK) by vger.kernel.org\n\twith ESMTP id S934389AbdHYQVl (ORCPT\n\t<rfc822;netdev@vger.kernel.org>); Fri, 25 Aug 2017 12:21:41 -0400", "by mail-pg0-f66.google.com with SMTP id q16so391114pgc.0\n\tfor <netdev@vger.kernel.org>; Fri, 25 Aug 2017 09:21:41 -0700 (PDT)", "from sc9-mailhost2.vmware.com ([208.91.1.34])\n\tby smtp.gmail.com with ESMTPSA id\n\tk197sm1051155pga.78.2017.08.25.09.21.40\n\tfor <netdev@vger.kernel.org>\n\t(version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128);\n\tFri, 25 Aug 2017 09:21:40 -0700 (PDT)" ], "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=gmail.com; s=20161025;\n\th=from:to:subject:date:message-id:in-reply-to:references;\n\tbh=LgbT9reDKnpviEdvTGQuF+KFlUzgK0MERP2hfXtgNeU=;\n\tb=ge14DHcBf4kNUsQQO+/BbgQpCP0TdMZuja3qU7jvdSmf2t+r+X2CJ3ehIoDU9o+So7\n\tP186mPzhAh2K8XNv0NWK11Z039kdcweFlP5QtJecaqksVF+K9U3osoXurjes2K7xhHPZ\n\ty2tuPj1dzlxtwhEGFdKgqADzw/rvQ8a7j3TPUv4QV0SIC8YeFtpE0zLxJEXLjYhtlKLj\n\tvge/7XGPQ1uQ09kzNCIVXJcr+CpPhZnVHfgNrjIsAYINMA7UqbhsbuACvfSYgdUQAIFl\n\tWOF7GYeiKC3EjS+0Asu+e/fxEivCQQZHKj8PdmAOeoEk40LgSNFoBzOicMJCA/CCci9V\n\tOrnw==", "X-Google-DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20161025;\n\th=x-gm-message-state:from:to:subject:date:message-id:in-reply-to\n\t:references;\n\tbh=LgbT9reDKnpviEdvTGQuF+KFlUzgK0MERP2hfXtgNeU=;\n\tb=uiRwh/3dPoiBW7rXfJGtXmcbdaAwyFPlgUD/W1dbKVBLfRBSQ+DSdE4pzcPuO/c73Q\n\tjlQtuAB6QTdqcV4TtXQck7JIqPRaU1Ps9IO0IJC4ShMFoD3xJ5RHycVjU+lzQZXi/LOd\n\tpvS20ctRjgvSUMll8QqEaZnVchwkO4zASyhC/O4MZuA+AcJf4i4ieJF8v42pUT51C0ST\n\tDdGrZoON9FU65oDNVPnRToeeEw52HSkijmfLEy1ZDNXgJET7XiGfVK+K63WUqoJ89fo5\n\t1enC69BkvMHdaTPMBoF22Z1bHAvTACuzelHMFWOmKuTuyg3ydIhuPRgT33IFLbH/EusB\n\tFPTQ==", "X-Gm-Message-State": "AHYfb5i7awKl3KjO+ySsWHjihQz/shK0PTt6gCX9h2hq4tVa+gVADTee\n\t1wnwPv0ztV2mgErumac=", "X-Received": "by 10.99.37.199 with SMTP id l190mr10271962pgl.367.1503678100993;\n\tFri, 25 Aug 2017 09:21:40 -0700 (PDT)", "From": "William Tu <u9012063@gmail.com>", "To": "netdev@vger.kernel.org", "Subject": "[PATCH net-next 1/3] gre: refactor the gre_fb_xmit", "Date": "Fri, 25 Aug 2017 09:21:27 -0700", "Message-Id": "<1503678089-27131-2-git-send-email-u9012063@gmail.com>", "X-Mailer": "git-send-email 2.7.4", "In-Reply-To": "<1503678089-27131-1-git-send-email-u9012063@gmail.com>", "References": "<1503678089-27131-1-git-send-email-u9012063@gmail.com>", "Sender": "netdev-owner@vger.kernel.org", "Precedence": "bulk", "List-ID": "<netdev.vger.kernel.org>", "X-Mailing-List": "netdev@vger.kernel.org" }, "content": "The patch refactors the gre_fb_xmit function, by creating\nprepare_fb_xmit function for later ERSPAN collect_md mode patch.\n\nSigned-off-by: William Tu <u9012063@gmail.com>\n---\n net/ipv4/ip_gre.c | 55 ++++++++++++++++++++++++++++++++++++++++---------------\n 1 file changed, 40 insertions(+), 15 deletions(-)", "diff": "diff --git a/net/ipv4/ip_gre.c b/net/ipv4/ip_gre.c\nindex f70674799fdd..453b7925b940 100644\n--- a/net/ipv4/ip_gre.c\n+++ b/net/ipv4/ip_gre.c\n@@ -432,39 +432,33 @@ static struct rtable *gre_get_rt(struct sk_buff *skb,\n \treturn ip_route_output_key(net, fl);\n }\n \n-static void gre_fb_xmit(struct sk_buff *skb, struct net_device *dev,\n-\t\t\t__be16 proto)\n+static struct rtable *prepare_fb_xmit(struct sk_buff *skb,\n+\t\t\t\t struct net_device *dev,\n+\t\t\t\t struct flowi4 *fl,\n+\t\t\t\t int tunnel_hlen)\n {\n \tstruct ip_tunnel_info *tun_info;\n \tconst struct ip_tunnel_key *key;\n \tstruct rtable *rt = NULL;\n-\tstruct flowi4 fl;\n \tint min_headroom;\n-\tint tunnel_hlen;\n-\t__be16 df, flags;\n \tbool use_cache;\n \tint err;\n \n \ttun_info = skb_tunnel_info(skb);\n-\tif (unlikely(!tun_info || !(tun_info->mode & IP_TUNNEL_INFO_TX) ||\n-\t\t ip_tunnel_info_af(tun_info) != AF_INET))\n-\t\tgoto err_free_skb;\n-\n \tkey = &tun_info->key;\n \tuse_cache = ip_tunnel_dst_cache_usable(skb, tun_info);\n+\n \tif (use_cache)\n-\t\trt = dst_cache_get_ip4(&tun_info->dst_cache, &fl.saddr);\n+\t\trt = dst_cache_get_ip4(&tun_info->dst_cache, &fl->saddr);\n \tif (!rt) {\n-\t\trt = gre_get_rt(skb, dev, &fl, key);\n+\t\trt = gre_get_rt(skb, dev, fl, key);\n \t\tif (IS_ERR(rt))\n-\t\t\t\tgoto err_free_skb;\n+\t\t\tgoto err_free_skb;\n \t\tif (use_cache)\n \t\t\tdst_cache_set_ip4(&tun_info->dst_cache, &rt->dst,\n-\t\t\t\t\t fl.saddr);\n+\t\t\t\t\t fl->saddr);\n \t}\n \n-\ttunnel_hlen = gre_calc_hlen(key->tun_flags);\n-\n \tmin_headroom = LL_RESERVED_SPACE(rt->dst.dev) + rt->dst.header_len\n \t\t\t+ tunnel_hlen + sizeof(struct iphdr);\n \tif (skb_headroom(skb) < min_headroom || skb_header_cloned(skb)) {\n@@ -476,6 +470,37 @@ static void gre_fb_xmit(struct sk_buff *skb, struct net_device *dev,\n \t\tif (unlikely(err))\n \t\t\tgoto err_free_rt;\n \t}\n+\treturn rt;\n+\n+err_free_rt:\n+\tip_rt_put(rt);\n+err_free_skb:\n+\tkfree_skb(skb);\n+\tdev->stats.tx_dropped++;\n+\treturn NULL;\n+}\n+\n+static void gre_fb_xmit(struct sk_buff *skb, struct net_device *dev,\n+\t\t\t__be16 proto)\n+{\n+\tstruct ip_tunnel_info *tun_info;\n+\tconst struct ip_tunnel_key *key;\n+\tstruct rtable *rt = NULL;\n+\tstruct flowi4 fl;\n+\tint tunnel_hlen;\n+\t__be16 df, flags;\n+\n+\ttun_info = skb_tunnel_info(skb);\n+\tif (unlikely(!tun_info || !(tun_info->mode & IP_TUNNEL_INFO_TX) ||\n+\t\t ip_tunnel_info_af(tun_info) != AF_INET))\n+\t\tgoto err_free_skb;\n+\n+\tkey = &tun_info->key;\n+\ttunnel_hlen = gre_calc_hlen(key->tun_flags);\n+\n+\trt = prepare_fb_xmit(skb, dev, &fl, tunnel_hlen);\n+\tif (!rt)\n+\t\treturn;\n \n \t/* Push Tunnel header. */\n \tif (gre_handle_offloads(skb, !!(tun_info->key.tun_flags & TUNNEL_CSUM)))\n", "prefixes": [ "net-next", "1/3" ] }