Lines Matching refs:flow_attr

196 			   const struct ib_flow_attr *flow_attr,
531 flow_attr->flags & IB_FLOW_ATTR_FLAGS_EGRESS, action);
630 const struct ib_flow_attr *flow_attr,
633 union ib_flow_spec *ib_spec = (union ib_flow_spec *)(flow_attr + 1);
649 for (spec_index = 0; spec_index < flow_attr->num_of_specs; spec_index++) {
679 const struct ib_flow_attr *flow_attr)
681 return is_valid_ethertype(mdev, flow_attr, false) &&
682 is_valid_ethertype(mdev, flow_attr, true);
762 struct ib_flow_attr *flow_attr,
765 bool dont_trap = flow_attr->flags & IB_FLOW_ATTR_FLAGS_DONT_TRAP;
781 switch (flow_attr->type) {
783 if (flow_is_multicast_only(flow_attr) && !dont_trap)
786 priority = ib_prio_to_core_prio(flow_attr->priority,
904 const struct ib_flow_attr *flow_attr,
915 const void *ib_flow = (const void *)flow_attr + sizeof(*flow_attr);
920 bool is_egress = flow_attr->flags & IB_FLOW_ATTR_FLAGS_EGRESS;
922 if (!is_valid_attr(dev->mdev, flow_attr))
937 for (spec_index = 0; spec_index < flow_attr->num_of_specs; spec_index++) {
939 ib_flow, flow_attr, &flow_act,
953 if (!flow_is_multicast_only(flow_attr))
956 if (dev->is_rep && flow_attr->type != IB_FLOW_ATTR_SNIFFER) {
959 rep = dev->port[flow_attr->port - 1].rep;
996 if (flow_attr->flags & IB_FLOW_ATTR_FLAGS_DONT_TRAP)
1006 (flow_attr->type == IB_FLOW_ATTR_ALL_DEFAULT ||
1007 flow_attr->type == IB_FLOW_ATTR_MC_DEFAULT)) {
1009 spec->flow_context.flow_tag, flow_attr->type);
1038 const struct ib_flow_attr *flow_attr,
1041 return _create_flow_rule(dev, ft_prio, flow_attr, dst, 0, NULL);
1051 struct ib_flow_attr *flow_attr,
1058 struct ib_flow_attr flow_attr;
1062 .flow_attr = {
1074 .flow_attr = {
1088 &leftovers_specs[LEFTOVERS_MC].flow_attr,
1091 flow_attr->type == IB_FLOW_ATTR_ALL_DEFAULT) {
1093 &leftovers_specs[LEFTOVERS_UC].flow_attr,
1116 static const struct ib_flow_attr flow_attr = {
1119 .size = sizeof(flow_attr)
1122 handler_rx = create_flow_rule(dev, ft_rx, &flow_attr, dst);
1128 handler_tx = create_flow_rule(dev, ft_tx, &flow_attr, dst);
1147 struct ib_flow_attr *flow_attr,
1156 bool is_egress = flow_attr->flags & IB_FLOW_ATTR_FLAGS_EGRESS;
1192 if (flow_attr->priority > MLX5_IB_FLOW_LAST_PRIO) {
1197 if (flow_attr->port > dev->num_ports ||
1198 (flow_attr->flags &
1205 (flow_attr->type == IB_FLOW_ATTR_ALL_DEFAULT ||
1206 flow_attr->type == IB_FLOW_ATTR_MC_DEFAULT)) {
1219 ft_prio = get_flow_table(dev, flow_attr,
1225 if (flow_attr->type == IB_FLOW_ATTR_SNIFFER) {
1226 ft_prio_tx = get_flow_table(dev, flow_attr, MLX5_IB_FT_TX);
1244 switch (flow_attr->type) {
1249 handler = _create_flow_rule(dev, ft_prio, flow_attr, dst,
1254 handler = create_leftovers_rule(dev, ft_prio, flow_attr, dst);