From patchwork Fri Apr 14 16:28:34 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Dmitry Eremin-Solenikov X-Patchwork-Id: 97438 Delivered-To: patch@linaro.org Received: by 10.140.109.52 with SMTP id k49csp361699qgf; Fri, 14 Apr 2017 09:28:44 -0700 (PDT) X-Received: by 10.55.146.135 with SMTP id u129mr6050632qkd.124.1492187324838; Fri, 14 Apr 2017 09:28:44 -0700 (PDT) Return-Path: Received: from lists.linaro.org (lists.linaro.org. [54.225.227.206]) by mx.google.com with ESMTP id 91si2235775qku.165.2017.04.14.09.28.44; Fri, 14 Apr 2017 09:28:44 -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 D9B5962E3C; Fri, 14 Apr 2017 16:28:43 +0000 (UTC) Received: from [127.0.0.1] (localhost [127.0.0.1]) by lists.linaro.org (Postfix) with ESMTP id BCF1862E36; Fri, 14 Apr 2017 16:28:41 +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 C569E62E38; Fri, 14 Apr 2017 16:28:40 +0000 (UTC) Received: from mail-lf0-f43.google.com (mail-lf0-f43.google.com [209.85.215.43]) by lists.linaro.org (Postfix) with ESMTPS id 82D5D62D01 for ; Fri, 14 Apr 2017 16:28:38 +0000 (UTC) Received: by mail-lf0-f43.google.com with SMTP id 75so43903584lfs.2 for ; Fri, 14 Apr 2017 09:28:38 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id; bh=cbj6YCd09QMCAayWJvO1YbGx/8qvacHZNF+WpQT5ABI=; b=sncppSoWI8djrAhze3UNxln6WbiWoQI0cwuzsK8BmAkL2m3dhLq4j1tl9jVti+F2C9 vT05uAo/SpgXsEMaHiAFlUFFnpPB7lZNruDftOkWPFpsIdzKz5W+0ZmVHTiUwSChpnK3 0ZAuFSVLXAaNRLdcNYiE4fVG6UNIm5IPpm/0B2s55CwPPHvC1a9niIMZZBHZfahvB6d2 Uj41Jz3v1Ry7DmCsr/zDNDewunGBUdHksfclqzyfhGGV1crBr4hL8rSaGmO1V/7u1Kut XmdPSB/jNw6Lo3bgaVJJsk7vZNrhvphddffVdihM3PS65ACqrQWpQBhVQOMaSRWYqayc asGg== X-Gm-Message-State: AN3rC/4WpwTU4uW+S+f5XuYm7Rq0za2tyVtMi2yVbwYKbLdjxHMkVHYu eB7pdZU2+bIjUdlWiY3C9x6z X-Received: by 10.25.141.134 with SMTP id p128mr3238539lfd.60.1492187316804; Fri, 14 Apr 2017 09:28:36 -0700 (PDT) Received: from forlindon.lumag.auriga.ru ([94.25.229.88]) by smtp.gmail.com with ESMTPSA id q30sm472939lfa.43.2017.04.14.09.28.35 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 14 Apr 2017 09:28:36 -0700 (PDT) From: Dmitry Eremin-Solenikov To: lng-odp@lists.linaro.org Date: Fri, 14 Apr 2017 19:28:34 +0300 Message-Id: <20170414162834.9320-1-dmitry.ereminsolenikov@linaro.org> X-Mailer: git-send-email 2.11.0 Subject: [lng-odp] [API-NEXT v2] api: feature: factor out definitions for feature support levels 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" Instead of having magic 0-1-2 numbers, let's have the special enum for feature support levels (unsupported/supported/preferred). Signed-off-by: Dmitry Eremin-Solenikov --- include/odp/api/spec/feature.h | 54 ++++++++++++++++++++++++ include/odp/api/spec/ipsec.h | 39 ++++++----------- include/odp_api.h | 1 + platform/linux-generic/include/odp/api/feature.h | 34 +++++++++++++++ 4 files changed, 101 insertions(+), 27 deletions(-) create mode 100644 include/odp/api/spec/feature.h create mode 100644 platform/linux-generic/include/odp/api/feature.h -- 2.11.0 diff --git a/include/odp/api/spec/feature.h b/include/odp/api/spec/feature.h new file mode 100644 index 00000000..80f56d3d --- /dev/null +++ b/include/odp/api/spec/feature.h @@ -0,0 +1,54 @@ +/* Copyright (c) 2017, Linaro Limited + * All rights reserved. + * + * SPDX-License-Identifier: BSD-3-Clause + */ + +/** + * @file + * + * ODP feature API + */ + +#ifndef ODP_API_FEATURE_H_ +#define ODP_API_FEATURE_H_ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/** @defgroup odp_feature ODP feature + * Common API + * @{ + */ + +/** + * ODP feature support + */ +typedef enum odp_feature_t { + /** + * Feature is not supported + */ + ODP_IPSEC_FEATURE_UNSUPPORTED, + /** + * Feature is supported + */ + ODP_IPSEC_FEATURE_SUPPORTED, + /** + * Feature is supported and preferred + */ + ODP_IPSEC_FEATURE_PREFERRED +} odp_feature_t; + + +/** + * @} + */ + +#ifdef __cplusplus +} +#endif + +#include +#endif diff --git a/include/odp/api/spec/ipsec.h b/include/odp/api/spec/ipsec.h index a0ceb11a..e15eb590 100644 --- a/include/odp/api/spec/ipsec.h +++ b/include/odp/api/spec/ipsec.h @@ -19,6 +19,7 @@ extern "C" { #endif #include +#include #include #include @@ -230,38 +231,22 @@ typedef struct odp_ipsec_capability_t { /** Maximum number of IPSEC SAs */ uint32_t max_num_sa; - /** Synchronous IPSEC operation mode (ODP_IPSEC_OP_MODE_SYNC) support - * - * 0: Synchronous mode is not supported - * 1: Synchronous mode is supported - * 2: Synchronous mode is supported and preferred - */ - uint8_t op_mode_sync; + /** Synchronous IPSEC operation mode (ODP_IPSEC_OP_MODE_SYNC) support */ + odp_feature_t op_mode_sync; - /** Asynchronous IPSEC operation mode (ODP_IPSEC_OP_MODE_ASYNC) support - * - * 0: Asynchronous mode is not supported - * 1: Asynchronous mode is supported - * 2: Asynchronous mode is supported and preferred + /** + * Asynchronous IPSEC operation mode (ODP_IPSEC_OP_MODE_ASYNC) support */ - uint8_t op_mode_async; + odp_feature_t op_mode_async; - /** Inline IPSEC operation mode (ODP_IPSEC_OP_MODE_INLINE) support - * - * 0: Inline IPSEC operation is not supported - * 1: Inline IPSEC operation is supported - * 2: Inline IPSEC operation is supported and preferred - */ - uint8_t op_mode_inline; + /** Inline IPSEC operation mode (ODP_IPSEC_OP_MODE_INLINE) support */ + odp_feature_t op_mode_inline; - /** Support of pipelined classification (ODP_IPSEC_PIPELINE_CLS) of - * resulting inbound packets. - * - * 0: Classification of resulting packets is not supported - * 1: Classification of resulting packets is supported - * 2: Classification of resulting packets is supported and preferred + /** + * Support of pipelined classification (ODP_IPSEC_PIPELINE_CLS) of + * resulting inbound packets */ - uint8_t pipeline_cls; + odp_feature_t pipeline_cls; /** Soft expiry limit in seconds support * diff --git a/include/odp_api.h b/include/odp_api.h index 73e5309a..b736fb88 100644 --- a/include/odp_api.h +++ b/include/odp_api.h @@ -57,6 +57,7 @@ extern "C" { #include #include #include +#include #include #ifdef __cplusplus diff --git a/platform/linux-generic/include/odp/api/feature.h b/platform/linux-generic/include/odp/api/feature.h new file mode 100644 index 00000000..d0aa8179 --- /dev/null +++ b/platform/linux-generic/include/odp/api/feature.h @@ -0,0 +1,34 @@ +/* Copyright (c) 2017, Linaro Limited + * All rights reserved. + * + * SPDX-License-Identifier: BSD-3-Clause + */ + +/** + * @file + * + * ODP feature API - platform specific header + */ + +#ifndef ODP_PLAT_FEATURE_H_ +#define ODP_PLAT_FEATURE_H_ + +#ifdef __cplusplus +extern "C" { +#endif + +/** @ingroup odp_feature + * @{ + */ + +/** + * @} + */ + +#include + +#ifdef __cplusplus +} +#endif + +#endif