Lines Matching defs:flow_attr
192 const struct ib_flow_attr *flow_attr,
520 flow_attr->flags & IB_FLOW_ATTR_FLAGS_EGRESS, action);
578 const struct ib_flow_attr *flow_attr,
581 union ib_flow_spec *ib_spec = (union ib_flow_spec *)(flow_attr + 1);
597 for (spec_index = 0; spec_index < flow_attr->num_of_specs; spec_index++) {
627 const struct ib_flow_attr *flow_attr)
629 return is_valid_ethertype(mdev, flow_attr, false) &&
630 is_valid_ethertype(mdev, flow_attr, true);
719 struct ib_flow_attr *flow_attr,
722 bool dont_trap = flow_attr->flags & IB_FLOW_ATTR_FLAGS_DONT_TRAP;
738 switch (flow_attr->type) {
740 if (flow_is_multicast_only(flow_attr) && !dont_trap)
743 priority = ib_prio_to_core_prio(flow_attr->priority,
1509 const struct ib_flow_attr *flow_attr,
1520 const void *ib_flow = (const void *)flow_attr + sizeof(*flow_attr);
1525 bool is_egress = flow_attr->flags & IB_FLOW_ATTR_FLAGS_EGRESS;
1527 if (!is_valid_attr(dev->mdev, flow_attr))
1542 for (spec_index = 0; spec_index < flow_attr->num_of_specs; spec_index++) {
1544 ib_flow, flow_attr, &flow_act,
1558 if (!flow_is_multicast_only(flow_attr))
1561 if (dev->is_rep && flow_attr->type != IB_FLOW_ATTR_SNIFFER) {
1564 rep = dev->port[flow_attr->port - 1].rep;
1595 if (flow_attr->flags & IB_FLOW_ATTR_FLAGS_DONT_TRAP)
1605 (flow_attr->type == IB_FLOW_ATTR_ALL_DEFAULT ||
1606 flow_attr->type == IB_FLOW_ATTR_MC_DEFAULT)) {
1608 spec->flow_context.flow_tag, flow_attr->type);
1637 const struct ib_flow_attr *flow_attr,
1640 return _create_flow_rule(dev, ft_prio, flow_attr, dst, 0, NULL);
1645 struct ib_flow_attr *flow_attr,
1653 struct ib_flow_attr flow_attr;
1654 } leftovers_wc = { .flow_attr = { .num_of_specs = 1,
1664 struct ib_flow_attr flow_attr;
1665 } leftovers_uc = { .flow_attr = { .num_of_specs = 1,
1673 handler = create_flow_rule(dev, ft_prio, &leftovers_wc.flow_attr, dst);
1675 flow_attr->type == IB_FLOW_ATTR_ALL_DEFAULT) {
1677 &leftovers_uc.flow_attr, dst);
1699 static const struct ib_flow_attr flow_attr = {
1702 .size = sizeof(flow_attr)
1705 handler_rx = create_flow_rule(dev, ft_rx, &flow_attr, dst);
1711 handler_tx = create_flow_rule(dev, ft_tx, &flow_attr, dst);
1730 struct ib_flow_attr *flow_attr,
1739 bool is_egress = flow_attr->flags & IB_FLOW_ATTR_FLAGS_EGRESS;
1775 if (flow_attr->priority > MLX5_IB_FLOW_LAST_PRIO) {
1780 if (flow_attr->flags &
1787 (flow_attr->type == IB_FLOW_ATTR_ALL_DEFAULT ||
1788 flow_attr->type == IB_FLOW_ATTR_MC_DEFAULT)) {
1801 ft_prio = get_flow_table(dev, flow_attr,
1807 if (flow_attr->type == IB_FLOW_ATTR_SNIFFER) {
1808 ft_prio_tx = get_flow_table(dev, flow_attr, MLX5_IB_FT_TX);
1826 switch (flow_attr->type) {
1831 handler = _create_flow_rule(dev, ft_prio, flow_attr, dst,
1836 handler = create_leftovers_rule(dev, ft_prio, flow_attr, dst);