| 2997 | } |
| 2998 | |
| 2999 | int |
| 3000 | sfc_flow_start(struct sfc_adapter *sa) |
| 3001 | { |
| 3002 | struct rte_flow *flow; |
| 3003 | int rc = 0; |
| 3004 | |
| 3005 | sfc_log_init(sa, "entry"); |
| 3006 | |
| 3007 | SFC_ASSERT(sfc_adapter_is_locked(sa)); |
| 3008 | |
| 3009 | sfc_ft_counters_reset(sa); |
| 3010 | |
| 3011 | TAILQ_FOREACH(flow, &sa->flow_list, entries) { |
| 3012 | if (flow->internal) |
| 3013 | continue; |
| 3014 | |
| 3015 | rc = sfc_flow_insert(sa, flow, NULL); |
| 3016 | if (rc != 0) |
| 3017 | goto fail_bad_flow; |
| 3018 | } |
| 3019 | |
| 3020 | sfc_log_init(sa, "done"); |
| 3021 | |
| 3022 | fail_bad_flow: |
| 3023 | return rc; |
| 3024 | } |
| 3025 | |
| 3026 | static void |
| 3027 | sfc_flow_cleanup(struct sfc_adapter *sa, struct rte_flow *flow) |
no test coverage detected