Lines Matching defs:ib_spec
1348 union ib_flow_spec *ib_spec,
1353 switch (ib_spec->type) {
1355 if (FIELDS_NOT_SUPPORTED(ib_spec->eth.mask, LAST_ETH_FIELD))
1359 memcpy(mlx4_spec->eth.dst_mac, ib_spec->eth.val.dst_mac,
1361 memcpy(mlx4_spec->eth.dst_mac_msk, ib_spec->eth.mask.dst_mac,
1363 mlx4_spec->eth.vlan_tag = ib_spec->eth.val.vlan_tag;
1364 mlx4_spec->eth.vlan_tag_msk = ib_spec->eth.mask.vlan_tag;
1367 if (FIELDS_NOT_SUPPORTED(ib_spec->ib.mask, LAST_IB_FIELD))
1379 if (FIELDS_NOT_SUPPORTED(ib_spec->ipv4.mask, LAST_IPV4_FIELD))
1383 mlx4_spec->ipv4.src_ip = ib_spec->ipv4.val.src_ip;
1384 mlx4_spec->ipv4.src_ip_msk = ib_spec->ipv4.mask.src_ip;
1385 mlx4_spec->ipv4.dst_ip = ib_spec->ipv4.val.dst_ip;
1386 mlx4_spec->ipv4.dst_ip_msk = ib_spec->ipv4.mask.dst_ip;
1391 if (FIELDS_NOT_SUPPORTED(ib_spec->tcp_udp.mask, LAST_TCP_UDP_FIELD))
1394 type = ib_spec->type == IB_FLOW_SPEC_TCP ?
1397 mlx4_spec->tcp_udp.dst_port = ib_spec->tcp_udp.val.dst_port;
1398 mlx4_spec->tcp_udp.dst_port_msk = ib_spec->tcp_udp.mask.dst_port;
1399 mlx4_spec->tcp_udp.src_port = ib_spec->tcp_udp.val.src_port;
1400 mlx4_spec->tcp_udp.src_port_msk = ib_spec->tcp_udp.mask.src_port;
1492 union ib_flow_spec ib_spec = {};
1500 ib_spec.type = IB_FLOW_SPEC_IB;
1501 ib_spec.size = sizeof(struct ib_flow_spec_ib);
1509 ret = parse_flow_attr(mdev->dev, 0, &ib_spec,
1618 union ib_flow_spec *ib_spec;
1627 ib_spec = (union ib_flow_spec *)ib_flow;
1629 if (ib_spec->type != IB_FLOW_SPEC_ETH || flow_attr->num_of_specs != 1)
1632 err = mlx4_tunnel_steer_add(to_mdev(qp->device)->dev, ib_spec->eth.val.dst_mac,
1655 union ib_flow_spec *ib_spec;
1657 ib_spec = (union ib_flow_spec *)(flow_attr + 1);
1658 if (ib_spec->type != IB_FLOW_SPEC_ETH)
1662 if (is_zero_ether_addr(ib_spec->eth.mask.dst_mac)) {
1666 u8 mac[ETH_ALEN] = {ib_spec->eth.mask.dst_mac[0] ^ 0x01,
1667 ib_spec->eth.mask.dst_mac[1],
1668 ib_spec->eth.mask.dst_mac[2],
1669 ib_spec->eth.mask.dst_mac[3],
1670 ib_spec->eth.mask.dst_mac[4],
1671 ib_spec->eth.mask.dst_mac[5]};
1679 if (is_multicast_ether_addr(ib_spec->eth.val.dst_mac))
2955 struct ib_flow_spec_ib *ib_spec;
2966 ib_spec = (struct ib_flow_spec_ib *)(flow + 1);
2967 ib_spec->type = IB_FLOW_SPEC_IB;
2968 ib_spec->size = sizeof(struct ib_flow_spec_ib);
2970 memset(&ib_spec->mask, 0, sizeof(ib_spec->mask));