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

Function parse_qia

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

Parse tokens for indirect action commands. */

Source from the content-addressed store, hash-verified

7882
7883/** Parse tokens for indirect action commands. */
7884static int
7885parse_qia(struct context *ctx, const struct token *token,
7886 const char *str, unsigned int len,
7887 void *buf, unsigned int size)
7888{
7889 struct buffer *out = buf;
7890
7891 /* Token name must match. */
7892 if (parse_default(ctx, token, str, len, NULL, 0) < 0)
7893 return -1;
7894 /* Nothing else to do if there is no buffer. */
7895 if (!out)
7896 return len;
7897 if (!out->command) {
7898 if (ctx->curr != QUEUE)
7899 return -1;
7900 if (sizeof(*out) > size)
7901 return -1;
7902 out->args.vc.data = (uint8_t *)out + size;
7903 return len;
7904 }
7905 switch (ctx->curr) {
7906 case QUEUE_INDIRECT_ACTION:
7907 return len;
7908 case QUEUE_INDIRECT_ACTION_CREATE:
7909 case QUEUE_INDIRECT_ACTION_UPDATE:
7910 case QUEUE_INDIRECT_ACTION_QUERY_UPDATE:
7911 out->args.vc.actions =
7912 (void *)RTE_ALIGN_CEIL((uintptr_t)(out + 1),
7913 sizeof(double));
7914 out->args.vc.attr.group = UINT32_MAX;
7915 /* fallthrough */
7916 case QUEUE_INDIRECT_ACTION_QUERY:
7917 out->command = ctx->curr;
7918 ctx->objdata = 0;
7919 ctx->object = out;
7920 ctx->objmask = NULL;
7921 return len;
7922 case QUEUE_INDIRECT_ACTION_EGRESS:
7923 out->args.vc.attr.egress = 1;
7924 return len;
7925 case QUEUE_INDIRECT_ACTION_INGRESS:
7926 out->args.vc.attr.ingress = 1;
7927 return len;
7928 case QUEUE_INDIRECT_ACTION_TRANSFER:
7929 out->args.vc.attr.transfer = 1;
7930 return len;
7931 case QUEUE_INDIRECT_ACTION_CREATE_POSTPONE:
7932 return len;
7933 case QUEUE_INDIRECT_ACTION_QU_MODE:
7934 return len;
7935 case QUEUE_INDIRECT_ACTION_LIST:
7936 out->command = QUEUE_INDIRECT_ACTION_LIST_CREATE;
7937 return len;
7938 default:
7939 return -1;
7940 }
7941}

Callers

nothing calls this directly

Calls 1

parse_defaultFunction · 0.85

Tested by

no test coverage detected