From patchwork Wed Dec 26 08:50:43 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ilya Maximets X-Patchwork-Id: 1018615 X-Patchwork-Delegate: ian.stokes@intel.com Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=openvswitch.org (client-ip=140.211.169.12; helo=mail.linuxfoundation.org; envelope-from=ovs-dev-bounces@openvswitch.org; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=samsung.com Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=samsung.com header.i=@samsung.com header.b="Qt3j8obD"; dkim-atps=neutral Received: from mail.linuxfoundation.org (mail.linuxfoundation.org [140.211.169.12]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 43Pmxw6wryz9s8J for ; Wed, 26 Dec 2018 19:55:00 +1100 (AEDT) Received: from mail.linux-foundation.org (localhost [127.0.0.1]) by mail.linuxfoundation.org (Postfix) with ESMTP id 13BD2E82; Wed, 26 Dec 2018 08:51:14 +0000 (UTC) X-Original-To: ovs-dev@openvswitch.org Delivered-To: ovs-dev@mail.linuxfoundation.org Received: from smtp1.linuxfoundation.org (smtp1.linux-foundation.org [172.17.192.35]) by mail.linuxfoundation.org (Postfix) with ESMTPS id 7234FE7C for ; Wed, 26 Dec 2018 08:51:13 +0000 (UTC) X-Greylist: domain auto-whitelisted by SQLgrey-1.7.6 Received: from mailout2.w1.samsung.com (mailout2.w1.samsung.com [210.118.77.12]) by smtp1.linuxfoundation.org (Postfix) with ESMTPS id DB4F634F for ; Wed, 26 Dec 2018 08:51:12 +0000 (UTC) Received: from eucas1p2.samsung.com (unknown [182.198.249.207]) by mailout2.w1.samsung.com (KnoxPortal) with ESMTP id 20181226085111euoutp02ef6054f2e32fa6c3dbd7ea9461a4c2f4~z1ePQCfQK0324803248euoutp02b for ; Wed, 26 Dec 2018 08:51:11 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 mailout2.w1.samsung.com 20181226085111euoutp02ef6054f2e32fa6c3dbd7ea9461a4c2f4~z1ePQCfQK0324803248euoutp02b DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=samsung.com; s=mail20170921; t=1545814271; bh=hh8tfOqBxX/8z+J5T0usOT+qycsLscAuCHyfq+9aaoU=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Qt3j8obDCJ2kuOR6cPTdRUIlxD2QE0smR1DfqwklJWDWYZrAXaJdDB/UEKcOsk13c b+Mm7JhNQi5K0VvB6AFr7xE5W/XtQc2OfBZdwh5K85cwfOg0LCDC8y25Kc+1pQ0Yy/ S6N9HOPE/DH3BFEwcErSkWU+D02p3ian+OAk+hwk= Received: from eusmges3new.samsung.com (unknown [203.254.199.245]) by eucas1p1.samsung.com (KnoxPortal) with ESMTP id 20181226085111eucas1p1e0098df9da72e48a200121187a16f9b6~z1eOyQ6692603626036eucas1p1H; Wed, 26 Dec 2018 08:51:11 +0000 (GMT) Received: from eucas1p1.samsung.com ( [182.198.249.206]) by eusmges3new.samsung.com (EUCPMTA) with SMTP id E5.BD.04806.EF0432C5; Wed, 26 Dec 2018 08:51:10 +0000 (GMT) Received: from eusmtrp2.samsung.com (unknown [182.198.249.139]) by eucas1p2.samsung.com (KnoxPortal) with ESMTPA id 20181226085110eucas1p260795696a9ec8f23eae839b959a65556~z1eOG7Y5D2311623116eucas1p2o; Wed, 26 Dec 2018 08:51:10 +0000 (GMT) Received: from eusmgms1.samsung.com (unknown [182.198.249.179]) by eusmtrp2.samsung.com (KnoxPortal) with ESMTP id 20181226085110eusmtrp2b942443b5c26e9e9cbd8f0dc2ec68f5d~z1eN4cNZ70299702997eusmtrp2V; Wed, 26 Dec 2018 08:51:10 +0000 (GMT) X-AuditID: cbfec7f5-367ff700000012c6-be-5c2340fee5a1 Received: from eusmtip2.samsung.com ( [203.254.199.222]) by eusmgms1.samsung.com (EUCPMTA) with SMTP id 63.E6.04284.EF0432C5; Wed, 26 Dec 2018 08:51:10 +0000 (GMT) Received: from imaximets.rnd.samsung.ru (unknown [106.109.129.180]) by eusmtip2.samsung.com (KnoxPortal) with ESMTPA id 20181226085109eusmtip286469c1187b755d6d94edde740bb33c3~z1eNWODFQ0920209202eusmtip2W; Wed, 26 Dec 2018 08:51:09 +0000 (GMT) From: Ilya Maximets To: ovs-dev@openvswitch.org, Ian Stokes Date: Wed, 26 Dec 2018 11:50:43 +0300 Message-Id: <20181226085044.9311-9-i.maximets@samsung.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20181226085044.9311-1-i.maximets@samsung.com> X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFmpmleLIzCtJLcpLzFFi42LZduznOd1/DsoxBlu79Cy2TJvManGl/Se7 xcaHZ1kt1h76wG4xacoJRou5n54zWtye42Xx9OIvZgcOj8V7XjJ5PJt+GEjc/M/o8X7fVTaP vi2rGD3+N19lDWCL4rJJSc3JLEst0rdL4Mo4efwFU8FWxYoNTe1sDYxbxLsYOTkkBEwk7j+d z9jFyMUhJLCCUeLKmR8sEM4XRomlTw8zg1QJCXxmlDi43gCmY/mG22wQRcsZJa5+aWGCcH4w Smz41MIOUsUmoCNxavURRhBbRMBOYtqqJrAiZoF3jBL3T9xhAkkIC7hLXF66HMxmEVCVWL/q D5jNK2AlsWPiShaIdfISqzccADuDU8Ba4vTTHrBjJQS+s0k82f+NGaLIRWLHkpvsELawxKvj W6BsGYn/O+czQdj1EvdbXkI1dzBKTD/0DyphL7Hl9TmgBg6g8zQl1u/Shwg7SjxfvJAFJCwh wCdx460gSJgZyJy0bTozRJhXoqNNCKJaReL3weVQ10hJ3Hz3GWggO5DtIdGiDwnDPkaJlzeS JjDKz0LYtICRcRWjeGppcW56arFxXmq5XnFibnFpXrpecn7uJkZg0jj97/jXHYz7/iQdYhTg YFTi4f3hoxQjxJpYVlyZe4hRgoNZSYTX8zNQiDclsbIqtSg/vqg0J7X4EKM0B4uSOG81w4No IYH0xJLU7NTUgtQimCwTB6dUA6PFjQx+6XjvFed5VaIT9j6WdiiPSNmQZrBk4o/Li6+z2xjF 7/blCNbubOResHPH6QVM9V/Fw2fdmb1q+alZV470ejkstN6RKuDQOf/rA/Wqz3s3fdS1yH/2 foP91PM2/SxzvjEw1T19ZCYakJF5XspKoV106+S5rXK7952SW3tVRcnhxRfTDYlKLMUZiYZa zEXFiQDNcmJrFgMAAA== X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFnrBLMWRmVeSWpSXmKPExsVy+t/xe7r/HJRjDNb8Z7LYMm0yq8WV9p/s FhsfnmW1WHvoA7vFpCknGC3mfnrOaHF7jpfF04u/mB04PBbvecnk8Wz6YSBx8z+jx/t9V9k8 +rasYvT433yVNYAtSs+mKL+0JFUhI7+4xFYp2tDCSM/Q0kLPyMRSz9DYPNbKyFRJ384mJTUn syy1SN8uQS/j5PEXTAVbFSs2NLWzNTBuEe9i5OSQEDCRWL7hNlsXIxeHkMBSRoll01+zQCSk JH78usAKYQtL/LnWBVX0jVHi5tEdYEVsAjoSp1YfYQSxRQQcJDbfXcwKUsQs8IlR4tyb2WBF wgLuEpeXLmcCsVkEVCXWr/oDZvMKWEnsmLgSapu8xOoNB5hBbE4Ba4nTT3vAhgoB1cx5uIF5 AiPfAkaGVYwiqaXFuem5xYZ6xYm5xaV56XrJ+bmbGIGhvO3Yz807GC9tDD7EKMDBqMTD+8NH KUaINbGsuDL3EKMEB7OSCK/nZ6AQb0piZVVqUX58UWlOavEhRlOgoyYyS4km5wPjLK8k3tDU 0NzC0tDc2NzYzEJJnPe8QWWUkEB6YklqdmpqQWoRTB8TB6dUA+OsjYaWPR4fZRZMWzlT03qa UnDrpmUSsVJPvAteSi0NuCzikqkrrXLmuHmw5kHLrMrUKywLl39V/xi/rDz2mev7Hps15gZ7 DVd3RUTyc09iyqu0eGO2UtWx9eSv/c/OxYle38L8UXOCq66/VUdK9mor3YC6R4fDX0RoB/v+ rAmVrP79rrbcU4mlOCPRUIu5qDgRAJN6ClJ7AgAA X-CMS-MailID: 20181226085110eucas1p260795696a9ec8f23eae839b959a65556 X-Msg-Generator: CA X-RootMTR: 20181226085110eucas1p260795696a9ec8f23eae839b959a65556 X-EPHeader: CA CMS-TYPE: 201P X-CMS-RootMailID: 20181226085110eucas1p260795696a9ec8f23eae839b959a65556 References: <20181226085044.9311-1-i.maximets@samsung.com> X-Spam-Status: No, score=-7.0 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, RCVD_IN_DNSWL_HI autolearn=ham version=3.3.1 X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on smtp1.linux-foundation.org Cc: Shahaf Shuler , Flavio Leitner , Ilya Maximets Subject: [ovs-dev] [PATCH v3 8/9] netdev-dummy: Add flow offloading related logs. X-BeenThere: ovs-dev@openvswitch.org X-Mailman-Version: 2.1.12 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Sender: ovs-dev-bounces@openvswitch.org Errors-To: ovs-dev-bounces@openvswitch.org Add debug logging for partial HWOL for dummy interfaces for the future using in tests. Signed-off-by: Ilya Maximets --- lib/netdev-dummy.c | 66 +++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 63 insertions(+), 3 deletions(-) diff --git a/lib/netdev-dummy.c b/lib/netdev-dummy.c index 2732fc2da..3138f19ea 100644 --- a/lib/netdev-dummy.c +++ b/lib/netdev-dummy.c @@ -1437,6 +1437,7 @@ netdev_dummy_flow_put(struct netdev *netdev, struct match *match, { struct netdev_dummy *dev = netdev_dummy_cast(netdev); struct offloaded_flow *off_flow; + bool modify = true; ovs_mutex_lock(&dev->mutex); @@ -1447,6 +1448,7 @@ netdev_dummy_flow_put(struct netdev *netdev, struct match *match, memcpy(&off_flow->ufid, ufid, sizeof *ufid); hmap_insert(&dev->offloaded_flows, &off_flow->node, netdev_dummy_flow_hash(ufid)); + modify = false; } off_flow->mark = info->flow_mark; @@ -1459,6 +1461,20 @@ netdev_dummy_flow_put(struct netdev *netdev, struct match *match, ovs_mutex_unlock(&dev->mutex); + if (VLOG_IS_DBG_ENABLED()) { + struct ds ds = DS_EMPTY_INITIALIZER; + + ds_put_format(&ds, "%s: flow put[%s]: ", netdev_get_name(netdev), + modify ? "modify" : "create"); + odp_format_ufid(ufid, &ds); + ds_put_cstr(&ds, " flow match: "); + match_format(match, NULL, &ds, OFP_DEFAULT_PRIORITY); + ds_put_format(&ds, ", mark: %"PRIu32, info->flow_mark); + + VLOG_DBG("%s", ds_cstr(&ds)); + ds_destroy(&ds); + } + return 0; } @@ -1468,20 +1484,43 @@ netdev_dummy_flow_del(struct netdev *netdev, const ovs_u128 *ufid, { struct netdev_dummy *dev = netdev_dummy_cast(netdev); struct offloaded_flow *off_flow; + const char *error = NULL; + uint32_t mark; ovs_mutex_lock(&dev->mutex); off_flow = find_offloaded_flow(&dev->offloaded_flows, ufid); if (!off_flow) { - ovs_mutex_unlock(&dev->mutex); - return -1; + error = "No such flow."; + goto exit; } + mark = off_flow->mark; hmap_remove(&dev->offloaded_flows, &off_flow->node); free(off_flow); +exit: ovs_mutex_unlock(&dev->mutex); - return 0; + + if (error || VLOG_IS_DBG_ENABLED()) { + struct ds ds = DS_EMPTY_INITIALIZER; + + ds_put_format(&ds, "%s: ", netdev_get_name(netdev)); + if (error) { + ds_put_cstr(&ds, "failed to "); + } + ds_put_cstr(&ds, "flow del: "); + odp_format_ufid(ufid, &ds); + if (error) { + ds_put_format(&ds, " error: %s", error); + } else { + ds_put_format(&ds, " mark: %"PRIu32, mark); + } + VLOG(error ? VLL_WARN : VLL_DBG, "%s", ds_cstr(&ds)); + ds_destroy(&ds); + } + + return error ? -1 : 0; } #define DUMMY_FLOW_OFFLOAD_API \ @@ -1636,7 +1675,28 @@ netdev_dummy_queue_packet(struct netdev_dummy *dummy, struct dp_packet *packet, } HMAP_FOR_EACH (data, node, &dummy->offloaded_flows) { if (flow_equal_except(flow, &data->match.flow, &data->match.wc)) { + dp_packet_set_flow_mark(packet, data->mark); + + if (VLOG_IS_DBG_ENABLED()) { + struct ds ds = DS_EMPTY_INITIALIZER; + + ds_put_format(&ds, "%s: packet: ", + netdev_get_name(&dummy->up)); + /* 'flow' does not contain proper port number here. + * Let's just clear it as it wildcarded anyway. */ + flow->in_port.ofp_port = 0; + flow_format(&ds, flow, NULL); + + ds_put_cstr(&ds, " matches with flow: "); + odp_format_ufid(&data->ufid, &ds); + ds_put_cstr(&ds, " "); + match_format(&data->match, NULL, &ds, OFP_DEFAULT_PRIORITY); + ds_put_format(&ds, " with mark: %"PRIu32, data->mark); + + VLOG_DBG("%s", ds_cstr(&ds)); + ds_destroy(&ds); + } break; } }