{"id":807188,"url":"http://patchwork.ozlabs.org/api/1.0/patches/807188/?format=json","project":{"id":7,"url":"http://patchwork.ozlabs.org/api/1.0/projects/7/?format=json","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},"msgid":"<20170829171942.8974-2-tom@quantonium.net>","date":"2017-08-29T17:19:37","name":"[net-next,1/6] flow_dissector: Move ETH_P_TEB processing to main switch","commit_ref":null,"pull_url":null,"state":"changes-requested","archived":true,"hash":"5457a2a1eaadbf363395958f6288280ca3370133","submitter":{"id":72064,"url":"http://patchwork.ozlabs.org/api/1.0/people/72064/?format=json","name":"Tom Herbert","email":"tom@quantonium.net"},"delegate":{"id":34,"url":"http://patchwork.ozlabs.org/api/1.0/users/34/?format=json","username":"davem","first_name":"David","last_name":"Miller","email":"davem@davemloft.net"},"mbox":"http://patchwork.ozlabs.org/project/netdev/patch/20170829171942.8974-2-tom@quantonium.net/mbox/","series":[{"id":418,"url":"http://patchwork.ozlabs.org/api/1.0/series/418/?format=json","date":"2017-08-29T17:19:36","name":"flow_dissector: Protocol specific flow dissector offload","version":1,"mbox":"http://patchwork.ozlabs.org/series/418/mbox/"}],"check":"pending","checks":"http://patchwork.ozlabs.org/api/patches/807188/checks/","tags":{},"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=quantonium-net.20150623.gappssmtp.com\n\theader.i=@quantonium-net.20150623.gappssmtp.com\n\theader.b=\"a+7wwCEp\"; dkim-atps=neutral"],"Received":["from vger.kernel.org (vger.kernel.org [209.132.180.67])\n\tby ozlabs.org (Postfix) with ESMTP id 3xhb4J3s85z9s76\n\tfor <patchwork-incoming@ozlabs.org>;\n\tWed, 30 Aug 2017 03:20:16 +1000 (AEST)","(majordomo@vger.kernel.org) by vger.kernel.org via listexpand\n\tid S1751319AbdH2RUO (ORCPT <rfc822;patchwork-incoming@ozlabs.org>);\n\tTue, 29 Aug 2017 13:20:14 -0400","from mail-pg0-f46.google.com ([74.125.83.46]:38906 \"EHLO\n\tmail-pg0-f46.google.com\" rhost-flags-OK-OK-OK-OK) by vger.kernel.org\n\twith ESMTP id S1751300AbdH2RUL (ORCPT\n\t<rfc822;netdev@vger.kernel.org>); Tue, 29 Aug 2017 13:20:11 -0400","by mail-pg0-f46.google.com with SMTP id b8so12584315pgn.5\n\tfor <netdev@vger.kernel.org>; Tue, 29 Aug 2017 10:20:11 -0700 (PDT)","from localhost.localdomain (67-207-98-108.static.wiline.com.\n\t[67.207.98.108]) by smtp.gmail.com with ESMTPSA id\n\tg63sm5694902pfb.79.2017.08.29.10.20.09\n\t(version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);\n\tTue, 29 Aug 2017 10:20:09 -0700 (PDT)"],"DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=quantonium-net.20150623.gappssmtp.com; s=20150623;\n\th=from:to:cc:subject:date:message-id:in-reply-to:references;\n\tbh=oDKXa7S9gpUKjkx61KHRgzZQKtOOs1ywQCeRy6QU0ho=;\n\tb=a+7wwCEpkgksoI3iXhVCpgujqXbvKeJcNrq/sGFbqpIAzT7oziSlbaG1vyzq/LPGMx\n\tsk//OAEjEt4eL9fBDrQbEM3YJ/ns95dWwhRtVdUjQ8w2/jZ3Zzi8Ho8XS7C34uBLGsic\n\t56XnqF9wI1STIXOgkZERRacKYyJ3e7C1Psfq41jdHLiXF7QGhpA3tOwJCan56QF+p5FT\n\tQ+Iw27bu+ERp/Sv/cDzNwpD8KkeVHTwySHVPJUNnL/8QzXYVGCQ8v6h3VEsti+PRMfum\n\tfUptXZ0ix6ALSnucYhqokeqKwxFuC5ec5N6kBCokjb3uB44re4AaaAmkVKwJztRb4pDQ\n\tv8JA==","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:cc:subject:date:message-id:in-reply-to\n\t:references;\n\tbh=oDKXa7S9gpUKjkx61KHRgzZQKtOOs1ywQCeRy6QU0ho=;\n\tb=TH7hQuZX/NFRlOk5TbK5MC85wNddrkp68HnKQLGrjDRxmI8I/IHuzqWIAp79OFRFfu\n\tyLiXY/yDdF8X/FWgzwmgIGradrJtUc4cth8BvNqPJV7gwRPCEINrJTmH1pjyEz6MWR//\n\tsNiZZf8j05qt4SlcEX66DyG+3KccCKSOgQ1bpVZcjf46ZYaXdWEQq8PU9fgQSD/Iqbg1\n\tO/zPZLusaHB5BRzeOSxDWFjKNju+QES2hggLV9i5ji983adtpJ647n5dYJUSMfCj/v1A\n\t78QWWhSwqMd7p1ivdSqTx25k1FMppq2WW05jsb0c1jAoU37kxXjawPwGqJ7s3sMWJwqf\n\tlboA==","X-Gm-Message-State":"AHYfb5g0eUjKkRFE79dfVUAKPPKQ+WYPnlC9Eh70aafdLgLN9z5urrLw\n\thUDzKvV3nHnGuxSW","X-Received":"by 10.99.0.74 with SMTP id 71mr1006940pga.304.1504027210805;\n\tTue, 29 Aug 2017 10:20:10 -0700 (PDT)","From":"Tom Herbert <tom@quantonium.net>","To":"davem@davemloft.net","Cc":"netdev@vger.kernel.org, Tom Herbert <tom@quantonium.net>","Subject":"[PATCH net-next 1/6] flow_dissector: Move ETH_P_TEB processing to\n\tmain switch","Date":"Tue, 29 Aug 2017 10:19:37 -0700","Message-Id":"<20170829171942.8974-2-tom@quantonium.net>","X-Mailer":"git-send-email 2.11.0","In-Reply-To":"<20170829171942.8974-1-tom@quantonium.net>","References":"<20170829171942.8974-1-tom@quantonium.net>","Sender":"netdev-owner@vger.kernel.org","Precedence":"bulk","List-ID":"<netdev.vger.kernel.org>","X-Mailing-List":"netdev@vger.kernel.org"},"content":"Support for processing TEB is currently in GRE flow dissection as a\nspecial case. This can be moved to be a case the main proto switch in\n__skb_flow_dissect.\n---\n net/core/flow_dissector.c | 44 +++++++++++++++++++++++---------------------\n 1 file changed, 23 insertions(+), 21 deletions(-)","diff":"diff --git a/net/core/flow_dissector.c b/net/core/flow_dissector.c\nindex e2eaa1ff948d..12302acdb073 100644\n--- a/net/core/flow_dissector.c\n+++ b/net/core/flow_dissector.c\n@@ -288,27 +288,8 @@ __skb_flow_dissect_gre(const struct sk_buff *skb,\n \tif (hdr->flags & GRE_SEQ)\n \t\toffset += sizeof(((struct pptp_gre_header *) 0)->seq);\n \n-\tif (gre_ver == 0) {\n-\t\tif (*p_proto == htons(ETH_P_TEB)) {\n-\t\t\tconst struct ethhdr *eth;\n-\t\t\tstruct ethhdr _eth;\n-\n-\t\t\teth = __skb_header_pointer(skb, *p_nhoff + offset,\n-\t\t\t\t\t\t   sizeof(_eth),\n-\t\t\t\t\t\t   data, *p_hlen, &_eth);\n-\t\t\tif (!eth)\n-\t\t\t\treturn FLOW_DISSECT_RET_OUT_BAD;\n-\t\t\t*p_proto = eth->h_proto;\n-\t\t\toffset += sizeof(*eth);\n-\n-\t\t\t/* Cap headers that we access via pointers at the\n-\t\t\t * end of the Ethernet header as our maximum alignment\n-\t\t\t * at that point is only 2 bytes.\n-\t\t\t */\n-\t\t\tif (NET_IP_ALIGN)\n-\t\t\t\t*p_hlen = *p_nhoff + offset;\n-\t\t}\n-\t} else { /* version 1, must be PPTP */\n+\t/* version 1, must be PPTP */\n+\tif (gre_ver == 1) {\n \t\tu8 _ppp_hdr[PPP_HDRLEN];\n \t\tu8 *ppp_hdr;\n \n@@ -573,6 +554,27 @@ bool __skb_flow_dissect(const struct sk_buff *skb,\n \n \t\tbreak;\n \t}\n+\tcase htons(ETH_P_TEB): {\n+\t\tconst struct ethhdr *eth;\n+\t\tstruct ethhdr _eth;\n+\n+\t\teth = __skb_header_pointer(skb, nhoff, sizeof(_eth),\n+\t\t\t\t\t   data, hlen, &_eth);\n+\t\tif (!eth)\n+\t\t\tgoto out_bad;\n+\n+\t\tproto = eth->h_proto;\n+\t\tnhoff += sizeof(*eth);\n+\n+\t\t/* Cap headers that we access via pointers at the\n+\t\t * end of the Ethernet header as our maximum alignment\n+\t\t * at that point is only 2 bytes.\n+\t\t */\n+\t\tif (NET_IP_ALIGN)\n+\t\t\thlen = nhoff;\n+\n+\t\tgoto proto_again;\n+\t}\n \tcase htons(ETH_P_8021AD):\n \tcase htons(ETH_P_8021Q): {\n \t\tconst struct vlan_hdr *vlan;\n","prefixes":["net-next","1/6"]}