Lines Matching defs:flow

320 	/* Non IP flow, no vlan tag */
325 /* Non IP flow, with vlan tag */
348 /* Update classification flow table registers */
388 /* Operations on flow entry */
470 /* Initialize the parser entry for the given flow */
472 const struct mvpp2_cls_flow *flow)
474 mvpp2_prs_add_flow(priv, flow->flow_id, flow->prs_ri.ri,
475 flow->prs_ri.ri_mask);
478 /* Initialize the Lookup Id table entry for the given flow */
480 const struct mvpp2_cls_flow *flow)
485 le.lkpid = flow->flow_id;
490 /* We point on the first lookup in the sequence for the flow, that is
493 le.data |= MVPP2_CLS_LKP_FLOW_PTR(MVPP2_CLS_FLT_FIRST(flow->flow_id));
581 /* Initialize the flow table entries for the given flow */
583 const struct mvpp2_cls_flow *flow)
588 /* Assign default values to all entries in the flow */
589 for (i = MVPP2_CLS_FLT_FIRST(flow->flow_id);
590 i <= MVPP2_CLS_FLT_LAST(flow->flow_id); i++) {
595 if (i == MVPP2_CLS_FLT_LAST(flow->flow_id))
602 mvpp2_cls_flow_read(priv, MVPP2_CLS_FLT_C2_RSS_ENTRY(flow->flow_id),
618 MVPP2_CLS_FLT_HASH_ENTRY(i, flow->flow_id),
721 const struct mvpp2_cls_flow *mvpp2_cls_flow_get(int flow)
723 if (flow >= MVPP2_N_PRS_FLOWS)
726 return &cls_flows[flow];
729 /* Set the hash generation options for the given traffic flow.
730 * One traffic flow (in the ethtool sense) has multiple classification flows,
743 const struct mvpp2_cls_flow *flow;
749 flow = mvpp2_cls_flow_get(i);
750 if (!flow)
753 flow_index = MVPP2_CLS_FLT_HASH_ENTRY(port->id, flow->flow_id);
757 hash_opts = flow->supported_hash_opts & requested_opts;
826 /* Returns the hash opts for this flow. There are several classifier flows
827 * for one traffic flow, this returns an aggregation of all configurations.
831 const struct mvpp2_cls_flow *flow;
837 flow = mvpp2_cls_flow_get(i);
838 if (!flow)
841 flow_index = MVPP2_CLS_FLT_HASH_ENTRY(port->id, flow->flow_id);
853 const struct mvpp2_cls_flow *flow;
857 flow = mvpp2_cls_flow_get(i);
858 if (!flow)
861 mvpp2_cls_flow_prs_init(priv, flow);
862 mvpp2_cls_flow_lkp_init(priv, flow);
863 mvpp2_cls_flow_init(priv, flow);
918 /* Clear classifier flow table */
1091 if (!flow_action_basic_hw_stats_check(&rule->flow->action, NULL))
1101 act = &rule->flow->action.entries[0];
1183 const struct mvpp2_cls_flow *flow;
1188 flow = mvpp2_cls_flow_get(i);
1189 if (!flow)
1192 index = MVPP2_CLS_FLT_C2_RFS(port->id, flow->flow_id, rule->loc);
1208 const struct mvpp2_cls_flow *flow;
1221 flow = mvpp2_cls_flow_get(i);
1222 if (!flow)
1225 if ((rule->hek_fields & flow->supported_hash_opts) != rule->hek_fields)
1228 index = MVPP2_CLS_FLT_C2_RFS(port->id, flow->flow_id, rule->loc);
1245 struct flow_rule *flow = rule->flow;
1251 if (flow_rule_match_key(flow, FLOW_DISSECTOR_KEY_VLAN)) {
1254 flow_rule_match_vlan(flow, &match);
1285 if (flow_rule_match_key(flow, FLOW_DISSECTOR_KEY_PORTS)) {
1288 flow_rule_match_ports(flow, &match);
1314 struct flow_rule *flow = rule->flow;
1317 if (!flow_action_basic_hw_stats_check(&rule->flow->action, NULL))
1320 act = &flow->action.entries[0];
1388 efs->rule.flow = ethtool_rule->rule;
1416 efs->rule.flow = NULL;