From patchwork Tue Nov 22 14:03:01 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Aaron Conole X-Patchwork-Id: 627821 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id A255FC4332F for ; Tue, 22 Nov 2022 14:04:17 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233940AbiKVOEQ (ORCPT ); Tue, 22 Nov 2022 09:04:16 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:55564 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231773AbiKVOEL (ORCPT ); Tue, 22 Nov 2022 09:04:11 -0500 Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 032291DA56 for ; Tue, 22 Nov 2022 06:03:14 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1669125794; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding; bh=RhgdRkAbSgjlCLQ/dwJTtIG3mug5NVLJS7j9FGtckkU=; b=e4Mk+H6XxpWOPg1tdfkcCWRmn461y0VeqwPWXVYrU5Xqn3NC3p4agNfmB6E8W6Fw9lNnxY vvJM2V89FDMDJfBGK+S/5bknskhnBIQ1yWXTXZjHo1I/+/jFKfRDKv5e11LwhmsCFfubxp rn832RxHUCgg4m410wHJef01fFFJTqw= Received: from mimecast-mx02.redhat.com (mx3-rdu2.redhat.com [66.187.233.73]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-187-GvE4aIjuPjWke4fcVW1efA-1; Tue, 22 Nov 2022 09:03:10 -0500 X-MC-Unique: GvE4aIjuPjWke4fcVW1efA-1 Received: from smtp.corp.redhat.com (int-mx02.intmail.prod.int.rdu2.redhat.com [10.11.54.2]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id 23C762A5956D; Tue, 22 Nov 2022 14:03:10 +0000 (UTC) Received: from RHTPC1VM0NT.redhat.com (unknown [10.22.16.203]) by smtp.corp.redhat.com (Postfix) with ESMTP id 7654040C6EC6; Tue, 22 Nov 2022 14:03:09 +0000 (UTC) From: Aaron Conole To: netdev@vger.kernel.org Cc: Pravin B Shelar , Jakub Kicinski , "David S. Miller" , Paolo Abeni , Eric Dumazet , Thomas Graf , dev@openvswitch.org, Eelco Chaudron , Ilya Maximets , Shuah Khan , linux-kernel@vger.kernel.org, linux-kselftest@vger.kernel.org Subject: [RFC net-next 0/6] Allow excluding sw flow key from upcalls Date: Tue, 22 Nov 2022 09:03:01 -0500 Message-Id: <20221122140307.705112-1-aconole@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 3.1 on 10.11.54.2 Precedence: bulk List-ID: X-Mailing-List: linux-kselftest@vger.kernel.org Userspace applications can choose to completely ignore the kernel provided flow key and instead regenerate a fresh key for processing in userspace. Currently, userspace ovs-vswitchd does this in some instances (for example, MISS upcall command). This means that kernel spends time to copy and send the flow key into userspace without any benefit to the system. Introduce a way for userspace to tell kernel not to send the flow key. This lets userspace and kernel space save time and memory pressure. This patch set is quite a bit larger because it introduces the ability to decode a sw flow key into a compatible datapath-string. We use this as a method of implementing a test to show that the feature is working by decoding and dumping the flow (to make sure we capture the correct packet). Aaron Conole (6): openvswitch: exclude kernel flow key from upcalls selftests: openvswitch: add interface support selftests: openvswitch: add flow dump support selftests: openvswitch: adjust datapath NL message selftests: openvswitch: add upcall support selftests: openvswitch: add exclude support for packet commands include/uapi/linux/openvswitch.h | 6 + net/openvswitch/datapath.c | 26 +- net/openvswitch/datapath.h | 2 + .../selftests/net/openvswitch/openvswitch.sh | 101 +- .../selftests/net/openvswitch/ovs-dpctl.py | 1069 ++++++++++++++++- 5 files changed, 1183 insertions(+), 21 deletions(-)