From patchwork Wed Oct 4 10:15:19 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Github ODP bot X-Patchwork-Id: 114762 Delivered-To: patch@linaro.org Received: by 10.140.22.163 with SMTP id 32csp2932589qgn; Wed, 4 Oct 2017 03:16:41 -0700 (PDT) X-Google-Smtp-Source: AOwi7QBCAx/vFU8U9X0YFZwxMtrEuB2mkebAlqZhsDboYMfPeH+ZAOpLdqCYpaDpA4Pa4ujn4ZAK X-Received: by 10.107.192.133 with SMTP id q127mr1021703iof.236.1507112201315; Wed, 04 Oct 2017 03:16:41 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1507112201; cv=none; d=google.com; s=arc-20160816; b=uEXmz68C3i3T1hlyCcS89dQnPINdnaTY04/C6i2oPfbbDvlr7fCoQWuAYK4RojbY0q Kyj3ALeMi1KiJSkGEDgOLcJ++MXYffCLOCmoQQUaTPkpb5VwG8CcbbZT2DoC8CVu77/W rCSsRgDp1Z9ovsak7n7J5PA0+K2qvn3e4TXOJyOjvYtuL7bommPGWt9VWJy/NBl+eXx7 K3lZ8EHCGnUQajgtZ7NFexsuwBnb+/cklMpA0AwYSkZyF8hueWgiKuVgzm29O4RhzHGR cUVzHoei3I8qN+Bbyk4qoIqKg7OtGaCpoHqATqmGu2CBnFNXsjGEfPgqDYHDUFhe9ewH UBsQ== 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:github-pr-num :references:in-reply-to:message-id:date:to:from:delivered-to :arc-authentication-results; bh=1MeBPHAYEtALdBMJ38+JTWNcINEZeItubQUigx5pkUw=; b=DbaL7GnuH4aF8VL66WwlNXXNAenwxhyoQmPS+WOXysrAul32FcJtwLVkUs345ydVhS nP6gGo/TiRZEOEyrmOwhJmcDofE4YrbGnyVbRVMMXh0QO7uuc7IbKI9FWm1G+6pqb+n8 M9y6+yw2pbSKpAuBLS1GP2KTpzibGhjH+kAPhfcvzAE9tAD6Fz33PEuMlSFnowPFAued Yhv7xQizFqDBvJM4MYScLnl6imCdpFYRGCxmUtsNPod7hD+3Hs/jFcf4E/l0tN4o60Os mDMR6NavtlmXqToHNcWUrisgLjeuNH+ZwOeH28ahDp2RDrZ1aeyomv1jyrxpDLBBwKEh HGPA== 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=fail (p=NONE sp=NONE dis=NONE) header.from=yandex.ru Return-Path: Received: from lists.linaro.org (lists.linaro.org. [54.225.227.206]) by mx.google.com with ESMTP id f27si2697089iod.140.2017.10.04.03.16.41; Wed, 04 Oct 2017 03:16: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=fail (p=NONE sp=NONE dis=NONE) header.from=yandex.ru Received: by lists.linaro.org (Postfix, from userid 109) id 881EA6064C; Wed, 4 Oct 2017 10:16: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=-2.6 required=5.0 tests=BAYES_00,FREEMAIL_FROM, RCVD_IN_DNSWL_LOW 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 839A460D25; Wed, 4 Oct 2017 10:16:10 +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 EE8166446E; Wed, 4 Oct 2017 10:16:05 +0000 (UTC) Received: from forward101o.mail.yandex.net (forward101o.mail.yandex.net [37.140.190.181]) by lists.linaro.org (Postfix) with ESMTPS id C0E7460C18 for ; Wed, 4 Oct 2017 10:16:04 +0000 (UTC) Received: from mxback12j.mail.yandex.net (mxback12j.mail.yandex.net [IPv6:2a02:6b8:0:1619::87]) by forward101o.mail.yandex.net (Yandex) with ESMTP id 759A0134250F for ; Wed, 4 Oct 2017 13:16:02 +0300 (MSK) Received: from smtp2o.mail.yandex.net (smtp2o.mail.yandex.net [2a02:6b8:0:1a2d::26]) by mxback12j.mail.yandex.net (nwsmtp/Yandex) with ESMTP id O1nHPTmkeu-G2BertED; Wed, 04 Oct 2017 13:16:02 +0300 Received: by smtp2o.mail.yandex.net (nwsmtp/Yandex) with ESMTPSA id c2O6MuuA8R-G12etu83; Wed, 04 Oct 2017 13:16:01 +0300 (using TLSv1.2 with cipher ECDHE-RSA-AES128-SHA256 (128/128 bits)) (Client certificate not present) From: Github ODP bot To: lng-odp@lists.linaro.org Date: Wed, 4 Oct 2017 13:15:19 +0300 Message-Id: <1507112121-5582-2-git-send-email-odpbot@yandex.ru> X-Mailer: git-send-email 1.9.1 In-Reply-To: <1507112121-5582-1-git-send-email-odpbot@yandex.ru> References: <1507112121-5582-1-git-send-email-odpbot@yandex.ru> Github-pr-num: 203 Subject: [lng-odp] [PATCH API-NEXT v2 1/3] api: packet_io: add MAC address set function 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" From: Bogdan Pricope Signed-off-by: Bogdan Pricope --- /** Email created from pull request 203 (bogdanPricope:set_mac_pr) ** https://github.com/Linaro/odp/pull/203 ** Patch: https://github.com/Linaro/odp/pull/203.patch ** Base sha: 75cfc6f70d5b21d6f04082e1d03a7e677a895280 ** Merge commit sha: 1cf7eb2d5d71448e98637841d937b64dd8ed85f8 **/ include/odp/api/spec/packet_io.h | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/include/odp/api/spec/packet_io.h b/include/odp/api/spec/packet_io.h index b56a5205d..4ce108592 100644 --- a/include/odp/api/spec/packet_io.h +++ b/include/odp/api/spec/packet_io.h @@ -482,6 +482,8 @@ typedef union odp_pktio_set_op_t { struct { /** Promiscuous mode */ uint32_t promisc_mode : 1; + /** MAC address */ + uint32_t mac_addr : 1; } op; /** All bits of the bit field structure. * This field can be used to set/clear all flags, or bitwise @@ -979,6 +981,20 @@ int odp_pktio_promisc_mode(odp_pktio_t pktio); int odp_pktio_mac_addr(odp_pktio_t pktio, void *mac_addr, int size); /** + * Set the default MAC address of a packet IO interface. + * + * @param pktio Packet IO handle + * @param[in] mac_addr Input buffer containing MAC address + * @param[in] size Size of the MAC address contained in + * input buffer + * + * @return 0 on success + * @retval <0 on failure + */ +int odp_pktio_mac_addr_set(odp_pktio_t pktio, const void *mac_addr, + int size); + +/** * Setup per-port default class-of-service. * * @param[in] pktio Ingress port pktio handle. From patchwork Wed Oct 4 10:15:20 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Github ODP bot X-Patchwork-Id: 114764 Delivered-To: patch@linaro.org Received: by 10.140.22.163 with SMTP id 32csp2933736qgn; Wed, 4 Oct 2017 03:17:51 -0700 (PDT) X-Google-Smtp-Source: AOwi7QAOd0av8tFP91fqm/jEQSfON91JsRdGfu1mdy4PmHSrnDu9tx9x9aVtGoXzVVsgT4PVFXKT X-Received: by 10.237.63.82 with SMTP id q18mr28313141qtf.274.1507112270917; Wed, 04 Oct 2017 03:17:50 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1507112270; cv=none; d=google.com; s=arc-20160816; b=aMHsW6KkXnFhljS3n+SJA6YO/lrZb1Wq73gpEjz+bpIJq5FLXfpROzq+mlSzBpnEmg 0RORCv5/qLENgDQrijrce7oyS9062gtSmnpAa2g4eifhKDCD3EO1lYHdTJuHUF2FB44c eI/QlNtuo2U2OrgspT6nUacZom548Zf66FBmj/XRg9w9AQKYQfL8aoD0EOgy0UHGVFZt KNTxxVE1HFmIHqUrpe2D6Se8iEEwBr3q9YaccdulK4FU0BfP9QfYnOLfhb5p7do+c8CP 7dz+zV4e/Ppl/R6Ghp0TbY5xWdrbdMi4eEMRtVS56bzDFVly6XUcD3XkQsdO8r5cWtDH VMeg== 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:github-pr-num :references:in-reply-to:message-id:date:to:from:delivered-to :arc-authentication-results; bh=6N43lGOz1PIHxm7RPZv8FNSIyK8xUYk0S4cdXOap+sw=; b=G7xv6Kd9EW1RoSJL6FKg+QBX5vu/KLpavebamlasPiLyWue7Yl9N4Hv/JBMPtWGxUX KJda6KIDTXZjQrrX5Io5dN1mpnwptRwzFOo0TMYzbt9fEknefaeCG2IG78xXqaQlfNjF 1uaEDyKU70MsrTzLrD8EPIifbFXx0WbEZampSHblLJAH24eOtlkXOLR+rQkKPCF2jSs7 XWhHNoAYhgfFmerj7lwTE2DgtygVZXxzoKbety0HhT7wXcN3BdVhSLkhkzkjtzimITzY XUslpeTgNB7/7QTcbug82SZlh+vsY+0UX1fETSA0xcDPEiGLf0S9ysR7lh1equRMKskg oJVw== 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=fail (p=NONE sp=NONE dis=NONE) header.from=yandex.ru Return-Path: Received: from lists.linaro.org (lists.linaro.org. [54.225.227.206]) by mx.google.com with ESMTP id i4si3623182qki.35.2017.10.04.03.17.50; Wed, 04 Oct 2017 03:17:50 -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=fail (p=NONE sp=NONE dis=NONE) header.from=yandex.ru Received: by lists.linaro.org (Postfix, from userid 109) id 8D50D64476; Wed, 4 Oct 2017 10:17:50 +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=-2.6 required=5.0 tests=BAYES_00,FREEMAIL_FROM, RCVD_IN_DNSWL_LOW 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 34C4464492; Wed, 4 Oct 2017 10:16:17 +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 C22EF609EA; Wed, 4 Oct 2017 10:16:08 +0000 (UTC) Received: from forward106p.mail.yandex.net (forward106p.mail.yandex.net [77.88.28.109]) by lists.linaro.org (Postfix) with ESMTPS id B091F60845 for ; Wed, 4 Oct 2017 10:16:04 +0000 (UTC) Received: from mxback3o.mail.yandex.net (mxback3o.mail.yandex.net [IPv6:2a02:6b8:0:1a2d::1d]) by forward106p.mail.yandex.net (Yandex) with ESMTP id 6B4132D819CB for ; Wed, 4 Oct 2017 13:16:03 +0300 (MSK) Received: from smtp2o.mail.yandex.net (smtp2o.mail.yandex.net [2a02:6b8:0:1a2d::26]) by mxback3o.mail.yandex.net (nwsmtp/Yandex) with ESMTP id iNFGlWzJVN-G36iMFjl; Wed, 04 Oct 2017 13:16:03 +0300 Received: by smtp2o.mail.yandex.net (nwsmtp/Yandex) with ESMTPSA id c2O6MuuA8R-G22SWikM; Wed, 04 Oct 2017 13:16:02 +0300 (using TLSv1.2 with cipher ECDHE-RSA-AES128-SHA256 (128/128 bits)) (Client certificate not present) From: Github ODP bot To: lng-odp@lists.linaro.org Date: Wed, 4 Oct 2017 13:15:20 +0300 Message-Id: <1507112121-5582-3-git-send-email-odpbot@yandex.ru> X-Mailer: git-send-email 1.9.1 In-Reply-To: <1507112121-5582-1-git-send-email-odpbot@yandex.ru> References: <1507112121-5582-1-git-send-email-odpbot@yandex.ru> Github-pr-num: 203 Subject: [lng-odp] [PATCH API-NEXT v2 2/3] linux-gen: pktio: implement MAC address set function 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" From: Bogdan Pricope Signed-off-by: Bogdan Pricope --- /** Email created from pull request 203 (bogdanPricope:set_mac_pr) ** https://github.com/Linaro/odp/pull/203 ** Patch: https://github.com/Linaro/odp/pull/203.patch ** Base sha: 75cfc6f70d5b21d6f04082e1d03a7e677a895280 ** Merge commit sha: 1cf7eb2d5d71448e98637841d937b64dd8ed85f8 **/ .../linux-generic/include/odp_packet_io_internal.h | 1 + platform/linux-generic/odp_packet_io.c | 36 ++++++++++++++++++++++ platform/linux-generic/pktio/dpdk.c | 1 + platform/linux-generic/pktio/ipc.c | 1 + platform/linux-generic/pktio/loop.c | 1 + platform/linux-generic/pktio/netmap.c | 1 + platform/linux-generic/pktio/pcap.c | 1 + platform/linux-generic/pktio/socket.c | 1 + platform/linux-generic/pktio/socket_mmap.c | 1 + platform/linux-generic/pktio/tap.c | 1 + 10 files changed, 45 insertions(+) diff --git a/platform/linux-generic/include/odp_packet_io_internal.h b/platform/linux-generic/include/odp_packet_io_internal.h index 1a4e345f5..41a1be108 100644 --- a/platform/linux-generic/include/odp_packet_io_internal.h +++ b/platform/linux-generic/include/odp_packet_io_internal.h @@ -210,6 +210,7 @@ typedef struct pktio_if_ops { int (*promisc_mode_set)(pktio_entry_t *pktio_entry, int enable); int (*promisc_mode_get)(pktio_entry_t *pktio_entry); int (*mac_get)(pktio_entry_t *pktio_entry, void *mac_addr); + int (*mac_set)(pktio_entry_t *pktio_entry, const void *mac_addr); int (*link_status)(pktio_entry_t *pktio_entry); int (*capability)(pktio_entry_t *pktio_entry, odp_pktio_capability_t *capa); diff --git a/platform/linux-generic/odp_packet_io.c b/platform/linux-generic/odp_packet_io.c index 64ec1f670..f81eb792f 100644 --- a/platform/linux-generic/odp_packet_io.c +++ b/platform/linux-generic/odp_packet_io.c @@ -895,6 +895,42 @@ int odp_pktio_mac_addr(odp_pktio_t hdl, void *mac_addr, int addr_size) return ret; } +int odp_pktio_mac_addr_set(odp_pktio_t hdl, const void *mac_addr, int addr_size) +{ + pktio_entry_t *entry; + int ret = -1; + + if (addr_size < ETH_ALEN) { + /* Input buffer too small */ + return -1; + } + + entry = get_pktio_entry(hdl); + if (entry == NULL) { + ODP_DBG("pktio entry %d does not exist\n", hdl); + return -1; + } + + lock_entry(entry); + + if (odp_unlikely(is_free(entry))) { + unlock_entry(entry); + ODP_DBG("already freed pktio\n"); + return -1; + } + + if (entry->s.state == PKTIO_STATE_STARTED) { + unlock_entry(entry); + return -1; + } + + if (entry->s.ops->mac_set) + ret = entry->s.ops->mac_set(entry, mac_addr); + + unlock_entry(entry); + return ret; +} + int odp_pktio_link_status(odp_pktio_t hdl) { pktio_entry_t *entry; diff --git a/platform/linux-generic/pktio/dpdk.c b/platform/linux-generic/pktio/dpdk.c index 26ca0d6b4..45153af82 100644 --- a/platform/linux-generic/pktio/dpdk.c +++ b/platform/linux-generic/pktio/dpdk.c @@ -1542,6 +1542,7 @@ const pktio_if_ops_t dpdk_pktio_ops = { .promisc_mode_set = dpdk_promisc_mode_set, .promisc_mode_get = dpdk_promisc_mode_get, .mac_get = dpdk_mac_addr_get, + .mac_set = NULL, .capability = dpdk_capability, .pktin_ts_res = NULL, .pktin_ts_from_ns = NULL, diff --git a/platform/linux-generic/pktio/ipc.c b/platform/linux-generic/pktio/ipc.c index a7f346ae5..c8880ae93 100644 --- a/platform/linux-generic/pktio/ipc.c +++ b/platform/linux-generic/pktio/ipc.c @@ -790,6 +790,7 @@ const pktio_if_ops_t ipc_pktio_ops = { .promisc_mode_set = NULL, .promisc_mode_get = NULL, .mac_get = ipc_mac_addr_get, + .mac_set = NULL, .pktin_ts_res = NULL, .pktin_ts_from_ns = NULL, .config = NULL diff --git a/platform/linux-generic/pktio/loop.c b/platform/linux-generic/pktio/loop.c index 428b6cebd..eba6d3b03 100644 --- a/platform/linux-generic/pktio/loop.c +++ b/platform/linux-generic/pktio/loop.c @@ -265,6 +265,7 @@ const pktio_if_ops_t loopback_pktio_ops = { .promisc_mode_set = loopback_promisc_mode_set, .promisc_mode_get = loopback_promisc_mode_get, .mac_get = loopback_mac_addr_get, + .mac_set = NULL, .link_status = loopback_link_status, .capability = loopback_capability, .pktin_ts_res = NULL, diff --git a/platform/linux-generic/pktio/netmap.c b/platform/linux-generic/pktio/netmap.c index 4d771fcb4..9ee412f0a 100644 --- a/platform/linux-generic/pktio/netmap.c +++ b/platform/linux-generic/pktio/netmap.c @@ -962,6 +962,7 @@ const pktio_if_ops_t netmap_pktio_ops = { .promisc_mode_set = netmap_promisc_mode_set, .promisc_mode_get = netmap_promisc_mode_get, .mac_get = netmap_mac_addr_get, + .mac_set = NULL, .capability = netmap_capability, .pktin_ts_res = NULL, .pktin_ts_from_ns = NULL, diff --git a/platform/linux-generic/pktio/pcap.c b/platform/linux-generic/pktio/pcap.c index 783b85a9c..596bf6f28 100644 --- a/platform/linux-generic/pktio/pcap.c +++ b/platform/linux-generic/pktio/pcap.c @@ -440,6 +440,7 @@ const pktio_if_ops_t pcap_pktio_ops = { .promisc_mode_set = pcapif_promisc_mode_set, .promisc_mode_get = pcapif_promisc_mode_get, .mac_get = pcapif_mac_addr_get, + .mac_set = NULL, .capability = pcapif_capability, .pktin_ts_res = NULL, .pktin_ts_from_ns = NULL, diff --git a/platform/linux-generic/pktio/socket.c b/platform/linux-generic/pktio/socket.c index 5841e2448..0a80035f5 100644 --- a/platform/linux-generic/pktio/socket.c +++ b/platform/linux-generic/pktio/socket.c @@ -873,6 +873,7 @@ const pktio_if_ops_t sock_mmsg_pktio_ops = { .promisc_mode_set = sock_promisc_mode_set, .promisc_mode_get = sock_promisc_mode_get, .mac_get = sock_mac_addr_get, + .mac_set = NULL, .link_status = sock_link_status, .capability = sock_capability, .pktin_ts_res = NULL, diff --git a/platform/linux-generic/pktio/socket_mmap.c b/platform/linux-generic/pktio/socket_mmap.c index f71180238..67c5b2067 100644 --- a/platform/linux-generic/pktio/socket_mmap.c +++ b/platform/linux-generic/pktio/socket_mmap.c @@ -730,6 +730,7 @@ const pktio_if_ops_t sock_mmap_pktio_ops = { .promisc_mode_set = sock_mmap_promisc_mode_set, .promisc_mode_get = sock_mmap_promisc_mode_get, .mac_get = sock_mmap_mac_addr_get, + .mac_set = NULL, .link_status = sock_mmap_link_status, .capability = sock_mmap_capability, .pktin_ts_res = NULL, diff --git a/platform/linux-generic/pktio/tap.c b/platform/linux-generic/pktio/tap.c index 917db006e..ed4479445 100644 --- a/platform/linux-generic/pktio/tap.c +++ b/platform/linux-generic/pktio/tap.c @@ -391,6 +391,7 @@ const pktio_if_ops_t tap_pktio_ops = { .promisc_mode_set = tap_promisc_mode_set, .promisc_mode_get = tap_promisc_mode_get, .mac_get = tap_mac_addr_get, + .mac_set = NULL, .capability = tap_capability, .pktin_ts_res = NULL, .pktin_ts_from_ns = NULL, From patchwork Wed Oct 4 10:15:21 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Github ODP bot X-Patchwork-Id: 114763 Delivered-To: patch@linaro.org Received: by 10.140.22.163 with SMTP id 32csp2933194qgn; Wed, 4 Oct 2017 03:17:16 -0700 (PDT) X-Google-Smtp-Source: AOwi7QAkHKjZ0b52Z/yurjq0/08ZKKa85umarnxXLKKyDT+UIqnoS0VMU4x0GnmiJ+0L/AxRidq8 X-Received: by 10.55.212.219 with SMTP id s88mr1207792qks.188.1507112236830; Wed, 04 Oct 2017 03:17:16 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1507112236; cv=none; d=google.com; s=arc-20160816; b=fOiXGFs+xx5Q+xagqixC9jaJGSyoH7M/nATVtQ/FgGfiuUmxNegfXNG8/FOU6ba5Qy OzEuk/k9nzlE9vPpJYFv4bV+w+Fk2YEt6aeiL9Jp8DFLjcFV9GmAsVYdRndh9DI55wNE 9znO3omSjMCxdTtS6RddYSHdiFsUF0/VGmEiK/PyQ/5XnDFVFtoQQ4SUhzDnWlED7UNA 4mxgcq/l3WdYUlEV0w/E4pMcKVaRYgAScyI8UyRLegYnM1p/+pBMMInhj66VgdIiQ8zq 6NnthSsuN1qttsSskTaSzhxi0hx1+d1g75NZhJb9HFFFfxqHKc8wUKkTqKiNhHfpOSSC n2hw== 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:github-pr-num :references:in-reply-to:message-id:date:to:from:delivered-to :arc-authentication-results; bh=XO420uJFiHrj98HTnQkxCa9vIF9APQXKBKXhYnjUnBA=; b=rx0n3xAdviscdEKzobjhb6+qbhiCM2NgJP9Rpa3/bK6cRC5W1SvECHoKwJ0sCTT0dO gfHZZpgeMkbyA2b+vZYRzd82LVyIOB5hZBSpZugchDcGDe+3eAz0CZlXbOiTHdB0gVPF 1sH6Ixpkj2KGkoKwtHA0Qldjj4ElH/VS9+Ua53Sw5/RwTUAFNVZg1ls3yM+ggnjr6ATr S0ixp66vvl6na6RH9dzaNQ0MZM7oljmsitT7QTw/A4E82AgZIxYKf4KoX5LQLdyt35Ho POAdqhla+rUtgg4DzWPEP65R7LPVDkcN2x4rJ2/xmeiSSzXHTfKZiMpWicYioFGb4dZq khIw== 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=fail (p=NONE sp=NONE dis=NONE) header.from=yandex.ru Return-Path: Received: from lists.linaro.org (lists.linaro.org. [54.225.227.206]) by mx.google.com with ESMTP id y140si73337qky.192.2017.10.04.03.17.16; Wed, 04 Oct 2017 03:17:16 -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=fail (p=NONE sp=NONE dis=NONE) header.from=yandex.ru Received: by lists.linaro.org (Postfix, from userid 109) id 5D1B56447C; Wed, 4 Oct 2017 10:17:16 +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=-2.6 required=5.0 tests=BAYES_00,FREEMAIL_FROM, RCVD_IN_DNSWL_LOW 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 D793464475; Wed, 4 Oct 2017 10:16:13 +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 23E1960C18; Wed, 4 Oct 2017 10:16:08 +0000 (UTC) Received: from forward103p.mail.yandex.net (forward103p.mail.yandex.net [77.88.28.106]) by lists.linaro.org (Postfix) with ESMTPS id 4211E60C2B for ; Wed, 4 Oct 2017 10:16:05 +0000 (UTC) Received: from mxback9g.mail.yandex.net (mxback9g.mail.yandex.net [IPv6:2a02:6b8:0:1472:2741:0:8b7:170]) by forward103p.mail.yandex.net (Yandex) with ESMTP id ED1D221826CC for ; Wed, 4 Oct 2017 13:16:03 +0300 (MSK) Received: from smtp2o.mail.yandex.net (smtp2o.mail.yandex.net [2a02:6b8:0:1a2d::26]) by mxback9g.mail.yandex.net (nwsmtp/Yandex) with ESMTP id eaCXLivURb-G3DulIN7; Wed, 04 Oct 2017 13:16:03 +0300 Received: by smtp2o.mail.yandex.net (nwsmtp/Yandex) with ESMTPSA id c2O6MuuA8R-G32mSZvU; Wed, 04 Oct 2017 13:16:03 +0300 (using TLSv1.2 with cipher ECDHE-RSA-AES128-SHA256 (128/128 bits)) (Client certificate not present) From: Github ODP bot To: lng-odp@lists.linaro.org Date: Wed, 4 Oct 2017 13:15:21 +0300 Message-Id: <1507112121-5582-4-git-send-email-odpbot@yandex.ru> X-Mailer: git-send-email 1.9.1 In-Reply-To: <1507112121-5582-1-git-send-email-odpbot@yandex.ru> References: <1507112121-5582-1-git-send-email-odpbot@yandex.ru> Github-pr-num: 203 Subject: [lng-odp] [PATCH API-NEXT v2 3/3] test: validation: pktio: validate MAC address set function 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" From: Bogdan Pricope Signed-off-by: Bogdan Pricope --- /** Email created from pull request 203 (bogdanPricope:set_mac_pr) ** https://github.com/Linaro/odp/pull/203 ** Patch: https://github.com/Linaro/odp/pull/203.patch ** Base sha: 75cfc6f70d5b21d6f04082e1d03a7e677a895280 ** Merge commit sha: 1cf7eb2d5d71448e98637841d937b64dd8ed85f8 **/ test/common_plat/validation/api/pktio/pktio.c | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/test/common_plat/validation/api/pktio/pktio.c b/test/common_plat/validation/api/pktio/pktio.c index 6a085729b..e9f4a2aa2 100644 --- a/test/common_plat/validation/api/pktio/pktio.c +++ b/test/common_plat/validation/api/pktio/pktio.c @@ -1065,9 +1065,12 @@ void pktio_test_promisc(void) void pktio_test_mac(void) { unsigned char mac_addr[ODP_PKTIO_MACADDR_MAXSIZE]; + unsigned char mac_addr_ref[ODP_PKTIO_MACADDR_MAXSIZE] = { + 0xA0, 0xB0, 0xC0, 0xD0, 0xE0, 0xF0}; int mac_len; int ret; odp_pktio_t pktio; + odp_pktio_capability_t capa; pktio = create_pktio(0, ODP_PKTIN_MODE_SCHED, ODP_PKTOUT_MODE_DIRECT); @@ -1088,6 +1091,27 @@ void pktio_test_mac(void) mac_len = odp_pktio_mac_addr(pktio, mac_addr, 2); CU_ASSERT(mac_len < 0); + CU_ASSERT_FATAL(odp_pktio_capability(pktio, &capa) == 0); + if (!capa.set_op.op.mac_addr) { + printf("\n mac address set not supported for %s!\n", + iface_name[0]); + ret = odp_pktio_close(pktio); + CU_ASSERT(ret == 0); + return; + } + + /* Fail case: wrong addr_size. Expected <0. */ + ret = odp_pktio_mac_addr_set(pktio, mac_addr_ref, 2); + CU_ASSERT_FATAL(ret < 0); + + ret = odp_pktio_mac_addr_set(pktio, mac_addr_ref, ODPH_ETHADDR_LEN); + CU_ASSERT_FATAL(ret == 0); + + mac_len = odp_pktio_mac_addr(pktio, mac_addr, ODPH_ETHADDR_LEN); + CU_ASSERT(ODPH_ETHADDR_LEN == mac_len); + + CU_ASSERT(odp_memcmp(mac_addr_ref, mac_addr, ODPH_ETHADDR_LEN) == 0); + ret = odp_pktio_close(pktio); CU_ASSERT(0 == ret); }