From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id BF13C425A3 for ; Fri, 15 Sep 2023 11:40:29 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id B9FCC4029E; Fri, 15 Sep 2023 11:40:29 +0200 (CEST) Received: from mail-yw1-f227.google.com (mail-yw1-f227.google.com [209.85.128.227]) by mails.dpdk.org (Postfix) with ESMTP id BE67D4029E for ; Fri, 15 Sep 2023 11:40:27 +0200 (CEST) Received: by mail-yw1-f227.google.com with SMTP id 00721157ae682-59c0d329a8bso4302227b3.1 for ; Fri, 15 Sep 2023 02:40:27 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=iol.unh.edu; s=unh-iol; t=1694770827; x=1695375627; darn=dpdk.org; h=cc:to:from:subject:message-id:date:from:to:cc:subject:date :message-id:reply-to; bh=06RtncX2WQZoys91x2pV+8eX9hgHrq+SNjWpuAxrNOg=; b=aOEAvsRT1e3nll/Bh958otr+Q+Abj4a7QMr0BpvsGl8yjkwcS0b5Ffbm4Nhb/qtJSK AWsSSgI/5Z4I5NzyVMA2H6qTqNtCpDx7oMzLj2erpbclI3lk09iLUdLULvth6e/W/HCb XXU3gv4PeHWD4Cf8AJxYonIVXL59MCA0UFewI= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1694770827; x=1695375627; h=cc:to:from:subject:message-id:date:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=06RtncX2WQZoys91x2pV+8eX9hgHrq+SNjWpuAxrNOg=; b=dYnZexqpEMUTEL8Y3I9KJKoA/vNat4U4OqtAU78jtRsnEz6rtRfmoAIdwsPLGY9rgj ebJRYxb4i0Ry0uePmIW4Adi3NTJMtVyLKE5WFLQAVuqy4SfoP5lYvQLJnOanMyKkqwOs DDyVxjo3NLetLeO9YMG1ayK9nXrEXrGVtn1e9WnIkhY8mzxmKE2eR/3TRTGrATCHmuQr ZlHPqCotZl4YTJxK3IsCWdb5JaT5wR1SUpLnuFUxlfA7uH7WxcXSNZ073VrBkzgRaB7V 9k4qumADE7s62AextCHyezgBmzj9+U5fT4AdLdMrlI1Qel9G6gXZIDa2GKMSk+gJK7dX sK0g== X-Gm-Message-State: AOJu0YyiYjZBTMko7Lbs6VWHdX6/EndraUkZQauurFqozRLXlECgnQTv hNXkmM4O2eEfPRVn7FxzZPlg554P74bskbHeBOryi5wxiYBgDqqHlfDD6QFwQvQrGjq1rqNkpA= = X-Google-Smtp-Source: AGHT+IFKK4Uw68wxSUFROo/D4xK+wAZ9Wehg/clfQ/XqTcvYi4H9jwDMI4csYuo2+TDJmCNn46tGxWQ3GH/S X-Received: by 2002:a0d:d808:0:b0:59b:cff1:a8eb with SMTP id a8-20020a0dd808000000b0059bcff1a8ebmr1109484ywe.34.1694770827171; Fri, 15 Sep 2023 02:40:27 -0700 (PDT) Received: from postal.iol.unh.edu (postal.iol.unh.edu. [2606:4100:3880:1234::84]) by smtp-relay.gmail.com with ESMTPS id q66-20020a0de745000000b005771ba13832sm543771ywe.39.2023.09.15.02.40.27 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Fri, 15 Sep 2023 02:40:27 -0700 (PDT) X-Relaying-Domain: iol.unh.edu Date: Fri, 15 Sep 2023 02:40:27 -0700 (PDT) Message-ID: <6504268b.0d0a0220.47109.e739SMTPIN_ADDED_MISSING@mx.google.com> Received: from [172.21.0.2] (unknown [172.18.0.240]) by postal.iol.unh.edu (Postfix) with ESMTP id 953BA6052471; Fri, 15 Sep 2023 05:40:26 -0400 (EDT) Subject: |WARNING| pw131467-131475 [PATCH] [v5, 9/9] net/cpfl: fix incorrect status calculation From: dpdklab@iol.unh.edu To: test-report@dpdk.org Cc: dpdk-test-reports@iol.unh.edu Content-Type: text/plain X-BeenThere: test-report@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: automatic DPDK test reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: test-report-bounces@dpdk.org Test-Label: iol-testing Test-Status: WARNING http://dpdk.org/patch/131467 _apply patch failure_ Submitter: Zhang, Yuying Date: Friday, September 15 2023 10:00:47 Applied on: CommitID:a4e700a878e7fa2651fd718e61f7228c3277e556 Apply patch set 131467-131475 failed: Checking patch doc/guides/nics/cpfl.rst... error: while searching for: -a BDF,representor=vf[0-3],representor=c1pf1 Driver compilation and testing ------------------------------ Refer to the document :doc:`build_and_test` for details. Features -------- error: patch failed: doc/guides/nics/cpfl.rst:128 Hunk #2 succeeded at 128 (offset -48 lines). Checking patch drivers/net/cpfl/cpfl_ethdev.c... Hunk #1 succeeded at 18 (offset -3 lines). Hunk #2 succeeded at 31 (offset -4 lines). error: while searching for: return 0; } static int cpfl_parse_devargs(struct rte_pci_device *pci_dev, struct cpfl_adapter_ext *adapter, bool first) { error: patch failed: drivers/net/cpfl/cpfl_ethdev.c:1537 error: while searching for: &adapter->base.is_rx_singleq); if (ret != 0) goto fail; fail: rte_kvargs_free(kvlist); return ret; error: patch failed: drivers/net/cpfl/cpfl_ethdev.c:1585 Checking patch drivers/net/cpfl/cpfl_ethdev.h... error: while searching for: #define CPFL_VPORT_LAN_PF 0 #define CPFL_VPORT_LAN_VF 1 /* bit[15:14] type * bit[13] host/accelerator core * bit[12] apf/cpf error: patch failed: drivers/net/cpfl/cpfl_ethdev.h:77 error: while searching for: uint16_t req_vport_nb; uint8_t repr_args_num; struct rte_eth_devargs repr_args[CPFL_REPR_ARG_NUM_MAX]; }; struct p2p_queue_chunks_info { error: patch failed: drivers/net/cpfl/cpfl_ethdev.h:99 error: while searching for: bool func_up; /* If the represented function is up */ }; struct cpfl_adapter_ext { TAILQ_ENTRY(cpfl_adapter_ext) next; struct idpf_adapter base; error: patch failed: drivers/net/cpfl/cpfl_ethdev.h:165 error: while searching for: rte_spinlock_t repr_lock; struct rte_hash *repr_allowlist_hash; }; TAILQ_HEAD(cpfl_adapter_list, cpfl_adapter_ext); error: patch failed: drivers/net/cpfl/cpfl_ethdev.h:185 error: while searching for: #define CPFL_DEV_TO_ITF(dev) \ ((struct cpfl_itf *)((dev)->data->dev_private)) #endif /* _CPFL_ETHDEV_H_ */ error: patch failed: drivers/net/cpfl/cpfl_ethdev.h:211 Checking patch drivers/net/cpfl/cpfl_flow_parser.c... Checking patch drivers/net/cpfl/cpfl_flow_parser.h... Checking patch drivers/net/cpfl/meson.build... Hunk #1 succeeded at 36 (offset -2 lines). Applying patch doc/guides/nics/cpfl.rst with 1 reject... Rejected hunk #1. Hunk #2 applied cleanly. Applying patch drivers/net/cpfl/cpfl_ethdev.c with 2 rejects... Hunk #1 applied cleanly. Hunk #2 applied cleanly. Rejected hunk #3. Rejected hunk #4. Applying patch drivers/net/cpfl/cpfl_ethdev.h with 5 rejects... Rejected hunk #1. Rejected hunk #2. Rejected hunk #3. Rejected hunk #4. Rejected hunk #5. Applied patch drivers/net/cpfl/cpfl_flow_parser.c cleanly. Applied patch drivers/net/cpfl/cpfl_flow_parser.h cleanly. Applied patch drivers/net/cpfl/meson.build cleanly. hint: Use 'git am --show-current-patch' to see the failed patch diff a/doc/guides/nics/cpfl.rst b/doc/guides/nics/cpfl.rst (rejected hunks) @@ -128,12 +128,24 @@ Runtime Configuration -a BDF,representor=vf[0-3],representor=c1pf1 +- ``flow_parser`` (default ``not enabled``) + + The cpfl PMD supports utilizing a JSON config file to translate rte_flow tokens into + low-level hardware resources. + Using the ``devargs`` option ``flow_parser`` the user can specify the path + of a json file, for example:: + + -a ca:00.0,flow_parser="refpkg.json" + + Then the PMD will load json file for device ``ca:00.0``. + The parameter is optional. Driver compilation and testing ------------------------------ Refer to the document :doc:`build_and_test` for details. +The json-c library must be installed to use rte_flow. Features -------- diff a/drivers/net/cpfl/cpfl_ethdev.c b/drivers/net/cpfl/cpfl_ethdev.c (rejected hunks) @@ -1537,6 +1544,24 @@ parse_repr(const char *key __rte_unused, const char *value, void *args) return 0; } +#ifdef CPFL_FLOW_JSON_SUPPORT +static int +parse_file(const char *key, const char *value, void *args) +{ + char *name = args; + + if (strlen(value) > CPFL_FLOW_FILE_LEN - 1) { + PMD_DRV_LOG(ERR, "file path(%s) is too long.", value); + return -1; + } + + PMD_DRV_LOG(DEBUG, "value:\"%s\" for key:\"%s\"", value, key); + strlcpy(name, value, CPFL_FLOW_FILE_LEN); + + return 0; +} +#endif + static int cpfl_parse_devargs(struct rte_pci_device *pci_dev, struct cpfl_adapter_ext *adapter, bool first) { @@ -1585,7 +1610,18 @@ cpfl_parse_devargs(struct rte_pci_device *pci_dev, struct cpfl_adapter_ext *adap &adapter->base.is_rx_singleq); if (ret != 0) goto fail; - +#ifdef CPFL_FLOW_JSON_SUPPORT + if (rte_kvargs_get(kvlist, CPFL_FLOW_PARSER)) { + ret = rte_kvargs_process(kvlist, CPFL_FLOW_PARSER, + &parse_file, cpfl_args->flow_parser); + if (ret) { + PMD_DRV_LOG(ERR, "Failed to parser flow_parser, ret: %d", ret); + goto fail; + } + } else { + cpfl_args->flow_parser[0] = '\0'; + } +#endif fail: rte_kvargs_free(kvlist); return ret; diff a/drivers/net/cpfl/cpfl_ethdev.h b/drivers/net/cpfl/cpfl_ethdev.h (rejected hunks) @@ -77,6 +77,11 @@ #define CPFL_VPORT_LAN_PF 0 #define CPFL_VPORT_LAN_VF 1 +#define CPFL_FLOW_FILE_LEN 100 +#define CPFL_INVALID_HW_ID UINT16_MAX +#define CPFL_META_CHUNK_LENGTH 1024 +#define CPFL_META_LENGTH 32 + /* bit[15:14] type * bit[13] host/accelerator core * bit[12] apf/cpf @@ -99,6 +104,7 @@ struct cpfl_devargs { uint16_t req_vport_nb; uint8_t repr_args_num; struct rte_eth_devargs repr_args[CPFL_REPR_ARG_NUM_MAX]; + char flow_parser[CPFL_FLOW_FILE_LEN]; }; struct p2p_queue_chunks_info { @@ -165,6 +171,20 @@ struct cpfl_repr { bool func_up; /* If the represented function is up */ }; +struct cpfl_metadata_chunk { + int type; + uint8_t data[CPFL_META_CHUNK_LENGTH]; +}; + +/** + * It is driver's responsibility to simlulate a metadata buffer which + * can be used as data source to fill the key of a flow rule. + */ +struct cpfl_metadata { + int length; + struct cpfl_metadata_chunk chunks[CPFL_META_LENGTH]; +}; + struct cpfl_adapter_ext { TAILQ_ENTRY(cpfl_adapter_ext) next; struct idpf_adapter base; @@ -185,6 +205,8 @@ struct cpfl_adapter_ext { rte_spinlock_t repr_lock; struct rte_hash *repr_allowlist_hash; + + struct cpfl_metadata meta; }; TAILQ_HEAD(cpfl_adapter_list, cpfl_adapter_ext); @@ -211,4 +233,58 @@ int cpfl_cc_vport_info_get(struct cpfl_adapter_ext *adapter, #define CPFL_DEV_TO_ITF(dev) \ ((struct cpfl_itf *)((dev)->data->dev_private)) +static inline uint16_t +cpfl_get_port_id(struct cpfl_itf *itf) +{ + if (!itf) + return CPFL_INVALID_HW_ID; + + if (itf->type == CPFL_ITF_TYPE_VPORT) { + struct cpfl_vport *vport = (void *)itf; + + return vport->base.devarg_id; + } + + return CPFL_INVALID_HW_ID; +} + +static inline uint16_t +cpfl_get_vsi_id(struct cpfl_itf *itf) +{ + struct cpfl_adapter_ext *adapter = itf->adapter; + struct cpfl_vport_info *info; + uint32_t vport_id; + int ret; + struct cpfl_vport_id vport_identity; + + if (!itf) + return CPFL_INVALID_HW_ID; + + if (itf->type == CPFL_ITF_TYPE_REPRESENTOR) { + struct cpfl_repr *repr = (void *)itf; + + return repr->vport_info->vport.info.vsi_id; + } else if (itf->type == CPFL_ITF_TYPE_VPORT) { + vport_id = ((struct cpfl_vport *)itf)->base.vport_id; + + vport_identity.func_type = CPCHNL2_FUNC_TYPE_PF; + /* host: CPFL_HOST0_CPF_ID, acc: CPFL_ACC_CPF_ID */ + vport_identity.pf_id = CPFL_ACC_CPF_ID; + vport_identity.vf_id = 0; + vport_identity.vport_id = vport_id; + ret = rte_hash_lookup_data(adapter->vport_map_hash, + &vport_identity, + (void **)&info); + if (ret < 0) { + PMD_DRV_LOG(ERR, "vport id not exist"); + goto err; + } + + return info->vport.info.vsi_id; + } + +err: + return CPFL_INVALID_HW_ID; +} + #endif /* _CPFL_ETHDEV_H_ */ Checking patch drivers/net/cpfl/cpfl_flow_parser.c... error: drivers/net/cpfl/cpfl_flow_parser.c: does not exist in index Checking patch drivers/net/cpfl/cpfl_flow_parser.h... error: drivers/net/cpfl/cpfl_flow_parser.h: does not exist in index hint: Use 'git am --show-current-patch' to see the failed patch Checking patch drivers/net/cpfl/cpfl_ethdev.c... error: drivers/net/cpfl/cpfl_ethdev.c: does not match index Checking patch drivers/net/cpfl/cpfl_ethdev.h... error: while searching for: CPFL_ITF_TYPE_REPRESENTOR, }; struct cpfl_itf { enum cpfl_itf_type type; struct cpfl_adapter_ext *adapter; void *data; }; error: patch failed: drivers/net/cpfl/cpfl_ethdev.h:140 error: while searching for: rte_spinlock_t repr_lock; struct rte_hash *repr_allowlist_hash; struct cpfl_metadata meta; }; error: patch failed: drivers/net/cpfl/cpfl_ethdev.h:206 Checking patch drivers/net/cpfl/cpfl_flow.c... Checking patch drivers/net/cpfl/cpfl_flow.h... Checking patch drivers/net/cpfl/meson.build... error: drivers/net/cpfl/meson.build: does not match index Applying patch drivers/net/cpfl/cpfl_ethdev.h with 2 rejects... Rejected hunk #1. Rejected hunk #2. Applied patch drivers/net/cpfl/cpfl_flow.c cleanly. Applied patch drivers/net/cpfl/cpfl_flow.h cleanly. hint: Use 'git am --show-current-patch' to see the failed patch diff a/drivers/net/cpfl/cpfl_ethdev.h b/drivers/net/cpfl/cpfl_ethdev.h (rejected hunks) @@ -140,9 +140,12 @@ enum cpfl_itf_type { CPFL_ITF_TYPE_REPRESENTOR, }; +TAILQ_HEAD(cpfl_flow_list, rte_flow); + struct cpfl_itf { enum cpfl_itf_type type; struct cpfl_adapter_ext *adapter; + struct cpfl_flow_list flow_list; void *data; }; @@ -206,6 +209,8 @@ struct cpfl_adapter_ext { rte_spinlock_t repr_lock; struct rte_hash *repr_allowlist_hash; + struct cpfl_flow_js_parser *flow_parser; + struct cpfl_metadata meta; }; Checking patch drivers/net/cpfl/cpfl_actions.h... Checking patch drivers/net/cpfl/cpfl_controlq.c... Checking patch drivers/net/cpfl/cpfl_controlq.h... Checking patch drivers/net/cpfl/cpfl_ethdev.c... error: drivers/net/cpfl/cpfl_ethdev.c: does not match index Checking patch drivers/net/cpfl/cpfl_ethdev.h... error: while searching for: #include "cpfl_logs.h" #include "cpfl_cpchnl.h" #include "cpfl_representor.h" /* Currently, backend supports up to 8 vports */ #define CPFL_MAX_VPORT_NUM 8 error: patch failed: drivers/net/cpfl/cpfl_ethdev.h:22 error: while searching for: #define CPFL_META_CHUNK_LENGTH 1024 #define CPFL_META_LENGTH 32 /* bit[15:14] type * bit[13] host/accelerator core * bit[12] apf/cpf error: patch failed: drivers/net/cpfl/cpfl_ethdev.h:82 error: while searching for: struct cpfl_flow_js_parser *flow_parser; struct cpfl_metadata meta; }; TAILQ_HEAD(cpfl_adapter_list, cpfl_adapter_ext); error: patch failed: drivers/net/cpfl/cpfl_ethdev.h:212 error: while searching for: struct cpchnl2_vport_id *vport_id, struct cpfl_vport_id *vi, struct cpchnl2_get_vport_info_response *response); #define CPFL_DEV_TO_PCI(eth_dev) \ RTE_DEV_TO_PCI((eth_dev)->device) error: patch failed: drivers/net/cpfl/cpfl_ethdev.h:226 Checking patch drivers/net/cpfl/cpfl_rules.c... Checking patch drivers/net/cpfl/cpfl_rules.h... Checking patch drivers/net/cpfl/cpfl_vchnl.c... error: drivers/net/cpfl/cpfl_vchnl.c: does not exist in index Checking patch drivers/net/cpfl/meson.build... error: drivers/net/cpfl/meson.build: does not match index Applied patch drivers/net/cpfl/cpfl_actions.h cleanly. Applied patch drivers/net/cpfl/cpfl_controlq.c cleanly. Applied patch drivers/net/cpfl/cpfl_controlq.h cleanly. Applying patch drivers/net/cpfl/cpfl_ethdev.h with 4 rejects... Rejected hunk #1. Rejected hunk #2. Rejected hunk #3. Rejected hunk #4. Applied patch drivers/net/cpfl/cpfl_rules.c cleanly. Applied patch drivers/net/cpfl/cpfl_rules.h cleanly. hint: Use 'git am --show-current-patch' to see the failed patch diff a/drivers/net/cpfl/cpfl_ethdev.h b/drivers/net/cpfl/cpfl_ethdev.h (rejected hunks) @@ -22,6 +22,7 @@ #include "cpfl_logs.h" #include "cpfl_cpchnl.h" #include "cpfl_representor.h" +#include "cpfl_controlq.h" /* Currently, backend supports up to 8 vports */ #define CPFL_MAX_VPORT_NUM 8 @@ -82,6 +83,10 @@ #define CPFL_META_CHUNK_LENGTH 1024 #define CPFL_META_LENGTH 32 +#define CPFL_RX_CFGQ_NUM 4 +#define CPFL_TX_CFGQ_NUM 4 +#define CPFL_CFGQ_NUM 8 + /* bit[15:14] type * bit[13] host/accelerator core * bit[12] apf/cpf @@ -212,6 +217,12 @@ struct cpfl_adapter_ext { struct cpfl_flow_js_parser *flow_parser; struct cpfl_metadata meta; + + /* ctrl vport and ctrl queues. */ + struct cpfl_vport ctrl_vport; + uint8_t ctrl_vport_recv_info[IDPF_DFLT_MBX_BUF_SIZE]; + struct idpf_ctlq_info *ctlqp[CPFL_CFGQ_NUM]; + struct cpfl_ctlq_create_info cfgq_info[CPFL_CFGQ_NUM]; }; TAILQ_HEAD(cpfl_adapter_list, cpfl_adapter_ext); @@ -226,6 +237,9 @@ int cpfl_cc_vport_info_get(struct cpfl_adapter_ext *adapter, struct cpchnl2_vport_id *vport_id, struct cpfl_vport_id *vi, struct cpchnl2_get_vport_info_response *response); +int cpfl_vc_create_ctrl_vport(struct cpfl_adapter_ext *adapter); +int cpfl_config_ctlq_rx(struct cpfl_adapter_ext *adapter); +int cpfl_config_ctlq_tx(struct cpfl_adapter_ext *adapter); #define CPFL_DEV_TO_PCI(eth_dev) \ RTE_DEV_TO_PCI((eth_dev)->device) Checking patch drivers/net/cpfl/cpfl_controlq.c... error: drivers/net/cpfl/cpfl_controlq.c: does not exist in index Checking patch drivers/net/cpfl/cpfl_controlq.h... error: drivers/net/cpfl/cpfl_controlq.h: does not exist in index Checking patch drivers/net/cpfl/cpfl_ethdev.c... error: drivers/net/cpfl/cpfl_ethdev.c: does not match index Checking patch drivers/net/cpfl/cpfl_ethdev.h... error: while searching for: TAILQ_HEAD(cpfl_flow_list, rte_flow); struct cpfl_itf { enum cpfl_itf_type type; struct cpfl_adapter_ext *adapter; struct cpfl_flow_list flow_list; void *data; }; error: patch failed: drivers/net/cpfl/cpfl_ethdev.h:147 error: while searching for: int cpfl_vc_create_ctrl_vport(struct cpfl_adapter_ext *adapter); int cpfl_config_ctlq_rx(struct cpfl_adapter_ext *adapter); int cpfl_config_ctlq_tx(struct cpfl_adapter_ext *adapter); #define CPFL_DEV_TO_PCI(eth_dev) \ RTE_DEV_TO_PCI((eth_dev)->device) error: patch failed: drivers/net/cpfl/cpfl_ethdev.h:240 Checking patch drivers/net/cpfl/cpfl_fxp_rule.c... Checking patch drivers/net/cpfl/cpfl_fxp_rule.h... Checking patch drivers/net/cpfl/meson.build... error: drivers/net/cpfl/meson.build: does not match index Applying patch drivers/net/cpfl/cpfl_ethdev.h with 2 rejects... Rejected hunk #1. Rejected hunk #2. Applied patch drivers/net/cpfl/cpfl_fxp_rule.c cleanly. Applied patch drivers/net/cpfl/cpfl_fxp_rule.h cleanly. hint: Use 'git am --show-current-patch' to see the failed patch diff a/drivers/net/cpfl/cpfl_ethdev.h b/drivers/net/cpfl/cpfl_ethdev.h (rejected hunks) @@ -147,10 +147,14 @@ enum cpfl_itf_type { TAILQ_HEAD(cpfl_flow_list, rte_flow); +#define CPFL_FLOW_BATCH_SIZE 490 struct cpfl_itf { enum cpfl_itf_type type; struct cpfl_adapter_ext *adapter; struct cpfl_flow_list flow_list; + struct idpf_dma_mem flow_dma; + struct idpf_dma_mem dma[CPFL_FLOW_BATCH_SIZE]; + struct idpf_ctlq_msg msg[CPFL_FLOW_BATCH_SIZE]; void *data; }; @@ -240,6 +244,8 @@ int cpfl_cc_vport_info_get(struct cpfl_adapter_ext *adapter, int cpfl_vc_create_ctrl_vport(struct cpfl_adapter_ext *adapter); int cpfl_config_ctlq_rx(struct cpfl_adapter_ext *adapter); int cpfl_config_ctlq_tx(struct cpfl_adapter_ext *adapter); +int cpfl_alloc_dma_mem_batch(struct idpf_dma_mem *orig_dma, struct idpf_dma_mem *dma, + uint32_t size, int batch_size); #define CPFL_DEV_TO_PCI(eth_dev) \ RTE_DEV_TO_PCI((eth_dev)->device) Checking patch drivers/net/cpfl/cpfl_ethdev.h... error: while searching for: #define CPFL_RX_CFGQ_NUM 4 #define CPFL_TX_CFGQ_NUM 4 #define CPFL_CFGQ_NUM 8 /* bit[15:14] type error: patch failed: drivers/net/cpfl/cpfl_ethdev.h:85 error: while searching for: struct rte_hash *repr_allowlist_hash; struct cpfl_flow_js_parser *flow_parser; struct cpfl_metadata meta; error: patch failed: drivers/net/cpfl/cpfl_ethdev.h:219 error: while searching for: return CPFL_INVALID_HW_ID; } #endif /* _CPFL_ETHDEV_H_ */ error: patch failed: drivers/net/cpfl/cpfl_ethdev.h:312 Checking patch drivers/net/cpfl/cpfl_flow_engine_fxp.c... Checking patch drivers/net/cpfl/meson.build... error: drivers/net/cpfl/meson.build: does not match index Applying patch drivers/net/cpfl/cpfl_ethdev.h with 3 rejects... Rejected hunk #1. Rejected hunk #2. Rejected hunk #3. Applied patch drivers/net/cpfl/cpfl_flow_engine_fxp.c cleanly. hint: Use 'git am --show-current-patch' to see the failed patch diff a/drivers/net/cpfl/cpfl_ethdev.h b/drivers/net/cpfl/cpfl_ethdev.h (rejected hunks) @@ -85,6 +85,8 @@ #define CPFL_RX_CFGQ_NUM 4 #define CPFL_TX_CFGQ_NUM 4 +#define CPFL_FPCP_CFGQ_TX 0 +#define CPFL_FPCP_CFGQ_RX 1 #define CPFL_CFGQ_NUM 8 /* bit[15:14] type @@ -219,6 +221,8 @@ struct cpfl_adapter_ext { struct rte_hash *repr_allowlist_hash; struct cpfl_flow_js_parser *flow_parser; + struct rte_bitmap *mod_bm; + void *mod_bm_mem; struct cpfl_metadata meta; @@ -312,4 +316,27 @@ cpfl_get_vsi_id(struct cpfl_itf *itf) return CPFL_INVALID_HW_ID; } +static inline struct cpfl_itf * +cpfl_get_itf_by_port_id(uint16_t port_id) +{ + struct rte_eth_dev *dev; + + if (port_id >= RTE_MAX_ETHPORTS) { + PMD_DRV_LOG(ERR, "port_id should be < %d.", RTE_MAX_ETHPORTS); + return NULL; + } + + dev = &rte_eth_devices[port_id]; + if (dev->state == RTE_ETH_DEV_UNUSED) { + PMD_DRV_LOG(ERR, "eth_dev[%d] is unused.", port_id); + return NULL; + } + + if (!dev->data) { + PMD_DRV_LOG(ERR, "eth_dev[%d] data not be allocated.", port_id); + return NULL; + } + + return CPFL_DEV_TO_ITF(dev); +} #endif /* _CPFL_ETHDEV_H_ */ Checking patch doc/guides/nics/cpfl.rst... error: doc/guides/nics/cpfl.rst: does not match index Checking patch doc/guides/rel_notes/release_23_11.rst... error: while searching for: * **Updated Intel cpfl driver.** * Added support for port representor. Removed Items ------------- error: patch failed: doc/guides/rel_notes/release_23_11.rst:81 Checking patch drivers/net/cpfl/cpfl_flow_engine_fxp.c... error: drivers/net/cpfl/cpfl_flow_engine_fxp.c: does not exist in index Checking patch drivers/net/cpfl/cpfl_representor.c... error: drivers/net/cpfl/cpfl_representor.c: does not exist in index Applying patch doc/guides/rel_notes/release_23_11.rst with 1 reject... Rejected hunk #1. hint: Use 'git am --show-current-patch' to see the failed patch diff a/doc/guides/rel_notes/release_23_11.rst b/doc/guides/rel_notes/release_23_11.rst (rejected hunks) @@ -81,6 +81,7 @@ New Features * **Updated Intel cpfl driver.** * Added support for port representor. + * Added support for rte_flow. Removed Items ------------- Checking patch drivers/net/cpfl/cpfl_ethdev.c... error: drivers/net/cpfl/cpfl_ethdev.c: does not match index hint: Use 'git am --show-current-patch' to see the failed patch https://lab.dpdk.org/results/dashboard/patchsets/27616/ UNH-IOL DPDK Community Lab