From patchwork Fri Mar 3 14:23:07 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Petri Savolainen X-Patchwork-Id: 94842 Delivered-To: patch@linaro.org Received: by 10.140.82.71 with SMTP id g65csp259440qgd; Fri, 3 Mar 2017 06:24:43 -0800 (PST) X-Received: by 10.55.19.234 with SMTP id 103mr2618835qkt.69.1488551083902; Fri, 03 Mar 2017 06:24:43 -0800 (PST) Return-Path: Received: from lists.linaro.org (lists.linaro.org. [54.225.227.206]) by mx.google.com with ESMTP id y5si9429321qkc.328.2017.03.03.06.24.43; Fri, 03 Mar 2017 06:24:43 -0800 (PST) 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 38D6562DA1; Fri, 3 Mar 2017 14:24:43 +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_H2,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 CF7C960EE7; Fri, 3 Mar 2017 14:24:38 +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 0F3BB60EE7; Fri, 3 Mar 2017 14:24:36 +0000 (UTC) Received: from EUR03-AM5-obe.outbound.protection.outlook.com (mail-eopbgr30091.outbound.protection.outlook.com [40.107.3.91]) by lists.linaro.org (Postfix) with ESMTPS id 32DE260743 for ; Fri, 3 Mar 2017 14:24:34 +0000 (UTC) Received: from VI1PR07CA0067.eurprd07.prod.outlook.com (10.164.94.163) by VI1PR0701MB2928.eurprd07.prod.outlook.com (10.173.72.19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.947.2; Fri, 3 Mar 2017 14:24:32 +0000 Received: from AM5EUR03FT062.eop-EUR03.prod.protection.outlook.com (2a01:111:f400:7e08::207) by VI1PR07CA0067.outlook.office365.com (2a01:111:e400:5967::35) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.947.2 via Frontend Transport; Fri, 3 Mar 2017 14:24:32 +0000 Received-SPF: SoftFail (protection.outlook.com: domain of transitioning linaro.org discourages use of 131.228.2.37 as permitted sender) Received: from hybrid2.ext.net.nokia.com (131.228.2.37) by AM5EUR03FT062.mail.protection.outlook.com (10.152.17.120) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.933.11 via Frontend Transport; Fri, 3 Mar 2017 14:24:32 +0000 Received: from fihe3nok1346.nsn-intra.net (10.158.36.134) by fihe3nok1348.nsn-intra.net (10.158.36.136) with Microsoft SMTP Server (TLS) id 15.1.466.34; Fri, 3 Mar 2017 16:24:31 +0200 Received: from mailrelay.int.nokia.com (10.130.128.30) by fihe3nok1346.nsn-intra.net (10.158.36.134) with Microsoft SMTP Server (TLS) id 15.1.466.34 via Frontend Transport; Fri, 3 Mar 2017 16:24:31 +0200 Received: from fihe3nok0735.emea.nsn-net.net (localhost [127.0.0.1]) by fihe3nok0735.emea.nsn-net.net (8.14.9/8.14.5) with ESMTP id v23EN8o3023552 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT) for ; Fri, 3 Mar 2017 16:23:09 +0200 Received: from 10.144.19.15 ([10.144.104.219]) by fihe3nok0735.emea.nsn-net.net (8.14.9/8.14.5) with ESMTP id v23EN86n023545 (version=TLSv1/SSLv3 cipher=AES128-SHA256 bits=128 verify=NOT) for ; Fri, 3 Mar 2017 16:23:08 +0200 X-HPESVCS-Source-Ip: 10.144.104.219 From: Petri Savolainen To: Date: Fri, 3 Mar 2017 16:23:07 +0200 Message-ID: <1488550988-2652-1-git-send-email-petri.savolainen@linaro.org> X-Mailer: git-send-email 2.8.1 MIME-Version: 1.0 X-EOPAttributedMessage: 0 X-MS-Office365-Filtering-HT: Tenant X-Forefront-Antispam-Report: CIP:131.228.2.37; IPV:NLI; CTRY:FI; EFV:NLI; SFV:NSPM; SFS:(10019020)(6009001)(7916002)(39450400003)(39410400002)(39860400002)(39840400002)(39850400002)(2980300002)(199003)(189002)(9170700003)(36756003)(77096006)(575784001)(86362001)(50986999)(2906002)(92566002)(450100001)(105596002)(2351001)(5003940100001)(6916009)(106466001)(50466002)(33646002)(48376002)(5660300001)(38730400002)(110136004)(22756006)(356003)(47776003)(53936002)(305945005)(8676002)(81166006)(50226002)(8936002)(189998001)(626004)(217873001); DIR:OUT; SFP:1102; SCL:1; SRVR:VI1PR0701MB2928; H:hybrid2.ext.net.nokia.com; FPR:; SPF:SoftFail; MLV:sfv; A:1; MX:1; LANG:en; X-Microsoft-Exchange-Diagnostics: 1; AM5EUR03FT062; 1:BlB7gmtTWhNzuId8qh5OKu5F4qOjZ7Q4bix69Q1/2bD4eKkomLrQKa4Kca/LBrM6mOYn7oGkF5uD4OYdHps9RSJ7FYpollAj3dny3DqBjDM6DSA/tH/q1+cT4TKZ05PMqSmiP10S6L464k8Yz1BRkZh1CY9s9uzTRtIL+b0Jf+0mg/mQxSOG9bLJ5oW8/0jWM0COeL66PbTWMfZ1BuPn5EjAqG/in3g/qryLFF6i0fxruACFHu9HOKxdto6BE+SV3yTo7+9sC+iDaxAA0AGnfdvpHYBVxYjy5iT5coks0UWfLFJDoG8IkNsbMBf9b0ikgae6rAMBPNsSXhYfU2zkop5jZ75/Mjw3ROLOiz2gIyrk4xE+lCkOB72rQgdzFKs/bD+nAUw/yDbKlcSvhmxn1p8vukMWsFtsKRZZGpORUESrShHmgv0ozCE3emSNqtmb5G67IgOVLCc7anu1yDjYMHbHS7H/MesOuDRR7liq4mc= X-MS-Office365-Filtering-Correlation-Id: cba83d90-51c9-42df-9653-08d4624102db X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001); SRVR:VI1PR0701MB2928; X-Microsoft-Exchange-Diagnostics: 1; VI1PR0701MB2928; 3:V7Kswl1PF2vVwNPoEJ32ZtaqvR12inMXoHE8YpffePu2SefgInX6wAZNVlnjLoTiUPNk6+m8R/CECgwKGQe89OJD0EKZ8xXq4rv78n/fv4ttqDiavfsI5nbMDjs5aPimFKheLVF6DBzIC6sEZmyUIcmk4utbGlHRb6zq65gqfTJZS52fgUhpTAiFPST6CCmFTw5Y1h3oTBDfMZWw6KiafEgSOIc0CtSy92NbE+VaDd5b1L/wDRh4K4QwoMVld05j47ENmedeKLOmcjMjdKgTRMrdKwzMZqrwhbpa+VLnV0ZNXrGTYo7AEcmzn/Owa+qzpTgItZEH5zVbLeWXrVDmcWq/nIfp0hapBSISJeHIYg9n7Yp64G0FIK4r/gF6ayig; 25:2VXTffvL63+rK7A+yAq/4zaE7Ad9MP7dY7Ulm5WVs3RFG0eHE4R3LD7TCYoF4eNWHiamXiHFVkTWpgT7IwtPRFQlF6wi5vBoNS4Ht3/+NG2hZ2JsykzOFikJO/F1x3mSLLyYKjK/nm3WmbrO5QnwA+ylWkSjyeQNIjk829zLkRpxz/rUDi67D/5v4bxxD30vM/7Tis5ksVUTuCA5qoLpkcHllxNLQ6CTeUdeqB/svS7vGsV+q4tJaE6NZ1KyU6TqGHdZkRQ0ZOead7dKVu/MFbOpj/8xUjAIjm9E+spBkzB7RhMrehfObSvyYZTLZqXKix4fYPCKG0r57aUQH0dBTztb9ljolmgPm3Wb2jvYSmX5Hn4qjgfYpZmyzeMT3zaRHQQQvNPOOCpNKsF8Pk9o4J4B0AJO8qlBSjZYRHpTlaSjTowAScfTBN0OyQKGH1Qbx90IjMA4cexfqiwUtH004Q== X-Microsoft-Exchange-Diagnostics: 1; VI1PR0701MB2928; 31:skNZDK7fa8iLo628sxtSq8ZDI7iv5gXPf6cYMJPEYqVkJ2FTDONE4KCoKqvx+Nrc4qJrDS3xsdxZ1L6OLnOFCYLLx0ZI+7/Jt5dvIFPQcZCXTodoN9i9uHpYfTkr2oT2q4oLEVgQ9ZSmTTFgihH+v6ggVO3jzF9ekx42thjjG9a7i5l+iKhJx7+1zWnaoASlkCeMvX/UaZ9+RfLa5QtxbGl6goxjt9uoifD6cTLImbdMtdlJbnsM6hiWaxJcrySMiolt0Ucn6PdMUJhsAXw5EdJkD4moL5HOv85UReeMbbE=; 20:EDm3+gAiX0z8aQC7lgTrwd7a50w0pngNn06p4JqVvktpnnC+dKKJ86h1lUSryMoZAzNyMf+rbylPP4GIKvbgL3HoD9a30AK+2BtEL1iHO2oplhR+9xTbQhg9ZRmR1QHIdE6ZItsLISfAhy08IbgMBQfMLo2pdmZBqhQ2h3q+JiBjplTk47sduAy8heSEcU4lf5O+ec/6f6uD50+k4pH31oS3tDxF3wZwA+MMkaa93v8B05boAKBgTWWIKt7jCTV9eB6ZGEXQHTqcoBCMEFXKhS0VaJQ75I5qHwsZt6X7qUZr87INuHyK2anXAujVjPHlZePBTv7H/eLBpKybcxj2PeXjIXoymYXhmE8RQGH6jOGZgNC+1vBUkv8gI8PxqJW4Psem4Y3FlxT6t8gwaYDZDu5Njohh3wB7fDUU9dpAk4oNyIaOaQFnjplLgSIE+SqopSqpVo5Rtrr8rc3I+IE5ZT6+a0fqoVMTEKamztXOIsJEWFAvaoZu6zdxiz8xs1fVnJ49tABgvNkj1eoBv1Qp0T0qidn8RyWnK6xORRdb8tXQhGsjtJiRbeMGrkVK7nwoyqVa0jgtKupCccoA2iFHYLxrKOHmuBbBfdDA751U81g= X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6040375)(601004)(2401047)(13018025)(13016025)(8121501046)(5005006)(3002001)(10201501046)(6055026)(6041248)(20161123562025)(20161123558025)(20161123560025)(20161123564025)(20161123555025)(6072148); SRVR:VI1PR0701MB2928; BCL:0; PCL:0; RULEID:; SRVR:VI1PR0701MB2928; X-Microsoft-Exchange-Diagnostics: 1; VI1PR0701MB2928; 4:fLCDU6eiiopuQ0KvUu+dth2NRsuhpvRqlt9JTFhT9RSMnTZCf73xGF5sR3VTxelwXMm2m+uW7tGN4+5p6wTnevJOU60JXOrFfQEI/NOLfpfXa7L851YC1M8Yv5W7uJGR/xAb9N4+vFRxmrY0iGK1eccR7AvVdV6IDWXzTya5gNMhYt8w93qW+Km/nI2Q+pWaIM6dtOK832s+k0Mk+UQegkfMDI5QQCCm5S8QdrSOP1+8VlVBJNJen0Z6nfrRpWFXoXAZQ79aHdo2mmF4FZpf0YCZ+f2Al1CP8fjRyugR0eDeGRKmCQpiczAtEKQFEYyYQDx4dUDMTF2rbwzyAyUGb5yw0AMuXetZnXuOg+FBOZTi3US1tC0tNA2aesPX8i9h8m0mb358BMfkuC3uoGACh4TgEaYQMmMuFXL0poNT/DYLzpAbFoq+z/8TJ0AeJMNa0MU8qvJhgBGzSCYpX15YIASiPgNWkj5FgKYaWya5YzMkWf8qsL+ZRPkNwG7V9sWf87mHmf+OEMtVCeYTMb1WZMKnZPgtcjSBS1OGE8dFrNSt8nkAInczPS/Vu2s3ChUIjgJ0ipu8qRTuRVtnF1Gwi39cmx5gytdL0UrT/zRk74DbCbtlCDk1t8rRn07n/LqiQRVjr0PO3XQ6j9cdckgHfzEnCCjkNeiRs/Uc27llaGw= X-Forefront-PRVS: 0235CBE7D0 X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; VI1PR0701MB2928; 23:c5SDA1ZIawG0iYFYqgdtfPPu7tHZa0FtJs/zsc8?= q/khlAJgfvOxIkQZC2H/Fdr7wMAh4hD6iaOnS/HAMFlESGduaXTILaqZiZOGhdriyLSKJadtJ+Rv38bds7cCbESicSsW7f0G6kcNp5wDdGMPdKArV9B9YDHN+mqfMujyBv5fZpZvsPZzk8B1AmdwoWfAtbQAtuC/KEZR8osansB3XzoEhlqh8wo4tzE0AB0kvx4JWFmaANXoWiHgfGmsCg0YUrZMroVyESC+/3Z/m9qM2lpqVK9mYfJq94WQ7Q9atPMqz4tA+og9k11aJHrXdGcjizXrjQq2IDIa/XrknO5JhVRyPRWkv+aG/gsIr02fxJcY/8BxWh7L4K2pFzGzvilUkiNoyXv3LtvpItMvAKCmrHxRwkWXIUKUairPHv0IQXvmv0UZVUjg8wKcx0EN4DA+xErjBpa925RBFQilflEpeupKTIhh7nEtk8WpfeLBUpKZA1/kQ04sfhExGkMYNu5APQPStxUNzHXEQqgrzsFoCjUb/1hUgjKmAk6V4zY5uzUaLqdru1avzr+H91ZzTyKRcQ5OlbPw8s+KehMbMoWd7eijZ5VYWDOox+4vvcCXfQr/w3x1knu3J66JVzVQDez0qgV7X6zT2JyFX2sqU7qwUglHJc+rZQ1+C+iHDKmIfQgnZYCHE8ju87ogWrWLHtKcrGRgntL6KjDBAA+jzHvY7CsfIFyu55fktqr5E7ObhZG8cFaBspCnx2RZX8+Fl5x7ybo9bukHczMOe7AeM7z6mA3o95RL0sQ0oQxKoxCSkZpYRExncyJaQ9g5I9JQyRaC5V1qjuJ8KY7WwHcIPEG5keAGYL5/YKRPIdIkwgmfibtk5wxE9jeqlxZoMyCTW1mBp/yT0n/RCw6agceZKYgcFr1Ut18FG8Gi9FNMgUByfJ8tlTNhLNit/LIwWiSHmBAODTgoIa90JaYWTelOx7swVcino4VGvtBy+1my34IhKzyqj7/I0QpArmARv/QuBLHNZnRAbbpJ2Wt9qjxO5RGJ0CFPSo+8uDBGRRoE1KAnlGGg= X-Microsoft-Exchange-Diagnostics: 1; VI1PR0701MB2928; 6:lM42xJty47HJSDEaoq/p0/4z/QqMqFhbkRyVTkE7ZxNH3bW7ixmw6CCDpdRCL0DaGswF3rXBmEkW5GuO7p6CrO+ux986LenNYw1cr8c8YzTMllhXzVgiuXKH14qY/50s+KH7tpLYTW9N2odYLNuaQlKPuT/QXJm0qCgu/VDU5uasbX71Ngb6ugGfgPEWtB54ZmqTLWZS9+doswGxlKLvSW+6vIWQZg+mJETBnZBr4IJAmujhjfNQfIj8TE4zgDbZ9YvuSdXaNNIBjUGjWgi5LVASy2CrlkrnYJQykfmyrmhXyYHZytoaKX3Np9UesFw59dPJPr31586XVqCsm9JRBvfa1YHAtUYO0E76oP7QCT86wWrKPOlds3SHYDABiwUae5vK4kawCvFZ+gL47ZVV8DenNyDnICt3VofW0VY60GI=; 5:MkPwjaqyHorT7EoRcaEZiHtDsf/EDQFyL+QLSQCIZGSBkZKYu0PDXYEKFA507NSdtbAnsiIA5BnyO+NUznZz7JSFc4QhGfgfZmKxr3/Nv+mWe30xoe2QtFN0/y+PMVGCWQUIhP0J1/19NV4x/apmEg==; 24:asySgWO2ugYCgCYo7hST0K529/FHCgoOCvCyWl4M6ijYjT4xJajNYFZEF9PdJNH5SZeGuGyGat2Z6QocLfo1k3dXlEOos/W60OB3ZZx43mk= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; VI1PR0701MB2928; 7:JDrz+PV0aWFV05PYSGT+ifMliNcoOXdDAkGW6Xcsix0WZ+ZZfRmAmm/9aH3MsqI943YBzcikpaW8c73/oIBUvpTIRm8Mhma73RsPqEeb3PM90BXbm7K68jIEgf+WlE1MnaMTtHJwCSLOqunyBLojmRVH2KWgi+ggaKnCXj5QHL0VEs2Cv7RXCI6X4JXe0w8oASRvtS3Or2FoSfw8ugeN5uFcF4Bk+1KRL7A8ajtZk8NfcJbF3S1MCrN4U+urGDWSmrCbOXK0iuKA45RkeLUK9raOEgqf7ktaqdP8WvxdH0SU2nIwlluQVoeyoEHhMSUf9BycX3kyvM8T9G2zsi+E3Q== X-OriginatorOrg: nokia.onmicrosoft.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Mar 2017 14:24:32.5642 (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.37]; Helo=[hybrid2.ext.net.nokia.com] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR0701MB2928 Subject: [lng-odp] [RFC API-NEXT PATCH 1/2] api: ipsec: extend lookaside API 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 SPI range and SA disable. Improved fragment documentation. Signed-off-by: Petri Savolainen --- include/odp/api/spec/event.h | 2 +- include/odp/api/spec/ipsec.h | 43 +++++++++++++++++++++++++++++++++++++++++-- 2 files changed, 42 insertions(+), 3 deletions(-) -- 2.8.1 diff --git a/include/odp/api/spec/event.h b/include/odp/api/spec/event.h index 75c0bbc..f22efce 100644 --- a/include/odp/api/spec/event.h +++ b/include/odp/api/spec/event.h @@ -39,7 +39,7 @@ extern "C" { * @typedef odp_event_type_t * ODP event types: * ODP_EVENT_BUFFER, ODP_EVENT_PACKET, ODP_EVENT_TIMEOUT, - * ODP_EVENT_CRYPTO_COMPL, ODP_EVENT_IPSEC_RESULT + * ODP_EVENT_CRYPTO_COMPL, ODP_EVENT_IPSEC_RESULT, ODP_EVENT_IPSEC_STATUS */ /** diff --git a/include/odp/api/spec/ipsec.h b/include/odp/api/spec/ipsec.h index 66222d8..e57c7df 100644 --- a/include/odp/api/spec/ipsec.h +++ b/include/odp/api/spec/ipsec.h @@ -111,6 +111,21 @@ typedef struct odp_ipsec_config_t { */ odp_ipsec_op_mode_t op_mode; + /** Maximum number of IPSEC SAs that application will use + * simultaneously */ + uint32_t max_num_sa; + + /** Inbound SPI range. Minimal range size may improve performance. */ + struct { + /** Minimum inbound SPI value that application will use. + * Default value is 0. */ + uint32_t min; + + /** Maximum inbound SPI value that application will use. + * Default value is UINT32_MAX. */ + uint32_t max; + } inbound_spi; + } odp_ipsec_config_t; /** @@ -529,6 +544,29 @@ void odp_ipsec_sa_param_init(odp_ipsec_sa_param_t *param); odp_ipsec_sa_t odp_ipsec_sa_create(odp_ipsec_sa_param_t *param); /** + * Disable IPSEC SA + * + * Application must use this call to disable a SA before destroying it. The call + * marks the SA disabled, so that IPSEC implementation stops using it. For + * example, inbound SPI lookups will not match any more. Application must + * stop providing the SA as parameter to new IPSEC input/output operations + * before calling disable. Packets in progress during the call may still match + * the SA and be processed successfully. + * + * When in synchronous operation mode, the call will return when it's possible + * to destroy the SA. In asynchronous mode, the same is indicated by an + * ODP_EVENT_IPSEC_STATUS event sent to the queue specified for the SA. + * + * @param sa IPSEC SA to be disabled + * + * @retval 0 On success + * @retval <0 On failure + * + * @see odp_ipsec_sa_destroy() + */ +int odp_ipsec_sa_disable(odp_ipsec_sa_t sa); + +/** * Destroy IPSEC SA * * Destroy an unused IPSEC SA. Result is undefined if the SA is being used @@ -679,8 +717,9 @@ typedef struct odp_ipsec_packet_result_t { * * Without fragmentation offload this is always one. However, if the * input packet was fragmented during the operation this is larger than - * one for the first fragment and zero for the rest of the fragments - * (following the first one in the 'pkt' array). + * one for the first returned fragment and zero for the rest of the + * fragments. All the fragments (of the same source packet) are stored + * consecutively in the 'pkt' array. */ int num_out;