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 B18D142529 for ; Wed, 6 Sep 2023 12:46:25 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id B8BC84027C; Wed, 6 Sep 2023 12:46:25 +0200 (CEST) Received: from mail-il1-f226.google.com (mail-il1-f226.google.com [209.85.166.226]) by mails.dpdk.org (Postfix) with ESMTP id D0A0E4027C for ; Wed, 6 Sep 2023 12:46:23 +0200 (CEST) Received: by mail-il1-f226.google.com with SMTP id e9e14a558f8ab-34f27cf1786so5076275ab.2 for ; Wed, 06 Sep 2023 03:46:23 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=iol.unh.edu; s=unh-iol; t=1693997183; x=1694601983; darn=dpdk.org; h=cc:to:from:subject:message-id:date:from:to:cc:subject:date :message-id:reply-to; bh=W44ArAX+O3YHl42lcEVeUv6fBv8J54zAvQimBgW2UZQ=; b=Mu25djXLWry+v9WOjMChhq08LohlqW0+/wlzPv2H+W0dT/aadI+TWnbdVsh3MXIyIP uXwtNxQsSHXOFb3pPkFRCpgIIOquWOBH3EMFD5Vr7Lp43rk83e1k5DuwPBi0dl9OnVGZ Ny7iT0D9coFnxRAJZwt5rVKJutWd0a+DUup68= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1693997183; x=1694601983; h=cc:to:from:subject:message-id:date:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=W44ArAX+O3YHl42lcEVeUv6fBv8J54zAvQimBgW2UZQ=; b=iTcgFKb183Ko1YycUSnBkDxsMJtpGGs01dckW+13rmL4/N3bc0vJXqjCKJZH4nT72F vbZd4O2feXe8xpMVs/ck6+Emvtz7u6S11ERGu7n1Cj9nmQa2n8CWkTWUHN2HtvoQXjll qK961pXlcxvqqprvivzOoLflA6sc4KlkKGVNQR0KxCsHpcXBheM1f0+9gPwO6ufiVHP6 QN88pflOY2kQDTCck/2XnCSgvHL+tofAcS5pD0Kh5aTiF3i3rg+Mi+kJ13PJGvd0R2aq qoqT/HIF77HaEGufZ6H+ubzYcnMoDub+4pZJ1erg4v6Lw66svIeAeixYHZQL5jKs2Z8G UxJQ== X-Gm-Message-State: AOJu0YyM8OP3A0lJEnJOogfxO53J7iEA3Gs/yJaU/damL06AwzJrfb/G 2Jtuq1TMT+mbYOCH1NRbVga1ssUxMYldPFvYr4LzcfLlD9nBi6qW9vjBOs8UDybV0A28SpUg8A= = X-Google-Smtp-Source: AGHT+IGI50+2pwDSsmgJ9dAZ47oj6FcZzR99DGAfVrIlVZovV0S4nzP2zP9lwDP4OGJ1Ts81BVTgh9yCs8Sx X-Received: by 2002:a05:6e02:eec:b0:345:66f5:3404 with SMTP id j12-20020a056e020eec00b0034566f53404mr15958942ilk.0.1693997183200; Wed, 06 Sep 2023 03:46:23 -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 i3-20020a92c943000000b003460ba3a433sm647274ilq.5.2023.09.06.03.46.23 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Wed, 06 Sep 2023 03:46:23 -0700 (PDT) X-Relaying-Domain: iol.unh.edu Date: Wed, 06 Sep 2023 03:46:23 -0700 (PDT) Message-ID: <64f8587f.920a0220.d2be1.eb27SMTPIN_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 B259C6052471; Wed, 6 Sep 2023 06:46:22 -0400 (EDT) Subject: |WARNING| pw131185-131193 [PATCH] [v3, 9/9] app/test-pmd: refine encap content 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/131185 _apply patch failure_ Submitter: Wenjing Qiao Date: Wednesday, September 06 2023 09:34:07 Applied on: CommitID:a05350d45166e15ac040b2bf5f310b66f0dbf7c9 Apply patch set 131185-131193 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 ACC_LCE_ID 15 #define IMC_MBX_EFD_ID 0 struct cpfl_vport_param { struct cpfl_adapter_ext *adapter; uint16_t devarg_id; /* arg id from user */ error: patch failed: drivers/net/cpfl/cpfl_ethdev.h:87 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:100 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 2 rejects... Rejected hunk #1. Rejected hunk #2. 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 PMD supports using a JSON file to parse rte_flow tokens into low level hardware + resources defined in a DDP package file. + + The user can specify the path of 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. +Rte flow need to install json-c library. 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) @@ -87,6 +87,8 @@ #define ACC_LCE_ID 15 #define IMC_MBX_EFD_ID 0 +#define CPFL_FLOW_FILE_LEN 100 + struct cpfl_vport_param { struct cpfl_adapter_ext *adapter; uint16_t devarg_id; /* arg id from user */ @@ -100,6 +102,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 { Checking patch drivers/net/cpfl/cpfl_ethdev.h... error: while searching for: #define CPFL_FLOW_FILE_LEN 100 struct cpfl_vport_param { struct cpfl_adapter_ext *adapter; uint16_t devarg_id; /* arg id from user */ error: patch failed: drivers/net/cpfl/cpfl_ethdev.h:89 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:169 error: while searching for: rte_spinlock_t repr_lock; struct rte_hash *repr_whitelist_hash; }; TAILQ_HEAD(cpfl_adapter_list, cpfl_adapter_ext); error: patch failed: drivers/net/cpfl/cpfl_ethdev.h:189 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:215 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... error: drivers/net/cpfl/meson.build: does not match index 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_flow_parser.c cleanly. Applied patch drivers/net/cpfl/cpfl_flow_parser.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) @@ -89,6 +89,10 @@ #define CPFL_FLOW_FILE_LEN 100 +#define CPFL_INVALID_HW_ID UINT16_MAX +#define CPFL_META_CHUNK_LENGTH 1024 +#define CPFL_META_LENGTH 32 + struct cpfl_vport_param { struct cpfl_adapter_ext *adapter; uint16_t devarg_id; /* arg id from user */ @@ -169,6 +173,16 @@ 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]; +}; + +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; @@ -189,6 +203,8 @@ struct cpfl_adapter_ext { rte_spinlock_t repr_lock; struct rte_hash *repr_whitelist_hash; + + struct cpfl_metadata meta; }; TAILQ_HEAD(cpfl_adapter_list, cpfl_adapter_ext); @@ -215,4 +231,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: HOST0_CPF_ID, acc: ACC_CPF_ID */ + vport_identity.pf_id = 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_actions.h... Checking patch drivers/net/cpfl/cpfl_controlq.c... Checking patch drivers/net/cpfl/cpfl_controlq.h... Checking patch drivers/net/cpfl/cpfl_rules.c... Checking patch drivers/net/cpfl/cpfl_rules.h... 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. 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 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_FLOW_FILE_LEN 100 #define CPFL_INVALID_HW_ID UINT16_MAX #define CPFL_META_CHUNK_LENGTH 1024 #define CPFL_META_LENGTH 32 error: patch failed: drivers/net/cpfl/cpfl_ethdev.h:89 error: while searching for: rte_spinlock_t repr_lock; struct rte_hash *repr_whitelist_hash; struct cpfl_metadata meta; }; TAILQ_HEAD(cpfl_adapter_list, cpfl_adapter_ext); int cpfl_vport_info_create(struct cpfl_adapter_ext *adapter, struct cpfl_vport_id *vport_identity, struct cpchnl2_vport_info *vport_info); error: patch failed: drivers/net/cpfl/cpfl_ethdev.h:204 Checking patch drivers/net/cpfl/cpfl_vchnl.c... error: drivers/net/cpfl/cpfl_vchnl.c: does not exist in index Applying patch drivers/net/cpfl/cpfl_ethdev.h with 3 rejects... Rejected hunk #1. Rejected hunk #2. Rejected hunk #3. 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 @@ -89,6 +90,10 @@ #define CPFL_FLOW_FILE_LEN 100 +#define CPFL_RX_CFGQ_NUM 4 +#define CPFL_TX_CFGQ_NUM 4 +#define CPFL_CFGQ_NUM 8 + #define CPFL_INVALID_HW_ID UINT16_MAX #define CPFL_META_CHUNK_LENGTH 1024 #define CPFL_META_LENGTH 32 @@ -204,11 +209,20 @@ struct cpfl_adapter_ext { rte_spinlock_t repr_lock; struct rte_hash *repr_whitelist_hash; + /* 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]; + struct cpfl_metadata meta; }; TAILQ_HEAD(cpfl_adapter_list, cpfl_adapter_ext); +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_vport_info_create(struct cpfl_adapter_ext *adapter, struct cpfl_vport_id *vport_identity, struct cpchnl2_vport_info *vport_info); 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:147 error: while searching for: rte_spinlock_t repr_lock; struct rte_hash *repr_whitelist_hash; /* ctrl vport and ctrl queues. */ struct cpfl_vport ctrl_vport; uint8_t ctrl_vport_recv_info[IDPF_DFLT_MBX_BUF_SIZE]; error: patch failed: drivers/net/cpfl/cpfl_ethdev.h:209 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) @@ -147,9 +147,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; }; @@ -209,6 +212,8 @@ struct cpfl_adapter_ext { rte_spinlock_t repr_lock; struct rte_hash *repr_whitelist_hash; + struct cpfl_flow_js_parser *flow_parser; + /* ctrl vport and ctrl queues. */ struct cpfl_vport ctrl_vport; uint8_t ctrl_vport_recv_info[IDPF_DFLT_MBX_BUF_SIZE]; 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:149 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:238 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) @@ -149,10 +149,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; }; @@ -238,6 +242,8 @@ 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_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 #define CPFL_INVALID_HW_ID UINT16_MAX error: patch failed: drivers/net/cpfl/cpfl_ethdev.h:92 error: while searching for: struct rte_hash *repr_whitelist_hash; struct cpfl_flow_js_parser *flow_parser; /* ctrl vport and ctrl queues. */ struct cpfl_vport ctrl_vport; error: patch failed: drivers/net/cpfl/cpfl_ethdev.h:217 error: while searching for: return CPFL_INVALID_HW_ID; } #endif /* _CPFL_ETHDEV_H_ */ error: patch failed: drivers/net/cpfl/cpfl_ethdev.h:310 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) @@ -92,6 +92,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 #define CPFL_INVALID_HW_ID UINT16_MAX @@ -217,6 +219,8 @@ struct cpfl_adapter_ext { struct rte_hash *repr_whitelist_hash; struct cpfl_flow_js_parser *flow_parser; + struct rte_bitmap *mod_bm; + void *mod_bm_mem; /* ctrl vport and ctrl queues. */ struct cpfl_vport ctrl_vport; @@ -310,4 +314,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:58 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) @@ -58,6 +58,7 @@ New Features * **Updated Intel cpfl driver.** * Added support for port representor. + * Added support for rte_flow. Removed Items ------------- https://lab.dpdk.org/results/dashboard/patchsets/27533/ UNH-IOL DPDK Community Lab