| 300 | }; |
| 301 | |
| 302 | int |
| 303 | cpfl_flow_init(struct cpfl_adapter_ext *ad, struct cpfl_devargs *devargs) |
| 304 | { |
| 305 | int ret; |
| 306 | |
| 307 | if (devargs->flow_parser[0] == '\0') { |
| 308 | PMD_INIT_LOG(WARNING, "flow module is not initialized"); |
| 309 | return 0; |
| 310 | } |
| 311 | |
| 312 | ret = cpfl_flow_engine_init(ad); |
| 313 | if (ret) { |
| 314 | PMD_DRV_LOG(ERR, "Failed to init flow engines"); |
| 315 | goto err; |
| 316 | } |
| 317 | |
| 318 | ret = cpfl_parser_create(&ad->flow_parser, devargs->flow_parser); |
| 319 | if (ret) { |
| 320 | PMD_DRV_LOG(ERR, "Failed to create flow parser"); |
| 321 | goto err; |
| 322 | } |
| 323 | |
| 324 | return ret; |
| 325 | |
| 326 | err: |
| 327 | cpfl_flow_engine_uninit(ad); |
| 328 | return ret; |
| 329 | } |
| 330 | |
| 331 | void |
| 332 | cpfl_flow_uninit(struct cpfl_adapter_ext *ad) |
no test coverage detected