Test-Label: iol-testing Test-Status: WARNING http://dpdk.org/patch/110017 _apply patch failure_ Submitter: Cristian Dumitrescu Date: Thursday, April 21 2022 15:59:51 Applied on: CommitID:76076342ec8ef108a155938d46a88bb493fae60e Apply patch set 110017-110019 failed: Checking patch lib/pipeline/rte_swx_ctl.h... Hunk #1 succeeded at 623 (offset -6 lines). Checking patch lib/pipeline/rte_swx_pipeline.c... Hunk #1 succeeded at 2392 (offset -191 lines). Hunk #2 succeeded at 2440 (offset -191 lines). Hunk #3 succeeded at 5903 (offset -215 lines). Hunk #4 succeeded at 6896 (offset -218 lines). Hunk #5 succeeded at 8290 (offset -332 lines). Hunk #6 succeeded at 8361 (offset -332 lines). Hunk #7 succeeded at 8433 (offset -347 lines). Hunk #8 succeeded at 8468 (offset -347 lines). Hunk #9 succeeded at 8523 (offset -347 lines). Hunk #10 succeeded at 9905 (offset -355 lines). Hunk #11 succeeded at 10295 (offset -379 lines). Hunk #12 succeeded at 10867 (offset -433 lines). Hunk #13 succeeded at 11195 (offset -436 lines). Hunk #14 succeeded at 11415 (offset -439 lines). Checking patch lib/pipeline/rte_swx_pipeline.h... Hunk #1 succeeded at 754 (offset -32 lines). Hunk #2 succeeded at 770 (offset -32 lines). Checking patch lib/pipeline/rte_swx_pipeline_internal.h... Hunk #1 succeeded at 449 (offset -27 lines). Hunk #2 succeeded at 588 (offset -27 lines). Hunk #3 succeeded at 828 (offset -28 lines). Hunk #4 succeeded at 843 (offset -28 lines). Hunk #5 succeeded at 2048 (offset -162 lines). Hunk #6 succeeded at 2063 (offset -162 lines). Hunk #7 succeeded at 2074 (offset -162 lines). Checking patch lib/pipeline/rte_swx_pipeline_spec.c... Hunk #1 succeeded at 22 (offset -7 lines). error: while searching for: * } * default_action ACTION_NAME args none | ARG0_NAME ARG0_VALUE ... [ const ] * size SIZE * timeout TIMEOUT_IN_SECONDS * } */ struct learner_spec { char *name; struct rte_swx_pipeline_learner_params params; uint32_t size; uint32_t timeout; }; static void error: patch failed: lib/pipeline/rte_swx_pipeline_spec.c:1395 Hunk #3 succeeded at 1388 (offset -74 lines). error: while searching for: return status; } static int learner_statement_parse(struct learner_spec *s, uint32_t *block_mask, error: patch failed: lib/pipeline/rte_swx_pipeline_spec.c:1719 Hunk #5 succeeded at 1626 (offset -251 lines). Hunk #6 succeeded at 1715 (offset -224 lines). Hunk #7 succeeded at 2232 (offset -224 lines). Applied patch lib/pipeline/rte_swx_ctl.h cleanly. Applied patch lib/pipeline/rte_swx_pipeline.c cleanly. Applied patch lib/pipeline/rte_swx_pipeline.h cleanly. Applied patch lib/pipeline/rte_swx_pipeline_internal.h cleanly. Applying patch lib/pipeline/rte_swx_pipeline_spec.c with 2 rejects... Hunk #1 applied cleanly. Rejected hunk #2. Hunk #3 applied cleanly. Rejected hunk #4. Hunk #5 applied cleanly. Hunk #6 applied cleanly. Hunk #7 applied cleanly. diff a/lib/pipeline/rte_swx_pipeline_spec.c b/lib/pipeline/rte_swx_pipeline_spec.c (rejected hunks) @@ -1395,14 +1396,18 @@ selector_block_parse(struct selector_spec *s, * } * default_action ACTION_NAME args none | ARG0_NAME ARG0_VALUE ... [ const ] * size SIZE - * timeout TIMEOUT_IN_SECONDS + * timeout { + * TIMEOUT_IN_SECONDS + * ... + * } * } */ struct learner_spec { char *name; struct rte_swx_pipeline_learner_params params; uint32_t size; - uint32_t timeout; + uint32_t *timeout; + uint32_t n_timeouts; }; static void @@ -1719,6 +1727,95 @@ learner_default_action_statement_parse(struct learner_spec *s, return status; } +static int +learner_timeout_statement_parse(uint32_t *block_mask, + char **tokens, + uint32_t n_tokens, + uint32_t n_lines, + uint32_t *err_line, + const char **err_msg) +{ + /* Check format. */ + if ((n_tokens != 2) || strcmp(tokens[1], "{")) { + if (err_line) + *err_line = n_lines; + if (err_msg) + *err_msg = "Invalid timeout statement."; + return -EINVAL; + } + + /* block_mask. */ + *block_mask |= 1 << LEARNER_TIMEOUT_BLOCK; + + return 0; +} + +static int +learner_timeout_block_parse(struct learner_spec *s, + uint32_t *block_mask, + char **tokens, + uint32_t n_tokens, + uint32_t n_lines, + uint32_t *err_line, + const char **err_msg) +{ + uint32_t *new_timeout = NULL; + char *str; + uint32_t val; + int status = 0; + + /* Handle end of block. */ + if ((n_tokens == 1) && !strcmp(tokens[0], "}")) { + *block_mask &= ~(1 << LEARNER_TIMEOUT_BLOCK); + return 0; + } + + /* Check input arguments. */ + if (n_tokens != 1) { + status = -EINVAL; + goto error; + } + + str = tokens[0]; + val = strtoul(str, &str, 0); + if (str[0]) { + status = -EINVAL; + goto error; + } + + new_timeout = realloc(s->timeout, (s->n_timeouts + 1) * sizeof(uint32_t)); + if (!new_timeout) { + status = -ENOMEM; + goto error; + } + + s->timeout = new_timeout; + s->timeout[s->n_timeouts] = val; + s->n_timeouts++; + + return 0; + +error: + free(new_timeout); + + if (err_line) + *err_line = n_lines; + + if (err_msg) + switch (status) { + case -ENOMEM: + *err_msg = "Memory allocation failed."; + break; + + default: + *err_msg = "Invalid timeout value statement."; + break; + } + + return status; +} + + static int learner_statement_parse(struct learner_spec *s, uint32_t *block_mask, https://lab.dpdk.org/results/dashboard/patchsets/21869/ UNH-IOL DPDK Community Lab