MCPcopy Create free account
hub / github.com/F-Stack/f-stack / parse_ia

Function parse_ia

dpdk/app/test-pmd/cmdline_flow.c:7781–7841  ·  view source on GitHub ↗

Parse tokens for indirect action commands. */

Source from the content-addressed store, hash-verified

7779
7780/** Parse tokens for indirect action commands. */
7781static int
7782parse_ia(struct context *ctx, const struct token *token,
7783 const char *str, unsigned int len,
7784 void *buf, unsigned int size)
7785{
7786 struct buffer *out = buf;
7787
7788 /* Token name must match. */
7789 if (parse_default(ctx, token, str, len, NULL, 0) < 0)
7790 return -1;
7791 /* Nothing else to do if there is no buffer. */
7792 if (!out)
7793 return len;
7794 if (!out->command) {
7795 if (ctx->curr != INDIRECT_ACTION)
7796 return -1;
7797 if (sizeof(*out) > size)
7798 return -1;
7799 out->command = ctx->curr;
7800 ctx->objdata = 0;
7801 ctx->object = out;
7802 ctx->objmask = NULL;
7803 out->args.vc.data = (uint8_t *)out + size;
7804 return len;
7805 }
7806 switch (ctx->curr) {
7807 case INDIRECT_ACTION_CREATE:
7808 case INDIRECT_ACTION_UPDATE:
7809 case INDIRECT_ACTION_QUERY_UPDATE:
7810 out->args.vc.actions =
7811 (void *)RTE_ALIGN_CEIL((uintptr_t)(out + 1),
7812 sizeof(double));
7813 out->args.vc.attr.group = UINT32_MAX;
7814 /* fallthrough */
7815 case INDIRECT_ACTION_QUERY:
7816 out->command = ctx->curr;
7817 ctx->objdata = 0;
7818 ctx->object = out;
7819 ctx->objmask = NULL;
7820 return len;
7821 case INDIRECT_ACTION_EGRESS:
7822 out->args.vc.attr.egress = 1;
7823 return len;
7824 case INDIRECT_ACTION_INGRESS:
7825 out->args.vc.attr.ingress = 1;
7826 return len;
7827 case INDIRECT_ACTION_TRANSFER:
7828 out->args.vc.attr.transfer = 1;
7829 return len;
7830 case INDIRECT_ACTION_QU_MODE:
7831 return len;
7832 case INDIRECT_ACTION_LIST:
7833 out->command = INDIRECT_ACTION_LIST_CREATE;
7834 return len;
7835 case INDIRECT_ACTION_FLOW_CONF:
7836 out->command = INDIRECT_ACTION_FLOW_CONF_CREATE;
7837 return len;
7838 default:

Callers

nothing calls this directly

Calls 1

parse_defaultFunction · 0.85

Tested by

no test coverage detected