From patchwork Mon Oct 29 12:49:25 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ilya Maximets X-Patchwork-Id: 990186 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="ov4kV0nE"; 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 42kDzZ1LMXz9s3Z for ; Mon, 29 Oct 2018 23:53:14 +1100 (AEDT) Received: from mail.linux-foundation.org (localhost [127.0.0.1]) by mail.linuxfoundation.org (Postfix) with ESMTP id 7C9B22CD0; Mon, 29 Oct 2018 12:50:08 +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 83D462CBF for ; Mon, 29 Oct 2018 12:50:07 +0000 (UTC) X-Greylist: domain auto-whitelisted by SQLgrey-1.7.6 Received: from mailout1.w1.samsung.com (mailout1.w1.samsung.com [210.118.77.11]) by smtp1.linuxfoundation.org (Postfix) with ESMTPS id 0153D25A for ; Mon, 29 Oct 2018 12:50:06 +0000 (UTC) Received: from eucas1p2.samsung.com (unknown [182.198.249.207]) by mailout1.w1.samsung.com (KnoxPortal) with ESMTP id 20181029125005euoutp018b10a1a8902c4d0f735369f9e8b7d92c~iFUROj-kk3235532355euoutp01A; Mon, 29 Oct 2018 12:50:05 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 mailout1.w1.samsung.com 20181029125005euoutp018b10a1a8902c4d0f735369f9e8b7d92c~iFUROj-kk3235532355euoutp01A DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=samsung.com; s=mail20170921; t=1540817405; bh=r/IEBuAPrXDVeFsEgZiloaSVKYKJFDzWFZ9eftWis2k=; h=From:To:Cc:Subject:Date:In-reply-to:References:From; b=ov4kV0nEolX2SRmaW+CRe5fITVT2qp13oJp4Xn57RwP1q3iZir7+0hKuqoONp1kI5 x4WVZgIreCQMgguJ6Mm7jaaxsOzl6w8QFzp70vWtnkSJhj4MXKh3kism1wI/mVLLWJ a8Gj5BKjLGFSSqavKM8ii7WuTH1YPUXVpnxse6/g= Received: from eusmges3new.samsung.com (unknown [203.254.199.245]) by eucas1p1.samsung.com (KnoxPortal) with ESMTP id 20181029125005eucas1p15624ad004fe5a70ac12aaada759a6151~iFUQz3VlG2144721447eucas1p1n; Mon, 29 Oct 2018 12:50:05 +0000 (GMT) Received: from eucas1p1.samsung.com ( [182.198.249.206]) by eusmges3new.samsung.com (EUCPMTA) with SMTP id 0C.0B.04806.CF107DB5; Mon, 29 Oct 2018 12:50:04 +0000 (GMT) Received: from eusmgms2.samsung.com (unknown [182.198.249.180]) by eucas1p2.samsung.com (KnoxPortal) with ESMTP id 20181029125004eucas1p299796fb9a0385d94a56764dc5660e5f8~iFUQCFaTu0951409514eucas1p25; Mon, 29 Oct 2018 12:50:04 +0000 (GMT) X-AuditID: cbfec7f5-367ff700000012c6-93-5bd701fc0d36 Received: from eusync3.samsung.com ( [203.254.199.213]) by eusmgms2.samsung.com (EUCPMTA) with SMTP id 4C.FD.04128.CF107DB5; Mon, 29 Oct 2018 12:50:04 +0000 (GMT) Received: from imaximets.rnd.samsung.ru ([106.109.129.180]) by eusync3.samsung.com (Oracle Communications Messaging Server 7.0.5.31.0 64bit (built May 5 2014)) with ESMTPA id <0PHD00EQH2AI7G60@eusync3.samsung.com>; Mon, 29 Oct 2018 12:50:04 +0000 (GMT) From: Ilya Maximets To: ovs-dev@openvswitch.org Date: Mon, 29 Oct 2018 15:49:25 +0300 Message-id: <20181029124926.12199-9-i.maximets@samsung.com> X-Mailer: git-send-email 2.17.1 In-reply-to: <20181029124926.12199-1-i.maximets@samsung.com> X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFtrJIsWRmVeSWpSXmKPExsWy7djPc7p/GK9HG6z7aWCxZdpkVotXi84z W1xp/8lusfHhWVaLuZ+eM1rcnuNl8fTiL2aLliU7mRw4PG78u8XmsXjPSyaPZ9MPM3nc2H6a 1ePZzf+MHn1bVjF6/G++yhrAHsVlk5Kak1mWWqRvl8CVMf/ALPaCrYoVix5fY2xg3CLexcjJ ISFgIrFg0nKWLkYuDiGBFYwSdz6cYIJwPjNK3Jp8lBmm6uGnNYwQiWWMEs8/XYNqaWaS2Lfo LxNIFZuAjsSp1UcYQWwRAWmJ171vWEGKmAUmMkm8/XmBDSQhLOAisWx5J9hYFgFViaunbwNN 4uDgFbCW2PpNBGKbvMTqDQfASjgFbCSe3+9nA5kjITCHTWL2iiY2iCIXiQOz1kHZwhKvjm9h h7BlJC5P7maBsOsl7re8ZIRo7mCUmH7oHxNEwl5iy+tzYA3MAnwSk7ZNZwY5QkKAV6KjTQii xENixY5lUF/2M0r8+LmPeQKj5AJGhlWM4qmlxbnpqcXGeanlesWJucWleel6yfm5mxiBEXr6 3/GvOxj3/Uk6xCjAwajEw/uA+1q0EGtiWXFl7iFGCQ5mJRHeV2eBQrwpiZVVqUX58UWlOanF hxilOViUxHmXzdsYLSSQnliSmp2aWpBaBJNl4uCUamCcn7l/Q8EmZlZR1mM8RcHvPbm/xcTb pglOCJ7hvjcrOL07W/7hzXU/Wj3M/+mfWPlYIG3lDNYfvpx+MzxP6okoz7rNsOrP22NOm1d1 d0w6pK9vPTekOjP96PPM+cenPpErEHK1WZXya8qkynn5Rgd2LNH7NkPlTY7rQ8v0+tirYVc4 bcoO2gsrsRRnJBpqMRcVJwIAMfB+zMwCAAA= X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFprKLMWRmVeSWpSXmKPExsVy+t/xq7p/GK9HG9x9IGSxZdpkVotXi84z W1xp/8lusfHhWVaLuZ+eM1rcnuNl8fTiL2aLliU7mRw4PG78u8XmsXjPSyaPZ9MPM3nc2H6a 1ePZzf+MHn1bVjF6/G++yhrAHsVlk5Kak1mWWqRvl8CVMf/ALPaCrYoVix5fY2xg3CLexcjJ ISFgIvHw0xpGEFtIYAmjxI6HoV2MXEB2K5PEtVOTmUESbAI6EqdWHwErEhGQlnjd+4YVpIhZ YDKTxJKWJrAiYQEXiWXLO8FsFgFViaunb7N0MXJw8ApYS2z9JgKxTF5i9YYDYCWcAjYSz+/3 s0EstpZY9XEu8wRGngWMDKsYRVJLi3PTc4uN9IoTc4tL89L1kvNzNzECA2vbsZ9bdjB2vQs+ xCjAwajEw/uA+1q0EGtiWXFl7iFGCQ5mJRHeV2eBQrwpiZVVqUX58UWlOanFhxilOViUxHnP G1RGCQmkJ5akZqemFqQWwWSZODilGhiT7Nn7FvK/3rN3VbhVwWZx19dvJml6ezJ3PePkOWdg EXZx2X4rl73nDhZefKm1xvJ3b+OFWzKh6mcbpRYvC536080g5/lL3yW2d9w7PtnaKC52VlOc XBKjXnbV95QW42nX4uPiJzamHmvblP12Q6u8FVPWnH0XMoXdjpWK9k6fXnLq+bntjh+VWIoz Eg21mIuKEwELKiViKAIAAA== X-CMS-MailID: 20181029125004eucas1p299796fb9a0385d94a56764dc5660e5f8 X-Msg-Generator: CA CMS-TYPE: 201P X-CMS-RootMailID: 20181029125004eucas1p299796fb9a0385d94a56764dc5660e5f8 References: <20181029124926.12199-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 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 bd18a5190..3d548e55e 100644 --- a/lib/netdev-dummy.c +++ b/lib/netdev-dummy.c @@ -1438,6 +1438,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); @@ -1448,6 +1449,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; @@ -1460,6 +1462,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; } @@ -1469,20 +1485,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 \ @@ -1637,7 +1676,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; } }