@@ -11,6 +11,7 @@
#include <rte_common.h>
#include <rte_ethdev.h>
+#include <rte_ring.h>
#include <rte_swx_port_ethdev.h>
#include <rte_swx_port_ring.h>
#include <rte_swx_port_source_sink.h>
@@ -491,11 +492,11 @@ cmd_ring(char **tokens,
uint32_t n_tokens,
char *out,
size_t out_size,
- void *obj)
+ void *obj __rte_unused)
{
- struct ring_params p;
+ struct rte_ring *r;
char *name;
- struct ring *ring;
+ uint32_t size, numa_node;
if (n_tokens != 6) {
snprintf(out, out_size, MSG_ARG_MISMATCH, tokens[0]);
@@ -504,28 +505,32 @@ cmd_ring(char **tokens,
name = tokens[1];
- if (strcmp(tokens[2], "size") != 0) {
+ if (strcmp(tokens[2], "size")) {
snprintf(out, out_size, MSG_ARG_NOT_FOUND, "size");
return;
}
- if (parser_read_uint32(&p.size, tokens[3]) != 0) {
+ if (parser_read_uint32(&size, tokens[3])) {
snprintf(out, out_size, MSG_ARG_INVALID, "size");
return;
}
- if (strcmp(tokens[4], "numa") != 0) {
+ if (strcmp(tokens[4], "numa")) {
snprintf(out, out_size, MSG_ARG_NOT_FOUND, "numa");
return;
}
- if (parser_read_uint32(&p.numa_node, tokens[5]) != 0) {
+ if (parser_read_uint32(&numa_node, tokens[5])) {
snprintf(out, out_size, MSG_ARG_INVALID, "numa_node");
return;
}
- ring = ring_create(obj, name, &p);
- if (!ring) {
+ r = rte_ring_create(
+ name,
+ size,
+ (int)numa_node,
+ RING_F_SP_ENQ | RING_F_SC_DEQ);
+ if (!r) {
snprintf(out, out_size, MSG_CMD_FAIL, tokens[0]);
return;
}
@@ -2999,6 +3004,7 @@ cmd_help(char **tokens,
"List of commands:\n"
"\tmempool\n"
"\tethdev\n"
+ "\tring\n"
"\tpipeline codegen\n"
"\tpipeline libbuild\n"
"\tpipeline build\n"
@@ -24,17 +24,11 @@
*/
TAILQ_HEAD(link_list, link);
-/*
- * ring
- */
-TAILQ_HEAD(ring_list, ring);
-
/*
* obj
*/
struct obj {
struct link_list link_list;
- struct ring_list ring_list;
};
/*
@@ -282,62 +276,6 @@ link_next(struct obj *obj, struct link *link)
TAILQ_FIRST(&obj->link_list) : TAILQ_NEXT(link, node);
}
-/*
- * ring
- */
-struct ring *
-ring_create(struct obj *obj, const char *name, struct ring_params *params)
-{
- struct ring *ring;
- struct rte_ring *r;
- unsigned int flags = RING_F_SP_ENQ | RING_F_SC_DEQ;
-
- /* Check input params */
- if (!name || ring_find(obj, name) || !params || !params->size)
- return NULL;
-
- /**
- * Resource create
- */
- r = rte_ring_create(
- name,
- params->size,
- params->numa_node,
- flags);
- if (!r)
- return NULL;
-
- /* Node allocation */
- ring = calloc(1, sizeof(struct ring));
- if (!ring) {
- rte_ring_free(r);
- return NULL;
- }
-
- /* Node fill in */
- strlcpy(ring->name, name, sizeof(ring->name));
-
- /* Node add to list */
- TAILQ_INSERT_TAIL(&obj->ring_list, ring, node);
-
- return ring;
-}
-
-struct ring *
-ring_find(struct obj *obj, const char *name)
-{
- struct ring *ring;
-
- if (!obj || !name)
- return NULL;
-
- TAILQ_FOREACH(ring, &obj->ring_list, node)
- if (strcmp(ring->name, name) == 0)
- return ring;
-
- return NULL;
-}
-
/*
* obj
*/
@@ -351,7 +289,6 @@ obj_init(void)
return NULL;
TAILQ_INIT(&obj->link_list);
- TAILQ_INIT(&obj->ring_list);
return obj;
}
@@ -73,25 +73,4 @@ link_find(struct obj *obj, const char *name);
struct link *
link_next(struct obj *obj, struct link *link);
-/*
- * ring
- */
-struct ring_params {
- uint32_t size;
- uint32_t numa_node;
-};
-
-struct ring {
- TAILQ_ENTRY(ring) node;
- char name[NAME_SIZE];
-};
-
-struct ring *
-ring_create(struct obj *obj,
- const char *name,
- struct ring_params *params);
-
-struct ring *
-ring_find(struct obj *obj, const char *name);
-
#endif /* _INCLUDE_OBJ_H_ */