| 1231 | } |
| 1232 | |
| 1233 | int |
| 1234 | rte_flow_get_aged_flows(uint16_t port_id, void **contexts, |
| 1235 | uint32_t nb_contexts, struct rte_flow_error *error) |
| 1236 | { |
| 1237 | struct rte_eth_dev *dev = &rte_eth_devices[port_id]; |
| 1238 | const struct rte_flow_ops *ops = rte_flow_ops_get(port_id, error); |
| 1239 | int ret; |
| 1240 | |
| 1241 | if (unlikely(!ops)) |
| 1242 | return -rte_errno; |
| 1243 | if (likely(!!ops->get_aged_flows)) { |
| 1244 | fts_enter(dev); |
| 1245 | ret = ops->get_aged_flows(dev, contexts, nb_contexts, error); |
| 1246 | fts_exit(dev); |
| 1247 | ret = flow_err(port_id, ret, error); |
| 1248 | |
| 1249 | rte_flow_trace_get_aged_flows(port_id, contexts, nb_contexts, ret); |
| 1250 | |
| 1251 | return ret; |
| 1252 | } |
| 1253 | return rte_flow_error_set(error, ENOTSUP, |
| 1254 | RTE_FLOW_ERROR_TYPE_UNSPECIFIED, |
| 1255 | NULL, rte_strerror(ENOTSUP)); |
| 1256 | } |
| 1257 | |
| 1258 | int |
| 1259 | rte_flow_get_q_aged_flows(uint16_t port_id, uint32_t queue_id, void **contexts, |
no test coverage detected