| 1706 | "pipeline <pipeline_name> learner <learner_name> default <file_name>\n"; |
| 1707 | |
| 1708 | static void |
| 1709 | cmd_pipeline_learner_default(char **tokens, |
| 1710 | uint32_t n_tokens, |
| 1711 | char *out, |
| 1712 | size_t out_size, |
| 1713 | void *obj __rte_unused) |
| 1714 | { |
| 1715 | struct rte_swx_ctl_pipeline *ctl; |
| 1716 | char *pipeline_name, *learner_name, *file_name; |
| 1717 | FILE *file = NULL; |
| 1718 | uint32_t file_line_number = 0; |
| 1719 | int status; |
| 1720 | |
| 1721 | if (n_tokens != 6) { |
| 1722 | snprintf(out, out_size, MSG_ARG_MISMATCH, tokens[0]); |
| 1723 | return; |
| 1724 | } |
| 1725 | |
| 1726 | pipeline_name = tokens[1]; |
| 1727 | ctl = rte_swx_ctl_pipeline_find(pipeline_name); |
| 1728 | if (!ctl) { |
| 1729 | snprintf(out, out_size, MSG_ARG_INVALID, "pipeline_name"); |
| 1730 | return; |
| 1731 | } |
| 1732 | |
| 1733 | learner_name = tokens[3]; |
| 1734 | |
| 1735 | file_name = tokens[5]; |
| 1736 | file = fopen(file_name, "r"); |
| 1737 | if (!file) { |
| 1738 | snprintf(out, out_size, "Cannot open file %s.\n", file_name); |
| 1739 | return; |
| 1740 | } |
| 1741 | |
| 1742 | status = pipeline_learner_default_entry_add(ctl, |
| 1743 | learner_name, |
| 1744 | file, |
| 1745 | &file_line_number); |
| 1746 | if (status) |
| 1747 | snprintf(out, out_size, "Invalid entry in file %s at line %u\n", |
| 1748 | file_name, |
| 1749 | file_line_number); |
| 1750 | |
| 1751 | fclose(file); |
| 1752 | } |
| 1753 | |
| 1754 | static const char cmd_pipeline_commit_help[] = |
| 1755 | "pipeline <pipeline_name> commit\n"; |
no test coverage detected