| 2530 | } |
| 2531 | |
| 2532 | static int |
| 2533 | sfc_flow_validate(struct rte_eth_dev *dev, |
| 2534 | const struct rte_flow_attr *attr, |
| 2535 | const struct rte_flow_item pattern[], |
| 2536 | const struct rte_flow_action actions[], |
| 2537 | struct rte_flow_error *error) |
| 2538 | { |
| 2539 | struct sfc_adapter *sa = sfc_adapter_by_eth_dev(dev); |
| 2540 | struct rte_flow *flow; |
| 2541 | int rc; |
| 2542 | |
| 2543 | flow = sfc_flow_zmalloc(error); |
| 2544 | if (flow == NULL) |
| 2545 | return -rte_errno; |
| 2546 | |
| 2547 | sfc_adapter_lock(sa); |
| 2548 | |
| 2549 | rc = sfc_flow_parse(dev, attr, pattern, actions, flow, error); |
| 2550 | if (rc == 0) |
| 2551 | rc = sfc_flow_verify(sa, flow, error); |
| 2552 | |
| 2553 | sfc_flow_free(sa, flow); |
| 2554 | |
| 2555 | sfc_adapter_unlock(sa); |
| 2556 | |
| 2557 | return rc; |
| 2558 | } |
| 2559 | |
| 2560 | static struct rte_flow * |
| 2561 | sfc_flow_create(struct rte_eth_dev *dev, |
nothing calls this directly
no test coverage detected