Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/patches/1555102/?format=api
{ "id": 1555102, "url": "http://patchwork.ozlabs.org/api/patches/1555102/?format=api", "web_url": "http://patchwork.ozlabs.org/project/openvswitch/patch/20211115025312.786953-7-cmi@nvidia.com/", "project": { "id": 47, "url": "http://patchwork.ozlabs.org/api/projects/47/?format=api", "name": "Open vSwitch", "link_name": "openvswitch", "list_id": "ovs-dev.openvswitch.org", "list_email": "ovs-dev@openvswitch.org", "web_url": "http://openvswitch.org/", "scm_url": "git@github.com:openvswitch/ovs.git", "webscm_url": "https://github.com/openvswitch/ovs", "list_archive_url": "", "list_archive_url_format": "", "commit_url_format": "" }, "msgid": "<20211115025312.786953-7-cmi@nvidia.com>", "list_archive_url": null, "date": "2021-11-15T02:53:10", "name": "[ovs-dev,v18,6/8] ofproto: Introduce API to process sFlow offload packet", "commit_ref": null, "pull_url": null, "state": "superseded", "archived": false, "hash": "70e3c73dd712dcca1eee66a60c6ff5730e7d06aa", "submitter": { "id": 80086, "url": "http://patchwork.ozlabs.org/api/people/80086/?format=api", "name": "Chris Mi", "email": "cmi@nvidia.com" }, "delegate": null, "mbox": "http://patchwork.ozlabs.org/project/openvswitch/patch/20211115025312.786953-7-cmi@nvidia.com/mbox/", "series": [ { "id": 271987, "url": "http://patchwork.ozlabs.org/api/series/271987/?format=api", "web_url": "http://patchwork.ozlabs.org/project/openvswitch/list/?series=271987", "date": "2021-11-15T02:53:04", "name": "Add offload support for sFlow", "version": 18, "mbox": "http://patchwork.ozlabs.org/series/271987/mbox/" } ], "comments": "http://patchwork.ozlabs.org/api/patches/1555102/comments/", "check": "success", "checks": "http://patchwork.ozlabs.org/api/patches/1555102/checks/", "tags": {}, "related": [], "headers": { "Return-Path": "<ovs-dev-bounces@openvswitch.org>", "X-Original-To": [ "incoming@patchwork.ozlabs.org", "dev@openvswitch.org" ], "Delivered-To": [ "patchwork-incoming@bilbo.ozlabs.org", "ovs-dev@lists.linuxfoundation.org" ], "Authentication-Results": [ "bilbo.ozlabs.org;\n\tdkim=fail reason=\"signature verification failed\" (2048-bit key;\n unprotected) header.d=Nvidia.com header.i=@Nvidia.com header.a=rsa-sha256\n header.s=selector2 header.b=KbCFIx3W;\n\tdkim-atps=neutral", "ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=openvswitch.org\n (client-ip=140.211.166.138; helo=smtp1.osuosl.org;\n envelope-from=ovs-dev-bounces@openvswitch.org; receiver=<UNKNOWN>)", "smtp4.osuosl.org (amavisd-new);\n dkim=pass (2048-bit key) header.d=nvidia.com" ], "Received": [ "from smtp1.osuosl.org (smtp1.osuosl.org [140.211.166.138])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest\n SHA256)\n\t(No client certificate requested)\n\tby bilbo.ozlabs.org (Postfix) with ESMTPS id 4Hsv0j1f3mz9s5P\n\tfor <incoming@patchwork.ozlabs.org>; Mon, 15 Nov 2021 13:54:13 +1100 (AEDT)", "from localhost (localhost [127.0.0.1])\n\tby smtp1.osuosl.org (Postfix) with ESMTP id 7D19F80E41;\n\tMon, 15 Nov 2021 02:54:11 +0000 (UTC)", "from smtp1.osuosl.org ([127.0.0.1])\n\tby localhost (smtp1.osuosl.org [127.0.0.1]) (amavisd-new, port 10024)\n\twith ESMTP id pc5Yf2xg4yR5; Mon, 15 Nov 2021 02:54:10 +0000 (UTC)", "from lists.linuxfoundation.org (lf-lists.osuosl.org [140.211.9.56])\n\tby smtp1.osuosl.org (Postfix) with ESMTPS id 9ED2A80DB9;\n\tMon, 15 Nov 2021 02:54:09 +0000 (UTC)", "from lf-lists.osuosl.org (localhost [127.0.0.1])\n\tby lists.linuxfoundation.org (Postfix) with ESMTP id 83D88C002E;\n\tMon, 15 Nov 2021 02:54:09 +0000 (UTC)", "from smtp4.osuosl.org (smtp4.osuosl.org [140.211.166.137])\n by lists.linuxfoundation.org (Postfix) with ESMTP id 854FEC0012\n for <dev@openvswitch.org>; Mon, 15 Nov 2021 02:54:08 +0000 (UTC)", "from localhost (localhost [127.0.0.1])\n by smtp4.osuosl.org (Postfix) with ESMTP id 890F3402C8\n for <dev@openvswitch.org>; Mon, 15 Nov 2021 02:53:46 +0000 (UTC)", "from smtp4.osuosl.org ([127.0.0.1])\n by localhost (smtp4.osuosl.org [127.0.0.1]) (amavisd-new, port 10024)\n with ESMTP id O4sAfyPKhpMD for <dev@openvswitch.org>;\n Mon, 15 Nov 2021 02:53:44 +0000 (UTC)", "from NAM11-DM6-obe.outbound.protection.outlook.com\n (mail-dm6nam11on20619.outbound.protection.outlook.com\n [IPv6:2a01:111:f400:7eaa::619])\n by smtp4.osuosl.org (Postfix) with ESMTPS id 208BB40329\n for <dev@openvswitch.org>; Mon, 15 Nov 2021 02:53:44 +0000 (UTC)", "from BN9PR03CA0294.namprd03.prod.outlook.com (2603:10b6:408:f5::29)\n by BYAPR12MB3223.namprd12.prod.outlook.com (2603:10b6:a03:138::31)\n with Microsoft SMTP Server (version=TLS1_2,\n cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.16; Mon, 15 Nov\n 2021 02:53:41 +0000", "from BN8NAM11FT058.eop-nam11.prod.protection.outlook.com\n (2603:10b6:408:f5:cafe::f7) by BN9PR03CA0294.outlook.office365.com\n (2603:10b6:408:f5::29) with Microsoft SMTP Server (version=TLS1_2,\n cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.15 via Frontend\n Transport; Mon, 15 Nov 2021 02:53:41 +0000", "from mail.nvidia.com (216.228.112.32) by\n BN8NAM11FT058.mail.protection.outlook.com (10.13.177.58) with Microsoft SMTP\n Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384) id\n 15.20.4690.15 via Frontend Transport; Mon, 15 Nov 2021 02:53:38 +0000", "from HQMAIL101.nvidia.com (172.20.187.10) by HQMAIL109.nvidia.com\n (172.20.187.15) with Microsoft SMTP Server (TLS) id 15.0.1497.18; Sun, 14 Nov\n 2021 18:53:28 -0800", "from dev-r630-03.lab.mtl.com (172.20.187.5) by mail.nvidia.com\n (172.20.187.10) with Microsoft SMTP Server id 15.0.1497.18 via Frontend\n Transport; Mon, 15 Nov 2021 02:53:27 +0000" ], "X-Virus-Scanned": [ "amavisd-new at osuosl.org", "amavisd-new at osuosl.org" ], "X-Greylist": "whitelisted by SQLgrey-1.8.0", "ARC-Seal": "i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;\n b=SoTP5ug27WvARZ9GfSYNm5BnZXY2fo3mPSQjH0Y9mUfHtNQPDxwfoJQeiUXpJQKXFMVUimIjR2JZVu/lKwRXNsqSaFG3bxQD/SrYA3zYI9AMt0eDnHHUM8BQjGCcmMPyvhv8QT71rNe0mISu5Cqf5Xpwf5CmapvwnOGAC1SFoOaztaLCKmxOllnEidnrxKvqERj2CDmCC/eH3i/z/WW+bK/1n261sjuq0Kzz3R0dLsXmT0uzqQ6cg8U1rd5TTdZ0a5+tdyXba+Gu5wSeamdrQLiNOdf41PSI2J3yqc5SXd6rd9nojjP9efZ7lL8ywBKTEmFjRo98Or+xLe/4S4QnEg==", "ARC-Message-Signature": "i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;\n s=arcselector9901;\n h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;\n bh=2prjTLmXxmeTNp8B3BBH42NXiaTPHsbsRt1kAXV4aKM=;\n b=KMUcA3vDsaUtmc3s7XJHxDx6BWE5TPv6Ti0n7/YU/L0QJToZnqS8rQ3XG0fWTxIDgZJvzSRjTUbYAzkm6eWlDYbDCf4awl8wMww6v3oKQFa1rjBIDacwjc4x6phFuCywj+/63UEGPdHzKGTpv4vpYTutpklershYSQyJKl3sTzmY3I/7raovNfSbDz1AZAqGnw2Ytl8Rs6OM+tymk6Zi82s1M5n2tjx1/7NvqHH2i1/YKUsicqk3lr/AmgH0LYjGObAThJAAcP7ZJXbI6hbbhTfaMe9a5HOUGqGhO50bLw3xVrkZcy4bkQdX/U/Vrk5w/rfGasoUuAuubxzBuWPeEA==", "ARC-Authentication-Results": "i=1; mx.microsoft.com 1; spf=pass (sender ip is\n 216.228.112.32) smtp.rcpttodomain=ovn.org smtp.mailfrom=nvidia.com;\n dmarc=pass (p=quarantine sp=quarantine pct=100) action=none\n header.from=nvidia.com; dkim=none (message not signed); arc=none", "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com;\n s=selector2;\n h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;\n bh=2prjTLmXxmeTNp8B3BBH42NXiaTPHsbsRt1kAXV4aKM=;\n b=KbCFIx3W3kb7owxTrQFOR6ugwMEQSNPsbUH+4hw5xNdfTGkp0QpdNZJOw3quI2ABTsyEtzt7uvfLT56Mkg2qfOwce8rCfSSHjHLnH1ezWmDq7peR6yqudfsvyEiK5wjjSRRqLoNZPNgdM5SucXpfPgmLkDhr67EC3+fHctrHGmnZgC0oXd5U42DRm/quYXhwvkMT6KM5BIYBV8nLZqg25alhXxvJGE0c5mp74CfnixSVkAXI2uKPtOVzXg7f8O0VGvsSuDfQrVkL9hgHSlcCutg7MOFB+TWzEhJ4QRtpsryb6FW+6ja9356NIs2PD4WA+Og0KnOG528N3O7XCQfElA==", "X-MS-Exchange-Authentication-Results": "spf=pass (sender IP is 216.228.112.32)\n smtp.mailfrom=nvidia.com; dkim=none (message not signed)\n header.d=none;dmarc=pass action=none header.from=nvidia.com;", "Received-SPF": "Pass (protection.outlook.com: domain of nvidia.com designates\n 216.228.112.32 as permitted sender) receiver=protection.outlook.com;\n client-ip=216.228.112.32; helo=mail.nvidia.com;", "To": "<dev@openvswitch.org>", "Date": "Mon, 15 Nov 2021 10:53:10 +0800", "Message-ID": "<20211115025312.786953-7-cmi@nvidia.com>", "X-Mailer": "git-send-email 2.30.2", "In-Reply-To": "<20211115025312.786953-1-cmi@nvidia.com>", "References": "<20211115025312.786953-1-cmi@nvidia.com>", "MIME-Version": "1.0", "X-EOPAttributedMessage": "0", "X-MS-PublicTrafficType": "Email", "X-MS-Office365-Filtering-Correlation-Id": "c898a14f-b0d2-433d-7a5f-08d9a7e32011", "X-MS-TrafficTypeDiagnostic": "BYAPR12MB3223:", "X-Microsoft-Antispam-PRVS": "\n <BYAPR12MB3223FEB25955F949C65CF6FFCF989@BYAPR12MB3223.namprd12.prod.outlook.com>", "X-MS-Oob-TLC-OOBClassifiers": "OLM:5236;", "X-MS-Exchange-SenderADCheck": "1", "X-MS-Exchange-AntiSpam-Relay": "0", "X-Microsoft-Antispam": "BCL:0;", "X-Microsoft-Antispam-Message-Info": "\n 9CCamQUmNbDBwugWyOg1HlC39mHwm/T/X52xIRbBCOOJlusnScTaUwFs08+DZHQztS/cIlqqvIlj+ScvSpAtt0GZ57QmEAsuJr1sn7ra2q8Ra4+OMoZu5kvRu3lXa2O5spO+rvdxVLJi0RYvCb1+WfAeH+JGbarI5dezAHizUQ+qxLmZyGzmvcLKydvIFex6PCM7oxLDg5jV3WCVautLC4engeH21iCiYj9DFTlBFvkFoggBjKYLJ3nJOfffOIuJ0AgTNZXpbeBu0F4cDRK5j3sEq+XjDwu5oQt2+rnvVNe48M9EWWqHRIczGS1ILbcjFb7Ax5axMR1969okf4zNXgBhAbXD6uigBLeyoE6nfd6IDwoQBJMMVZ+JE/uh3McSb+10Gm2KxJtJTAcgc14hz9QgZCBe8WA1FU82ODnxm75hdwLXIfTWZY3j1cjIs6DnMHgs6NcD45pdeEFo+JaRDyzIKVfG1JIiCfS4xD1ukTQ1EytBbzna/TVim6lJTpxsUw84d3HQFlwQ2tjAlZdigjOy8eBioi5h2IpLsdFldviwGQw1hAzSwWoDaLz0Eprh30Z/eqt7SqQfGuKLmS0Uc9K5i/QUt03Yzaj7b1AlOLRiwrUiT4IKAzCAXMkUGGFGH7iNDdmJtm0gDH9u7qK9VyXJDN05gR9hqEL4WI+HRCmRBAO3oxGOb338qH7QJEK5hnUckj1AwNwXsZ/fzOmUIw==", "X-Forefront-Antispam-Report": "CIP:216.228.112.32; CTRY:US; LANG:en; SCL:1;\n SRV:;\n IPV:NLI; SFV:NSPM; H:mail.nvidia.com; PTR:schybrid01.nvidia.com; CAT:NONE;\n SFS:(4636009)(36840700001)(46966006)(26005)(7636003)(86362001)(186003)(336012)(316002)(426003)(36860700001)(6916009)(6666004)(2616005)(356005)(8936002)(83380400001)(70206006)(5660300002)(82310400003)(36756003)(1076003)(107886003)(4326008)(508600001)(8676002)(47076005)(54906003)(2906002)(70586007);\n DIR:OUT; SFP:1101;", "X-OriginatorOrg": "Nvidia.com", "X-MS-Exchange-CrossTenant-OriginalArrivalTime": "15 Nov 2021 02:53:38.1600 (UTC)", "X-MS-Exchange-CrossTenant-Network-Message-Id": "\n c898a14f-b0d2-433d-7a5f-08d9a7e32011", "X-MS-Exchange-CrossTenant-Id": "43083d15-7273-40c1-b7db-39efd9ccc17a", "X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp": "\n TenantId=43083d15-7273-40c1-b7db-39efd9ccc17a; Ip=[216.228.112.32];\n Helo=[mail.nvidia.com]", "X-MS-Exchange-CrossTenant-AuthSource": "\n BN8NAM11FT058.eop-nam11.prod.protection.outlook.com", "X-MS-Exchange-CrossTenant-AuthAs": "Anonymous", "X-MS-Exchange-CrossTenant-FromEntityHeader": "HybridOnPrem", "X-MS-Exchange-Transport-CrossTenantHeadersStamped": "BYAPR12MB3223", "Cc": "elibr@nvidia.com, simon.horman@netronome.com, roniba@nvidia.com,\n i.maximets@ovn.org", "Subject": "[ovs-dev] [PATCH v18 6/8] ofproto: Introduce API to process sFlow\n\toffload packet", "X-BeenThere": "ovs-dev@openvswitch.org", "X-Mailman-Version": "2.1.15", "Precedence": "list", "List-Id": "<ovs-dev.openvswitch.org>", "List-Unsubscribe": "<https://mail.openvswitch.org/mailman/options/ovs-dev>,\n <mailto:ovs-dev-request@openvswitch.org?subject=unsubscribe>", "List-Archive": "<http://mail.openvswitch.org/pipermail/ovs-dev/>", "List-Post": "<mailto:ovs-dev@openvswitch.org>", "List-Help": "<mailto:ovs-dev-request@openvswitch.org?subject=help>", "List-Subscribe": "<https://mail.openvswitch.org/mailman/listinfo/ovs-dev>,\n <mailto:ovs-dev-request@openvswitch.org?subject=subscribe>", "From": "Chris Mi via dev <ovs-dev@openvswitch.org>", "Reply-To": "Chris Mi <cmi@nvidia.com>", "Content-Type": "text/plain; charset=\"us-ascii\"", "Content-Transfer-Encoding": "7bit", "Errors-To": "ovs-dev-bounces@openvswitch.org", "Sender": "\"dev\" <ovs-dev-bounces@openvswitch.org>" }, "content": "Process sFlow offload packet in handler thread if handler id is 0.\n\nSigned-off-by: Chris Mi <cmi@nvidia.com>\nReviewed-by: Eli Britstein <elibr@nvidia.com>\nAcked-by: Eelco Chaudron <echaudro@redhat.com>\n---\n ofproto/ofproto-dpif-upcall.c | 73 +++++++++++++++++++++++++++++++++++\n 1 file changed, 73 insertions(+)", "diff": "diff --git a/ofproto/ofproto-dpif-upcall.c b/ofproto/ofproto-dpif-upcall.c\nindex 1c9c720f0..c2c7d3b73 100644\n--- a/ofproto/ofproto-dpif-upcall.c\n+++ b/ofproto/ofproto-dpif-upcall.c\n@@ -22,6 +22,7 @@\n #include \"connmgr.h\"\n #include \"coverage.h\"\n #include \"cmap.h\"\n+#include \"lib/dpif-offload-provider.h\"\n #include \"lib/dpif-provider.h\"\n #include \"dpif.h\"\n #include \"openvswitch/dynamic-string.h\"\n@@ -779,6 +780,74 @@ udpif_get_n_flows(struct udpif *udpif)\n return flow_count;\n }\n \n+static void\n+process_offload_sflow(struct udpif *udpif, struct dpif_offload_sflow *sflow)\n+{\n+ const struct dpif_sflow_attr *attr = sflow->attr;\n+ const struct user_action_cookie *cookie;\n+ struct dpif_sflow *dpif_sflow;\n+ struct ofproto_dpif *ofproto;\n+ struct upcall upcall;\n+ struct flow flow;\n+\n+ if (!attr) {\n+ VLOG_WARN_RL(&rl, \"sFlow upcall is missing its attribute\");\n+ return;\n+ }\n+\n+ cookie = nl_attr_get(attr->userdata);\n+ if (!cookie) {\n+ VLOG_WARN_RL(&rl, \"sFlow user action cookie is missing\");\n+ return;\n+ }\n+ if (nl_attr_get_size(attr->userdata) < sizeof(struct user_action_cookie)) {\n+ VLOG_WARN_RL(&rl, \"sFlow user action cookie is corrupted\");\n+ return;\n+ }\n+ ofproto = ofproto_dpif_lookup_by_uuid(&cookie->ofproto_uuid);\n+ if (!ofproto) {\n+ VLOG_WARN_RL(&rl, \"sFlow upcall can't find ofproto dpif for UUID \"\n+ UUID_FMT, UUID_ARGS(&cookie->ofproto_uuid));\n+ return;\n+ }\n+ dpif_sflow = ofproto->sflow;\n+ if (!dpif_sflow) {\n+ VLOG_WARN_RL(&rl, \"sFlow upcall is missing dpif information\");\n+ return;\n+ }\n+\n+ memset(&flow, 0, sizeof flow);\n+ if (attr->tunnel) {\n+ memcpy(&flow.tunnel, attr->tunnel, sizeof flow.tunnel);\n+ }\n+ flow.in_port.odp_port = netdev_ifindex_to_odp_port(sflow->iifindex);\n+ memset(&upcall, 0, sizeof upcall);\n+ upcall.flow = &flow;\n+ upcall.cookie = *cookie;\n+ upcall.packet = &sflow->packet;\n+ upcall.sflow = dpif_sflow;\n+ upcall.ufid = &attr->ufid;\n+ upcall.type = SFLOW_UPCALL;\n+ process_upcall(udpif, &upcall, NULL, NULL);\n+}\n+\n+static void\n+recv_offload_sflow(struct udpif *udpif)\n+{\n+ size_t n_sflow = 0;\n+\n+ while (n_sflow < UPCALL_MAX_BATCH) {\n+ struct dpif_offload_sflow sflow;\n+\n+ if (dpif_offload_sflow_recv(udpif->dpif, &sflow)) {\n+ break;\n+ }\n+ process_offload_sflow(udpif, &sflow);\n+ n_sflow++;\n+ }\n+ dpif_offload_sflow_recv_wait(udpif->dpif);\n+}\n+\n /* The upcall handler thread tries to read a batch of UPCALL_MAX_BATCH\n * upcalls from dpif, processes the batch and installs corresponding flows\n * in dpif. */\n@@ -795,6 +864,10 @@ udpif_upcall_handler(void *arg)\n dpif_recv_wait(udpif->dpif, handler->handler_id);\n latch_wait(&udpif->exit_latch);\n }\n+ /* Only handler id 0 thread process sFlow offload packet. */\n+ if (handler->handler_id == 0) {\n+ recv_offload_sflow(udpif);\n+ }\n poll_block();\n }\n \n", "prefixes": [ "ovs-dev", "v18", "6/8" ] }