Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/patches/1168603/?format=api
{ "id": 1168603, "url": "http://patchwork.ozlabs.org/api/patches/1168603/?format=api", "web_url": "http://patchwork.ozlabs.org/project/netdev/patch/c97914d8f5f6fe49355e50b958fcb24c3ebc6d2c.1569491461.git.sd@queasysnail.net/", "project": { "id": 7, "url": "http://patchwork.ozlabs.org/api/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": "<c97914d8f5f6fe49355e50b958fcb24c3ebc6d2c.1569491461.git.sd@queasysnail.net>", "list_archive_url": null, "date": "2019-09-27T14:59:00", "name": "[ipsec-next,v3,5/6] esp4: split esp_output_udp_encap and introduce esp_output_encap", "commit_ref": null, "pull_url": null, "state": "awaiting-upstream", "archived": false, "hash": "acd30694562639ab202d24711db72d2fa4d3491a", "submitter": { "id": 47767, "url": "http://patchwork.ozlabs.org/api/people/47767/?format=api", "name": "Sabrina Dubroca", "email": "sd@queasysnail.net" }, "delegate": { "id": 34, "url": "http://patchwork.ozlabs.org/api/users/34/?format=api", "username": "davem", "first_name": "David", "last_name": "Miller", "email": "davem@davemloft.net" }, "mbox": "http://patchwork.ozlabs.org/project/netdev/patch/c97914d8f5f6fe49355e50b958fcb24c3ebc6d2c.1569491461.git.sd@queasysnail.net/mbox/", "series": [ { "id": 132948, "url": "http://patchwork.ozlabs.org/api/series/132948/?format=api", "web_url": "http://patchwork.ozlabs.org/project/netdev/list/?series=132948", "date": "2019-09-27T14:58:55", "name": "ipsec: add TCP encapsulation support (RFC 8229)", "version": 3, "mbox": "http://patchwork.ozlabs.org/series/132948/mbox/" } ], "comments": "http://patchwork.ozlabs.org/api/patches/1168603/comments/", "check": "pending", "checks": "http://patchwork.ozlabs.org/api/patches/1168603/checks/", "tags": {}, "related": [], "headers": { "Return-Path": "<netdev-owner@vger.kernel.org>", "X-Original-To": "patchwork-incoming-netdev@ozlabs.org", "Delivered-To": "patchwork-incoming-netdev@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; dmarc=none (p=none dis=none)\n\theader.from=queasysnail.net" ], "Received": [ "from vger.kernel.org (vger.kernel.org [209.132.180.67])\n\tby ozlabs.org (Postfix) with ESMTP id 46fw0f1kP2z9sNf\n\tfor <patchwork-incoming-netdev@ozlabs.org>;\n\tSat, 28 Sep 2019 00:58:42 +1000 (AEST)", "(majordomo@vger.kernel.org) by vger.kernel.org via listexpand\n\tid S1727832AbfI0O6l (ORCPT\n\t<rfc822;patchwork-incoming-netdev@ozlabs.org>);\n\tFri, 27 Sep 2019 10:58:41 -0400", "from mx1.redhat.com ([209.132.183.28]:34108 \"EHLO mx1.redhat.com\"\n\trhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP\n\tid S1726843AbfI0O6j (ORCPT <rfc822;netdev@vger.kernel.org>);\n\tFri, 27 Sep 2019 10:58:39 -0400", "from smtp.corp.redhat.com\n\t(int-mx03.intmail.prod.int.phx2.redhat.com [10.5.11.13])\n\t(using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits))\n\t(No client certificate requested)\n\tby mx1.redhat.com (Postfix) with ESMTPS id 8C98E3086E20;\n\tFri, 27 Sep 2019 14:58:39 +0000 (UTC)", "from hog.localdomain, (unknown [10.40.206.20])\n\tby smtp.corp.redhat.com (Postfix) with ESMTP id 771278DC00;\n\tFri, 27 Sep 2019 14:58:38 +0000 (UTC)" ], "From": "Sabrina Dubroca <sd@queasysnail.net>", "To": "netdev@vger.kernel.org", "Cc": "Herbert Xu <herbert@gondor.apana.org.au>,\n\tSteffen Klassert <steffen.klassert@secunet.com>,\n\tSabrina Dubroca <sd@queasysnail.net>", "Subject": "[PATCH ipsec-next v3 5/6] esp4: split esp_output_udp_encap and\n\tintroduce esp_output_encap", "Date": "Fri, 27 Sep 2019 16:59:00 +0200", "Message-Id": "<c97914d8f5f6fe49355e50b958fcb24c3ebc6d2c.1569491461.git.sd@queasysnail.net>", "In-Reply-To": "<cover.1569491461.git.sd@queasysnail.net>", "References": "<cover.1569491461.git.sd@queasysnail.net>", "MIME-Version": "1.0", "Content-Transfer-Encoding": "8bit", "X-Scanned-By": "MIMEDefang 2.79 on 10.5.11.13", "X-Greylist": "Sender IP whitelisted, not delayed by milter-greylist-4.5.16\n\t(mx1.redhat.com [10.5.110.44]);\n\tFri, 27 Sep 2019 14:58:39 +0000 (UTC)", "Sender": "netdev-owner@vger.kernel.org", "Precedence": "bulk", "List-ID": "<netdev.vger.kernel.org>", "X-Mailing-List": "netdev@vger.kernel.org" }, "content": "Co-developed-by: Herbert Xu <herbert@gondor.apana.org.au>\nSigned-off-by: Herbert Xu <herbert@gondor.apana.org.au>\nSigned-off-by: Sabrina Dubroca <sd@queasysnail.net>\n---\n net/ipv4/esp4.c | 57 ++++++++++++++++++++++++++++++++-----------------\n 1 file changed, 37 insertions(+), 20 deletions(-)", "diff": "diff --git a/net/ipv4/esp4.c b/net/ipv4/esp4.c\nindex c5d826642229..033c61d27148 100644\n--- a/net/ipv4/esp4.c\n+++ b/net/ipv4/esp4.c\n@@ -225,45 +225,62 @@ static void esp_output_fill_trailer(u8 *tail, int tfclen, int plen, __u8 proto)\n \ttail[plen - 1] = proto;\n }\n \n-static int esp_output_udp_encap(struct xfrm_state *x, struct sk_buff *skb, struct esp_info *esp)\n+static struct ip_esp_hdr *esp_output_udp_encap(struct sk_buff *skb,\n+\t\t\t\t\t int encap_type,\n+\t\t\t\t\t struct esp_info *esp,\n+\t\t\t\t\t __be16 sport,\n+\t\t\t\t\t __be16 dport)\n {\n-\tint encap_type;\n \tstruct udphdr *uh;\n \t__be32 *udpdata32;\n-\t__be16 sport, dport;\n-\tstruct xfrm_encap_tmpl *encap = x->encap;\n-\tstruct ip_esp_hdr *esph = esp->esph;\n \tunsigned int len;\n \n-\tspin_lock_bh(&x->lock);\n-\tsport = encap->encap_sport;\n-\tdport = encap->encap_dport;\n-\tencap_type = encap->encap_type;\n-\tspin_unlock_bh(&x->lock);\n-\n \tlen = skb->len + esp->tailen - skb_transport_offset(skb);\n \tif (len + sizeof(struct iphdr) >= IP_MAX_MTU)\n-\t\treturn -EMSGSIZE;\n+\t\treturn ERR_PTR(-EMSGSIZE);\n \n-\tuh = (struct udphdr *)esph;\n+\tuh = (struct udphdr *)esp->esph;\n \tuh->source = sport;\n \tuh->dest = dport;\n \tuh->len = htons(len);\n \tuh->check = 0;\n \n+\t*skb_mac_header(skb) = IPPROTO_UDP;\n+\n+\tif (encap_type == UDP_ENCAP_ESPINUDP_NON_IKE) {\n+\t\tudpdata32 = (__be32 *)(uh + 1);\n+\t\tudpdata32[0] = udpdata32[1] = 0;\n+\t\treturn (struct ip_esp_hdr *)(udpdata32 + 2);\n+\t}\n+\n+\treturn (struct ip_esp_hdr *)(uh + 1);\n+}\n+\n+static int esp_output_encap(struct xfrm_state *x, struct sk_buff *skb,\n+\t\t\t struct esp_info *esp)\n+{\n+\tstruct xfrm_encap_tmpl *encap = x->encap;\n+\tstruct ip_esp_hdr *esph;\n+\t__be16 sport, dport;\n+\tint encap_type;\n+\n+\tspin_lock_bh(&x->lock);\n+\tsport = encap->encap_sport;\n+\tdport = encap->encap_dport;\n+\tencap_type = encap->encap_type;\n+\tspin_unlock_bh(&x->lock);\n+\n \tswitch (encap_type) {\n \tdefault:\n \tcase UDP_ENCAP_ESPINUDP:\n-\t\tesph = (struct ip_esp_hdr *)(uh + 1);\n-\t\tbreak;\n \tcase UDP_ENCAP_ESPINUDP_NON_IKE:\n-\t\tudpdata32 = (__be32 *)(uh + 1);\n-\t\tudpdata32[0] = udpdata32[1] = 0;\n-\t\tesph = (struct ip_esp_hdr *)(udpdata32 + 2);\n+\t\tesph = esp_output_udp_encap(skb, encap_type, esp, sport, dport);\n \t\tbreak;\n \t}\n \n-\t*skb_mac_header(skb) = IPPROTO_UDP;\n+\tif (IS_ERR(esph))\n+\t\treturn PTR_ERR(esph);\n+\n \tesp->esph = esph;\n \n \treturn 0;\n@@ -281,7 +298,7 @@ int esp_output_head(struct xfrm_state *x, struct sk_buff *skb, struct esp_info *\n \n \t/* this is non-NULL only with UDP Encapsulation */\n \tif (x->encap) {\n-\t\tint err = esp_output_udp_encap(x, skb, esp);\n+\t\tint err = esp_output_encap(x, skb, esp);\n \n \t\tif (err < 0)\n \t\t\treturn err;\n", "prefixes": [ "ipsec-next", "v3", "5/6" ] }