From patchwork Wed Jun 28 10:27:34 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Petri Savolainen X-Patchwork-Id: 106514 Delivered-To: patch@linaro.org Received: by 10.140.101.44 with SMTP id t41csp847479qge; Wed, 28 Jun 2017 03:37:41 -0700 (PDT) X-Received: by 10.107.23.66 with SMTP id 63mr10657492iox.184.1498646261465; Wed, 28 Jun 2017 03:37:41 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1498646261; cv=none; d=google.com; s=arc-20160816; b=LvdFOdPa6+a9HQOfmoIbCq2vos00lKd3D1JaD4xT1Gg0wjkQZJUhpy4kWMi9z9kg5y rTWKR38spokASWvp4DflccbdOJV11BaIFu0jUyYVMedI1g35sURf42WBaHBktkvqa1Hd of3Tjmtyd4CRFJ+R2ACXvYxPSe++AIfTcFYy1OvZba36B8cPYuW8VZnGuKW+/82dvJO9 G32AKKjV/ZNKhZQXhv0djc5XVlrLRvi+9nUk5nKcVMZWduXN1XSQ01107yUCAQupwaFL 9PMecVbIaifhQvMLCKwd+eHGGu2qV4RNhLQv9jtO6IsRUX60vGmQVKYw3GtMLNV98FUn EYBg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:subject:spamdiagnosticmetadata :spamdiagnosticoutput:mime-version:message-id:date:to:from :delivered-to:arc-authentication-results; bh=npRuktFStN1WmXDvSKNFJCu445NFI8KcLK+dKl5tcVk=; b=KnXJNpJ2hPL2IAIWO8X2wVctFTN/XpZbCHA2UZKx07DX+Qt5Nq/Srx4/MaEhEt+mkv NyclDPhh82TYhEiHxrl0k3+Lr/uBnpR1hQYi2Q0BGCOMzgTTazoPFk2wLV4nYtUY1v6U 31OqQvo4Y378fqjhfcWE8EuKQIm2qarG4o1WuPllwsTrsh7OyxSkrea59h4ynA1QHv0y aOiDNZJZNDxeAA9WiSmVKdao8x8S8ZUF7xPO+9VNbbw3ckbgpBlxlYtv3rzeIN//aBGT kmjs8GejaFvv1mO9bi+HjyyiOwfGoh/DzeOTJsJlS+dcqqM3KBGkNM/jV+lBxo3QUQsi i5Eg== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of lng-odp-bounces@lists.linaro.org designates 54.225.227.206 as permitted sender) smtp.mailfrom=lng-odp-bounces@lists.linaro.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Return-Path: Received: from lists.linaro.org (lists.linaro.org. [54.225.227.206]) by mx.google.com with ESMTP id d203si4870889itg.129.2017.06.28.03.37.41; Wed, 28 Jun 2017 03:37:41 -0700 (PDT) Received-SPF: pass (google.com: domain of lng-odp-bounces@lists.linaro.org designates 54.225.227.206 as permitted sender) client-ip=54.225.227.206; Authentication-Results: mx.google.com; spf=pass (google.com: domain of lng-odp-bounces@lists.linaro.org designates 54.225.227.206 as permitted sender) smtp.mailfrom=lng-odp-bounces@lists.linaro.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: by lists.linaro.org (Postfix, from userid 109) id DF65760D60; Wed, 28 Jun 2017 10:37:40 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on ip-10-142-244-252 X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAD_ENC_HEADER,BAYES_00, RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H4, RCVD_IN_MSPIKE_WL, SPF_HELO_PASS, URIBL_BLOCKED autolearn=disabled version=3.4.0 Received: from [127.0.0.1] (localhost [127.0.0.1]) by lists.linaro.org (Postfix) with ESMTP id 27C5C60921; Wed, 28 Jun 2017 10:37:30 +0000 (UTC) X-Original-To: lng-odp@lists.linaro.org Delivered-To: lng-odp@lists.linaro.org Received: by lists.linaro.org (Postfix, from userid 109) id 9DE5960921; Wed, 28 Jun 2017 10:37:19 +0000 (UTC) Received: from EUR01-DB5-obe.outbound.protection.outlook.com (mail-db5eur01on0131.outbound.protection.outlook.com [104.47.2.131]) by lists.linaro.org (Postfix) with ESMTPS id ECEB060921 for ; Wed, 28 Jun 2017 10:27:54 +0000 (UTC) Received: from VI1PR07CA0198.eurprd07.prod.outlook.com (2603:10a6:802:3f::22) by HE1PR07MB1049.eurprd07.prod.outlook.com (2a01:111:e400:581d::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1220.5; Wed, 28 Jun 2017 10:27:53 +0000 Received: from DB5EUR03FT056.eop-EUR03.prod.protection.outlook.com (2a01:111:f400:7e0a::203) by VI1PR07CA0198.outlook.office365.com (2603:10a6:802:3f::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1178.10 via Frontend Transport; Wed, 28 Jun 2017 10:27:52 +0000 Received-SPF: SoftFail (protection.outlook.com: domain of transitioning linaro.org discourages use of 131.228.2.240 as permitted sender) Received: from mailrelay.int.nokia.com (131.228.2.240) by DB5EUR03FT056.mail.protection.outlook.com (10.152.21.124) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.1178.14 via Frontend Transport; Wed, 28 Jun 2017 10:27:52 +0000 Received: from fihe3nok0734.emea.nsn-net.net (localhost [127.0.0.1]) by fihe3nok0734.emea.nsn-net.net (8.14.9/8.14.5) with ESMTP id v5SARY6f020152 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT) for ; Wed, 28 Jun 2017 13:27:34 +0300 Received: from 10.144.19.15 ([10.144.104.219]) by fihe3nok0734.emea.nsn-net.net (8.14.9/8.14.5) with ESMTP id v5SARYM4020142 (version=TLSv1/SSLv3 cipher=AES128-SHA256 bits=128 verify=NOT) for ; Wed, 28 Jun 2017 13:27:34 +0300 X-HPESVCS-Source-Ip: 10.144.104.219 From: Petri Savolainen To: Date: Wed, 28 Jun 2017 13:27:34 +0300 Message-ID: <20170628102734.26332-1-petri.savolainen@linaro.org> X-Mailer: git-send-email 2.13.0 X-EOPAttributedMessage: 0 X-MS-Office365-Filtering-HT: Tenant X-Forefront-Antispam-Report: CIP:131.228.2.240; IPV:CAL; SCL:-1; CTRY:FI; EFV:NLI; SFV:NSPM; SFS:(10019020)(6009001)(39850400002)(39400400002)(39840400002)(39450400003)(39410400002)(39860400002)(2980300002)(189002)(199003)(9170700003)(189998001)(2906002)(305945005)(50986999)(106466001)(105596002)(50466002)(48376002)(356003)(77096006)(8676002)(5003940100001)(5660300001)(50226002)(81166006)(8936002)(36756003)(38730400002)(53936002)(498600001)(110136004)(47776003)(86362001)(33646002)(22756006)(2351001)(1076002)(6916009)(217873001); DIR:OUT; SFP:1102; SCL:1; SRVR:HE1PR07MB1049; H:mailrelay.int.nokia.com; FPR:; SPF:SoftFail; MLV:sfv; MX:1; A:1; LANG:en; X-Microsoft-Exchange-Diagnostics: 1; DB5EUR03FT056; 1:ER0fqVbZAEB5gPlZNJeaIdCzVeNDcwJZ+1x7OGTOc+QVzC9Pvf1CTim5xKqHk2tlCikceIvfq/6BMcxBBCruGW0/AJ68hWpJbQtHFgjNmYuR/K4klQXeXur/5N6Gpzyg/QG0kHjLFqt5OSH+mgmyuiZKbYmH31zGSGKVruX5ZPZmL1d3TQIpCmidXjE0F+EgKlN1mt+IO4ZVH0XOWrTPaJBViF9Q5ER+Lw56sHeUWbL7iGuM6czhUdE+RCcAjIFUBGs4o4wKrCWikdzKNjOenqVyQ9y/n9Lo5xzOkEoMylOR1s+bWZwudq/SN1kwfy7frJYGHlw+L6cYxF0BoH/BpnERO5IuZwm7pQVoJRVduckNADdL+wG0A11em1iItkZATZ8lm0Kp2lpLIQnTRmgSEzBs2aAKBX7tSTNsz/XKrkZ3PDKclhTnAeehUFR0kDGra6j2FXtUPvTjhdHH1hEVrMxWk3EjyDG7jWLQ6+igSYA1QorLPe6MZPYZhiuFChtpQmCG5QPvqZ9RKGYY0q9F3jaOPVvUzwR1964d3d5uO5r8V9Qe0u5tPXAGxDnKbojjpJ/YFGM88xKeJ0atPUSb4KnbFQ9dFSjoK/fdahW7byc3bhfDZBHQuv0Kguf6pPmyveDBzHjm9PInclwAGHlTHXg676Y2wXvKtJ1SwD2wgMyFeFOuqCe/UobjkaoWdnOY+4V/oWpmV1CsUEYLUpsz4Cm6K2DO9m/cYbEyOBIYkJems4w6M+V6ZkN8O5jtydgnb3X/qHeIdja9yrFnahpfTnwlk6vziRrULaTpJibkifUbt8xpfa1VsdbPQfR7LwK0H3LvUPWgEi/XKcn4CfU8xJd1ZG9llNlNoZZqbv8VR2tEopQ7EUWVe7kvsqbtvFiA MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 47cfe072-39c8-4696-d53b-08d4be10551a X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(300000500095)(300135000095)(300000501095)(300135300095)(22001)(300000502095)(300135100095)(2017030254075)(300000503095)(300135400095)(201703131423075)(201703031133081)(300000504095)(300135200095)(300000505095)(300135600095); SRVR:HE1PR07MB1049; X-Microsoft-Exchange-Diagnostics: 1; HE1PR07MB1049; 3:lRsOrre1cwEU9QYCAl4CZeERGpnAP1MB5epu4Z4ED3nH+tjyAXvKJGpojNJgjLWN2ghdE21K9CGDyDiatv13nwi2hEquxJsE2qoNp1mT16LiaEsX/4cntdSKhhDu54SgYSOOU6BD/E/PCBRnUsVR8zE76ag7QRIb3y6oVYdPgPyLSWoca7msGQ5UdXn+tC349ywUKi1ga6RxUBGlAO+1KvYZP/nEmPY4GbSUNGcpOUHhbqhhqLkmr712lcCk6qAaydp7B5WqVKYsLIKdWfPef3bJiLpAeJmx6zp4Oo3t1C+ZoyraishrJW9utjkOHCT4jzmdFwysAtnQfmGaqapUwin2l2RWyBjSlYD8GysM+tD4CFKAXijpR10uIvj+Vf+p2ojz78PchOTmV95Ek0rlLvJz/uzrjdmTz63RGhFYY/UHvGq0aH0Ry8kOvz9AOc59mb35ORCwrfugC9Yb/eMJAhcKGdnnEolQvyfy++88DNSvNTtXrRv2abDIvJBdixGJN65yh//dSs8ANext0reQPx3nJiFwXqeqTTN9O7uFbRaO+SH6asyHUO3xY3SC56OuB0pxUew+H+78JC5EKKyhOSwVBNe+i6uiz7k7qSxcJcCFRXr94vUK5E3nq/UywphDwU0jm5OrhMRQP0ADWGVe3xZQpFOkRd2r1pffwcInIpbGLT5d9oA14J2A+YUcwGKK5VpaZJvziHo9Mcz954gBEHzg3bNt2NWYVFTRKYEbirCkBmywrnzxv/t95Xwzp4rLl/CjqesxIFotd4LPrAUsA0zX+ppXxI4suEpFKcDd8TivERZEWm6lGJiCEvj/wZk1 X-MS-TrafficTypeDiagnostic: HE1PR07MB1049: X-Microsoft-Exchange-Diagnostics: 1; HE1PR07MB1049; 25:dSq4is7meF0bdxQecyTgF/uaHC+GJOMPdtFjT3QKmm2KGJdjQa1yfI7oYQeTBkJdklOddzntoIrbCxhbWVnhDL/VDoR5La4/RF12LoglZPcFQOWl+mKQyGzqRailbXQ8stClp0UMcAyrV3LP9IeUJ6AAcvLk/ZAmA+I7lQdK5I6zOcTHv6wtuU/fCEghkMwRRdTSlqxTQyXGOmyElfmmSfyqespv4a7RTV3feYF17g39mPxI6gK4NgINF80XGRY1WvCKzhKMMlbH6rH1Ir7jq23e2sXi8OwbSAVQIn5/E87DdqcuAtOZTh3JNubgjjRzdgYDG2997tPMFFnpWFBrjwSutg1JlW/qGD5LN8vw6cEG8b2waDm5fPDKLJft4Fjrs9aLqLVU8iCvQnbttf4OcrQMtqw4Cm1qaCCIEELjx2NR0yWz+mVmykcjNHJzXX8k9eHKQtfKk3kNCPCj5OKETWD58G2GmdL3qr+BfuKLgcB44bdnHbVpX2XGDXUthELpsADlKC/rTNGzDyTgqaeTRyO7XYouIuUJXbX0hxPYvwl3LyAydURUoExKsaXjoWUVqiVqP/2Jx21Vbyg2jfnSFlKvk0g2fIuW16/BXyIhm2EeIrA2IiNG4uT0Yjz1JVuH3LqjwNRAl5kMXNFkNo3hsMI5tswmUkVEAiV/F5GfgcdGkknjx5PAEZnGalUeSA9yvLgAuFpaSJFMLsxWxjSBf05bG7wQLe9gWruFs1O+sPSbeufhQvtPFoR/yJPRLYsxQlWFRfMFSgFA+p3hBy4RVvA8OgB4f5Hc/DDfFkbfRhvwIZC3gu1V57FqAMLK1lqmNTnqjLE97cWu5Anc0o3+W/uyMdLT+BOFo1g/plOBAGz2IUCTIV7lJIi6GGhJcRgR1BbT5bWYijiP0lVLTb3/Az63RV+GEFKFFlhLwF+Zkec= X-Microsoft-Exchange-Diagnostics: 1; HE1PR07MB1049; 31:WbAPpm5p7agVVFYR9C/qTvkeqCpkcnxIwfLvcrmBZr0kwm6rClTIZ65wDi8ah4Y9HD0MOoHOU1/42FCJF6Epwqw83CF9embOajDA8jK/ijauEEnk5VkBdXEBuBCDrjFyCRtQTmn7CdDy9nnIvta8CfmA8xTujTpaY63kPV10sGpwnFW8xff1BvjjFBKVZNd18e6MqNXbckZxGkqnvV1JdX8h7aVCfOs80la+6yjB3FPI4EnsiamXIICk5HKZSCsS7I/k2vTLdHsf/3u+OFW424c1p2LJDgfRrD02NaEQqxBhR1ajdkVXNrCTSHFOt/6/ZaQbEwqoQMtOu/2Dk5fY39bCSimbwWFaqie1AlPtH6Kkw4Ye6EyUpVWpT6NC0VjKI+V2y54Gj6sEouJ8+uUarWo15u8vm+h7Kya+4jA1ZeuBl8ixLxjqZlFh9XkRDbqRGqyNPPXAO21IHr6m0hy8gRMG2ft5O+vdUUalULAdMA+wKzXZmOFPHt/Z4iCOLUkIzrZgoQBW1RntnuQ79xsNlLis03/kBV5ITCYUxgEqUAj7mtQAbVtuqmxOVjYLwhNndig5VGBjWVxTkpiVnPt1dpTQNt1UpuYNL0MW4JODc5SCHJpR1CSjVXxPAdE7GEczNF3WaK/co1dGKTf+i3JNYa/m3dNU2QBdn0u6EgO+bcbiSyQ5hAMTCnGie2G1O8fHdXEwIn4VBmEv8KrgFuDrOA== X-Microsoft-Exchange-Diagnostics: 1; HE1PR07MB1049; 20:c8GxYXLNSF0GIH27Lfrm8hn7wDKBxcfEH2kFJ4atHsGlbv9QhZ+92/7eBB3MwlVZU0o/qRDZSl72cC8a0kf+NZf4bnTiT3wEWdNqjWEFK5uN+l00Kamu3fMrBCx6sZeDjwyX7H4rNB6I8bmplg3M6uXxdfwA5IM37B0cWD6ngSv+87rSb+MfXs/eWkz+xq7G1Ci4oCe4U9udvLezd7S7B7+5jaqwAFH/dHFOX4LaiZ53IEfGKxlDTpDJRx2s+VTc5rnzpp6h/v8P/5CmYaFh+62vY3yX1qwYFa2jWyiIlkTRaznJtpcY8zp+2KJpuqB4459QMpAVZD86HGQMSdSo1i0lLR2EMB3MLNE3MsRvK53hVGRIaHNDH4okDyjCTch1Kjxov3WR3WHScDT6UCqvg6ODlHNkpldKe+jaQnomS2EixkDsPAwf/fPMpwXZPuw3QdbQMnexpaKDcpi9mmyaeMG/j/VWgv2t+gNynQk2L98ZioVlV01V9LZk15juJZlubAi6+trGniah09lH1mogogaVmoyXKtHFEB6P3K2TUT+0X1xb29WOfR4VhnCPaXU8SodYjmlxX/VDS+UR9xYhIFM1LVIpngyJndEPDV8o6Ko= X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(236129657087228)(131327999870524)(148574349560750)(247924648384137); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(601004)(2401047)(13013025)(5005006)(8121501046)(13021025)(100000703101)(100105400095)(10201501046)(93006095)(93003095)(3002001)(6055026)(6041248)(20161123564025)(20161123562025)(20161123560025)(201703131423075)(201702281528075)(201703061421075)(201703061750153)(20161123555025)(20161123558100)(6072148)(100000704101)(100105200095)(100000705101)(100105500095); SRVR:HE1PR07MB1049; BCL:0; PCL:0; RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095); SRVR:HE1PR07MB1049; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; HE1PR07MB1049; 4:U77VIE30RcklDioczS2WtlQBsP6mTMa3YH14fOPGcU?= 4zTqgkNsosTS/uaXKJctRB2JifIebIRC9hZdVryqOzQf0NNF96Kk5j0DjDAI0xkIH5eQryTJgMQVpvFFZg6/WGArwjhC9nA4gi3yJGkmkDXDZkGgwRT3+bnwX1jbBHu96n+4fEMEFPyt7PtFd9G4rOJaMzsLhKd+fmZCxmk++8tYWRCazSCbODUcpmeXK589gQm1Ny7hJQLe3BHcoGRzjBLwbALpAz1gkgNCv7JDfDZ8b29himNcaVv/jt4CP1E3TWTHRw5oF62ADIUCKf043y7dD3jXRKTq1vrB0RRNTk4om9bUF3x8vxREvYNeUJt5bou3mTLq5BUUBCMXPSfF7meJylNWVlz9WxfQHVwdnC5FijEAR4Nxvj4pjXuQ6w2OiRiqWhdo4n4ZexU78BHoLAuVuOpwSPp/7Vf0RDc+ob+5zLYoLb0Z1rRVTD7Tpp3N64tJ8cxpp4X5jeQy31IuotzMoc/vLkGaatH81MeDpoBptUivduUBKhFZKUaLJRsgaUbi2kAZ1kRxZrTmDgFVGsh4ZBHDytBkkoTmrzHhLk9ejopMX2ZOvo9dIsYtIDalmArp+X5FE/ScDJG/MJcY+8IYF2WgzgCPxCaX2WmOWoFEyf5T4rZ1QckcZN788GASw42MCM7eQsB0z+a+mxGD/CPBbWkTQGd1Rf2IXXX2grNrEy51JSSrDl+wVr5mEKjXVIq2OBNZGKF4okmwLzrbhvgHKpxSt4DDVNOktZzcF0jZ8hE/+MqX95ZL0lRy5ZwOWMJ8i2lNqOZHwyJE6/S3+w7SW84KaS3HPFA7kluC7NWB/8H5a2KrMmwV9unyUfZDdKsL2qzIuEOsIXusjfTV5kwQzubcLZGzFxeAO+1bc4SmbVoxOxtv0WaDUh+qfvBcr2raWZBd5mrP36X/hiHxqrbIyO+c7ByvKzPI0Vp+a4Pcgbn8COATH9FvlpzOFK/IZk532eIZXrDFBrS2h6uiqzh0ZGLUV0RFkRhjsrYHG0deEd5YQida4GTllfdGOlqqF1c/mq/JhyBq/JxRcj+ZF9qc3Af27hvlEGbBefthY6r9TE9dycr8tysUdmQaSdn30EsX7C5FKjDTAXLvqOuYhrl1ltCFWo/zLHPC+B8f5zsKjScFcuQ0M50NaGOsCqJtb+GEGgWTW0mDqpqI9TfNMYFRgMXY3k2WXiVtKYxV3HdekHJXL3yl0VIUHugcRfYGxHO5NGKCB8m8Oa7Enh499E7jrWepVtxkGDdR1sjeD8ADBNIpTWFH+63xBkNwMDBdH0QbYKcIG6/6nkkNVvJBHYkdT9LEmhJ8ozLU93Lgohvw== X-Forefront-PRVS: 03524FBD26 X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; HE1PR07MB1049; 23:1ojNRnFAetFzAx5eWKVTR3UqRjbZ1Ad1kFvD8L/nW?= MEDGwlPHVZPGj01NhW11em391CnObLS+b/UYEseidEqF5l4aTVMPRFQ3ZrUn48J3QWkRyp4TDULtmFQUMQORkQa0ABCwJjD9H2Xij1UCWkvxwvucCoRPZZ5FoKMb/nMAJ/F7afz+05izImEORDHoXdHeQ+r5QKMCKSaBMa54uj1mIHrKewioKpc+7YugTIzgr5KQoMKsMzJLFC9t4CLIMQqCcYDprMPkjvs8/slkihMeeCPdavwygQ/jVZOVfS0zF7Oy3+FBZgSOLJmJRy3JQuFj7IwOIvRvb6patN7EgXFSj3q1SVcxDHopahGwCBIeoddP9QwotG4G0aksTLQbKo2Ns+sLnxiCA5qJb2FYmm+BlhlsR8ymNm96oId7B7C4sFmYGv5P/zXu98/YjHbkytX3puOnHJ/6irAAGFOFuzQrsOYsxdbfxwZubICE6WSxVSiuFtOY5xaldfSX3aJPPsE6npzTI+e9Agq7VtwpGjiROR0RaYXQyPlnrDLhKkRO+QM7I+OoiISNkBO5RnQVCjXm1MPuBKofBy/pWsvS+GPQtBpUzrYib/hE0WdILYGlXSzuNhMa7it4i/hXT0js2yrXkFcjtqFxG8mrMNDuqwWNKA3f3Fglj57oxyTm9Oq3LZD7OTxf1LF3xhMVYggOLo5ea2gFA33hV3UZhow/m6SEOpNik5L607InETrU6vXjgjfNjY2G4mxoQYILspTpetR8V/XNFSitmSYolRmK/kOGQ7vSd8Ty3477uZFc00V9r3r4iel1nISMA00okQoXmQBPPQMQ9M3j3SAwiyHQboMdlZReuX1eKlNyYM//cCC+IgPHSyjMTwnN51Zcf4vdCLPRHtdi1pzm+3e24HwEIqGHEBPb8Evr8k8d7NB8sJY3WzK29XQ0e4S2fyPTazLtxSA85ibALDpofF6vQbn2UjapkwG6SRfRoGuQZo00Ndceo/8PJqbDqN3jtY0F8SMVjIgof9oEb3y3uqSZBmjb6LVyQ== X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; HE1PR07MB1049; 6:8YLBmEQO9vMslR+YVmMw8LkXcZYMTxFZL9BarJvngZ?= 33qtpKzpoymBgN6v4V+FOyBm9jWWATKBNPNAqTAdxH+htncfAflvjii7XoU5re6A1kodAirSw0tchtzjSzEkD188Y4Wkw4oDCODdms2ULaRSqAQbIEq2b5IBekHiYDT8Bav0jE+7/kunH9mjHhxvfxkxRzPZQI/LU1lnmm1XTbCex4Kpqy8/293Sw157ma2Ss39Wtu7FFKw1XwPOoC9IhZEJGWV5NJCvPW0iaV3M0FN0LUeezHDLK+vkjzNT5OjZwiS357LhjXTO1WiBwiipCp67BolIalmr2DwgQjSNv3P93+LLgquTU/QEqGGKQz7WuAWQhgDxuTshTouJFhDPQWNXHabXZZEVjQwbg6CmmtNn5t9xO/l0UcTghh8uWuR2jpGgkNuBVThs6SUmBd2Vq/dEp8Q8mFpgAXSimkTUWCGkiLtLrl+vGBvqfBVF4qcGwcF+Fcg/pc8AFZmfs1sWFGJvDMW5vzxhoBXNKVl4WEeA4C8aiYB4z8NrYH0lieHhkx1x0QbaZtpAg+IB47SadVmBd4O8RzVE7z0o6EthVhscDQheazpuiNj7o8j8xtMN8fNJ7BCTDTS86Qj/bBfrWIh4JAWESjFy9Y4rYOSl1az9ir1yxA07ABT0pco5Sa5PUsxdKnV3aE+idjBvuQ2OjeT7v8abNN2dg6m32W9AW3zMAqtOco7t9nbO5wFJsY41apE/4SS8YdK7rvwwP043AgrB5GvZN5cPycbJKK0nqVn/f65rtPqMPXAkX5oT5DEp4IU3QuAqGfwpG6uDUnSu0QlhajM7NcbBHvYojVnDNZQoQ+dKCx9zBGTqgrxQYKrZexrKg/JSEEeQUAEFC9rLtEJrJVZnZMuSzvpetd1eWhojbAMvjDVddY3WKFXNXnqxCazAWyJDGBt9Ej//zTk19XPrXnVewbzEqDpKj1MOn8UIq1VPL36yJ7bs8mnT4VzueODIVdBZd9esZfEDFzMmaz X-Microsoft-Exchange-Diagnostics: 1; HE1PR07MB1049; 5:GZS+zCBnSDd4gDsuqilvbjh1OIOoOQFBqm7eZuVmWIREFhyy7xEt+CiM521L3nLwSK7XDdT3AIy+pw/fvkqGqhD7sIUTYvI//LZ7fvOk8boOsBaAlIwK9CKxEpd9RQuDAg7FMH2MpnqeQWQZzklrEVUTmU3EAVChBvQsk1g/Iw6JWm+5IaVcP0ti0KWJ0gLWubZepc2pMx2v4ZxJ0sdol9iedDxFNRhveNpHcZoVHbXNqV3BK/D2/NuameEurG/4mmEYWdD+HAHKs56jTIES8tWlUmRrLVheIQufhVByiUfqRbzbJiyGc18TwVKR0FRJdjC0yYusS5DYxGSJh1oUl6AqsCirDGMi/NoXWpOMwqD2ToAUano9MjHVoQQ+99E4b2k0LEnIia1hq6hQfg/epO9uiwpxucksxQdE5GXgmPekuwkNpEaq+ZutLTcrzUskdsU+L4t+GCJJ/SL+cuPHM/JhmJ9SP7Nf+wTP8r2d/k+O+0xsqfOj10kwfFUaJ6ec; 24:4otGUnndwW1qtFJfsfztYC+ol96mVX1LXSVsI1oObOI5nrRFb4Yzlg5X0kekI7w4l02ijZLGXeu3L9w0XickNUQkrt65ecdbuHSZ6ObTkLk= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; HE1PR07MB1049; 7:JtJ2hOAQ+thp3iQOYBsXJTiKGEVlk9jZqW0bYTCm/XTo8uFRUOjE9gTn3G7o7e3UXj3PwjSKZ6LFgSHnRxh1XBJ2Bl4hYbuAvpiNAb89N5SNJlun9UUtwaAnazZrKwHEbxd7ff0oS4PJyQ4QUkkjTIneT3ysg++pCBqL1Z598FTJv/rlNc7tEyInae3wghRUkOo2qZSjGROR2ItjjRf9B8+PzEew/cOQjEk+bwltmoV+TL497GxNUyNqaJsh5+0V+BQWcdhwP2BbobBrJsgAgB0CUCcfyXRGRqi9/h8l7P6NbNFbvqo9DXRMk47eyOWr2JtWh+Mn6z2vNgeprHFztaY/TndUWP40UtxumW9rhC5GyF4MQgMiNh3PkEABA2o4m4VDfpHgTLWXL6/z4gJ3myS8sOwejNqYK/jF32EYaAL5Dpu8vLZQXI2oPTYDOvTD3u7FJplFeCx9ALbpvrQFg696el7e1pbHybfTjLyPROQWQSaUJanmLTodNN/lsY+Xn3yRgZQ5ro0KYjoZZeuzVuphowY6/wv0XVbgkhhl2+yntC4+4lgkc17Mdl060IBmAUs7JnmMzDGsKa3rmkhfJdMxg0/+ggGoLIxioSMc4Qqi0o9BHxpgn/oEd1gTZ/8lF5igYuIZeJJtdRWFR6cyo9NBFU8l7U20K++sbwaBaJd6GSCh+omLRVPf9kfuCtDFqNslwLIqGc7FcKSxnrgsX+yMBkQmuUUM2UOL81E+bued7UmavCgRDdTgT2IwbR7kr4HwcYDMCSAVILwshcqzL28xXCHFBOJnAYCYugwvtNk= X-OriginatorOrg: nokia.onmicrosoft.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 28 Jun 2017 10:27:52.0765 (UTC) X-MS-Exchange-CrossTenant-Id: 5d471751-9675-428d-917b-70f44f9630b0 X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=5d471751-9675-428d-917b-70f44f9630b0; Ip=[131.228.2.240]; Helo=[mailrelay.int.nokia.com] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: HE1PR07MB1049 Subject: [lng-odp] [API-NEXT PATCH v4] api: pool: additional packet length configuration X-BeenThere: lng-odp@lists.linaro.org X-Mailman-Version: 2.1.16 Precedence: list List-Id: "The OpenDataPlane \(ODP\) List" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: lng-odp-bounces@lists.linaro.org Sender: "lng-odp" Added packet pool parameters for more fine grained pool configuration. The basic usage of the parameters is not changed, except that implementation may now round up 'num' by default. Application can limit the round up with new 'max_num' parameter. Another new parameter (opt) allows application give hints and requirements about e.g. memory to be used for a pool (or parts of the pool). Additionally, pool configuration may be extended with a table of num/len/opt values. This gives application more flexibility to specify requirements for various packet sizes. For example, the new specification allows to create this kind of pool: ^ | max_num | - - - - - - - - | | * NUM | * * | * * * | o * * * * | o * * * * * +---------------> LEN o == small number of short packets into fast memory * == all other packets into DDR Signed-off-by: Petri Savolainen --- include/odp/api/spec/pool.h | 140 +++++++++++++++++++++++++++++++++++++++----- 1 file changed, 126 insertions(+), 14 deletions(-) -- 2.13.0 diff --git a/include/odp/api/spec/pool.h b/include/odp/api/spec/pool.h index 6fc5b6b4..ae3aa2b1 100644 --- a/include/odp/api/spec/pool.h +++ b/include/odp/api/spec/pool.h @@ -41,6 +41,9 @@ extern "C" { * Maximum pool name length in chars including null char */ +/** Maximum number of packet pool subparameters */ +#define ODP_POOL_PKT_SUB_MAX 7 + /** * Pool capabilities */ @@ -127,6 +130,12 @@ typedef struct odp_pool_capability_t { * The value of zero means that limited only by the available * memory size for the pool. */ uint32_t max_uarea_size; + + /** Maximum number of subparameters + * + * Maximum number of packet pool subparameters. Valid range is + * 0 ... ODP_POOL_PKT_SUB_MAX. */ + uint8_t max_num_sub; } pkt; /** Timeout pool capabilities */ @@ -156,6 +165,32 @@ typedef struct odp_pool_capability_t { int odp_pool_capability(odp_pool_capability_t *capa); /** + * Pool memory type + */ +typedef enum odp_pool_mem_type_t { + /** Default memory type. Typically, this is the main memory (DRAM). */ + ODP_POOL_MEM_DEFAULT = 0, + + /** Fast on chip memory. Some implementations may have a restricted + * amount of chip internal memory that may be used for pools. It's + * faster to access (higher bandwidth and lower latency) from CPUs + * and accelerators than the default memory. */ + ODP_POOL_MEM_ON_CHIP + +} odp_pool_mem_type_t; + +/** + * Additional options for packet pool creation + */ +typedef struct odp_pool_pkt_opt_t { + /** Pool memory type. This is a hint which memory type should be used + * for a pool or a subset of a pool. Implementation may ignore the + * hint, if e.g. it has only one type of memory. */ + odp_pool_mem_type_t mem_type; + +} odp_pool_pkt_opt_t; + +/** * Pool parameters * Used to communicate pool creation options. * @note A single thread may not be able to allocate all 'num' elements @@ -185,35 +220,96 @@ typedef struct odp_pool_param_t { /** Parameters for packet pools */ struct { - /** The number of packets that the pool must provide - that are packet length 'len' bytes or smaller. - The maximum value is defined by pool capability - pkt.max_num. */ + /** The minimum number of packets that are packet length + * 'len' bytes or smaller. The maximum value is defined + * by pool capability pkt.max_num. An implementation + * may round up the value, as long as the 'max_num' + * parameter below is not violated. + */ uint32_t num; - /** Minimum packet length that the pool must provide - 'num' packets. The number of packets may be less - than 'num' when packets are larger than 'len'. - The maximum value is defined by pool capability - pkt.max_len. Use 0 for default. */ + /** The minimum packet length that at least 'num' + * packets are required. The maximum value is defined + * by pool capability pkt.max_len. Use 0 for default. + */ uint32_t len; + /** Packet pool options + * + * Options contain additional hints and requirements, + * which quide implementation e.g. to select correct + * memory type for the pool. + */ + odp_pool_pkt_opt_t opt; + + /** Number of subparameters + * + * The number of subparameter table (pkt.sub[]) entries + * filled in. Subparameters continue pool configuration + * after the three parameters ('num', 'len' and 'opt'). + * above. The maximum value is defined by pool + * capability pkt.max_num_sub. The default value is 0. + */ + uint8_t num_sub; + /** Maximum packet length that will be allocated from the pool. The maximum value is defined by pool capability pkt.max_len. Use 0 for default (the pool maximum). */ uint32_t max_len; + /** Maximum number of packets + * + * This is the maximum number of packets of any length + * that can be allocated from the pool. The maximum + * value is defined by pool capability pkt.max_num. + * Use 0 for no requirement for maximum number. + * The default value is 0. + */ + uint32_t max_num; + /** Minimum number of packet data bytes that are stored - in the first segment of a packet. The maximum value - is defined by pool capability pkt.max_seg_len. - Use 0 for default. */ + * in the first segment of a packet. The maximum value + * is defined by pool capability pkt.max_seg_len. + * Use equal value with 'max_len' to ensure that all + * packets are single segment. Use 0 for default. + */ uint32_t seg_len; /** User area size in bytes. The maximum value is defined by pool capability pkt.max_uarea_size. Specify as 0 if no user area is needed. */ uint32_t uarea_size; + + /** Packet pool subparameters + * + * This table gives more fine grained requirements for + * pool configuration. The table continues from + * num/len/opt specification above. Therefore, + * pkt.sub[0].len must be greater than pkt.len, and + * pkt.sub[0].num refers to packet lengths between + * pkt.len + 1 and pkt.sub[0].len. + * + * Table enties must be ordered by the packet length. + * A number of packets figure (pkt.sub[N].num) refers + * to packet lengths between pkt.sub[N-1].len + 1 and + * pkt.sub[N].len. Each number of packets requirement + * may be rounded up, as long as the 'max_num' + * parameter is not violated. A pool fulfills each + * num/len requirement separately (when there are no + * other allocations from the pool). + */ + struct { + /** Number of packets */ + uint32_t num; + + /** Packet length in bytes */ + uint32_t len; + + /** Packet pool options */ + odp_pool_pkt_opt_t opt; + + } sub[ODP_POOL_PKT_SUB_MAX]; } pkt; /** Parameters for timeout pools */ @@ -278,8 +374,24 @@ odp_pool_t odp_pool_lookup(const char *name); * Used to get information about a pool. */ typedef struct odp_pool_info_t { - const char *name; /**< pool name */ - odp_pool_param_t params; /**< pool parameters */ + /** Pool name */ + const char *name; + + /** Copy of the pool parameters */ + odp_pool_param_t params; + + /** Packet pool info */ + struct { + /** Maximum number of packets of any length + * + * This many packets in maximum can be allocated from the pool. + * Application can use this e.g. to prepare enough per packet + * contexts. + */ + uint32_t max_num; + + } pkt; + } odp_pool_info_t; /**