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

Function pipeline_create

dpdk/examples/ip_pipeline/pipeline.c:69–143  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

67}
68
69struct pipeline *
70pipeline_create(const char *name, struct pipeline_params *params)
71{
72 char msgq_name[NAME_MAX];
73 struct rte_pipeline_params pp;
74 struct pipeline *pipeline;
75 struct rte_pipeline *p;
76 struct rte_ring *msgq_req;
77 struct rte_ring *msgq_rsp;
78
79 /* Check input params */
80 if ((name == NULL) ||
81 pipeline_find(name) ||
82 (params == NULL) ||
83 (params->timer_period_ms == 0))
84 return NULL;
85
86 /* Resource create */
87 snprintf(msgq_name, sizeof(msgq_name), "%s-MSGQ-REQ", name);
88
89 msgq_req = rte_ring_create(msgq_name,
90 PIPELINE_MSGQ_SIZE,
91 params->cpu_id,
92 RING_F_SP_ENQ | RING_F_SC_DEQ);
93 if (msgq_req == NULL)
94 return NULL;
95
96 snprintf(msgq_name, sizeof(msgq_name), "%s-MSGQ-RSP", name);
97
98 msgq_rsp = rte_ring_create(msgq_name,
99 PIPELINE_MSGQ_SIZE,
100 params->cpu_id,
101 RING_F_SP_ENQ | RING_F_SC_DEQ);
102 if (msgq_rsp == NULL) {
103 rte_ring_free(msgq_req);
104 return NULL;
105 }
106
107 pp.name = name;
108 pp.socket_id = (int) params->cpu_id;
109 pp.offset_port_id = params->offset_port_id;
110
111 p = rte_pipeline_create(&pp);
112 if (p == NULL) {
113 rte_ring_free(msgq_rsp);
114 rte_ring_free(msgq_req);
115 return NULL;
116 }
117
118 /* Node allocation */
119 pipeline = calloc(1, sizeof(struct pipeline));
120 if (pipeline == NULL) {
121 rte_pipeline_free(p);
122 rte_ring_free(msgq_rsp);
123 rte_ring_free(msgq_req);
124 return NULL;
125 }
126

Callers 1

cmd_pipelineFunction · 0.85

Calls 8

snprintfFunction · 0.85
rte_ring_createFunction · 0.85
rte_ring_freeFunction · 0.85
rte_pipeline_createFunction · 0.85
callocFunction · 0.85
rte_pipeline_freeFunction · 0.85
pipeline_findFunction · 0.70
strlcpyFunction · 0.50

Tested by

no test coverage detected