Lines Matching defs:ib_spec
195 const union ib_flow_spec *ib_spec,
215 if (ib_spec->type & IB_FLOW_SPEC_INNER) {
231 switch (ib_spec->type & ~IB_FLOW_SPEC_INNER) {
233 if (FIELDS_NOT_SUPPORTED(ib_spec->eth.mask, LAST_ETH_FIELD))
238 ib_spec->eth.mask.dst_mac);
241 ib_spec->eth.val.dst_mac);
245 ib_spec->eth.mask.src_mac);
248 ib_spec->eth.val.src_mac);
250 if (ib_spec->eth.mask.vlan_tag) {
257 first_vid, ntohs(ib_spec->eth.mask.vlan_tag));
259 first_vid, ntohs(ib_spec->eth.val.vlan_tag));
263 ntohs(ib_spec->eth.mask.vlan_tag) >> 12);
266 ntohs(ib_spec->eth.val.vlan_tag) >> 12);
270 ntohs(ib_spec->eth.mask.vlan_tag) >> 13);
273 ntohs(ib_spec->eth.val.vlan_tag) >> 13);
276 ethertype, ntohs(ib_spec->eth.mask.ether_type));
278 ethertype, ntohs(ib_spec->eth.val.ether_type));
281 if (FIELDS_NOT_SUPPORTED(ib_spec->ipv4.mask, LAST_IPV4_FIELD))
298 &ib_spec->ipv4.mask.src_ip,
299 sizeof(ib_spec->ipv4.mask.src_ip));
302 &ib_spec->ipv4.val.src_ip,
303 sizeof(ib_spec->ipv4.val.src_ip));
306 &ib_spec->ipv4.mask.dst_ip,
307 sizeof(ib_spec->ipv4.mask.dst_ip));
310 &ib_spec->ipv4.val.dst_ip,
311 sizeof(ib_spec->ipv4.val.dst_ip));
314 ib_spec->ipv4.mask.tos, ib_spec->ipv4.val.tos);
317 ib_spec->ipv4.mask.proto,
318 ib_spec->ipv4.val.proto))
322 if (FIELDS_NOT_SUPPORTED(ib_spec->ipv6.mask, LAST_IPV6_FIELD))
339 &ib_spec->ipv6.mask.src_ip,
340 sizeof(ib_spec->ipv6.mask.src_ip));
343 &ib_spec->ipv6.val.src_ip,
344 sizeof(ib_spec->ipv6.val.src_ip));
347 &ib_spec->ipv6.mask.dst_ip,
348 sizeof(ib_spec->ipv6.mask.dst_ip));
351 &ib_spec->ipv6.val.dst_ip,
352 sizeof(ib_spec->ipv6.val.dst_ip));
355 ib_spec->ipv6.mask.traffic_class,
356 ib_spec->ipv6.val.traffic_class);
359 ib_spec->ipv6.mask.next_hdr,
360 ib_spec->ipv6.val.next_hdr))
364 ntohl(ib_spec->ipv6.mask.flow_label),
365 ntohl(ib_spec->ipv6.val.flow_label),
366 ib_spec->type & IB_FLOW_SPEC_INNER);
369 if (ib_spec->esp.mask.seq)
373 ntohl(ib_spec->esp.mask.spi));
375 ntohl(ib_spec->esp.val.spi));
378 if (FIELDS_NOT_SUPPORTED(ib_spec->tcp_udp.mask,
386 ntohs(ib_spec->tcp_udp.mask.src_port));
388 ntohs(ib_spec->tcp_udp.val.src_port));
391 ntohs(ib_spec->tcp_udp.mask.dst_port));
393 ntohs(ib_spec->tcp_udp.val.dst_port));
396 if (FIELDS_NOT_SUPPORTED(ib_spec->tcp_udp.mask,
404 ntohs(ib_spec->tcp_udp.mask.src_port));
406 ntohs(ib_spec->tcp_udp.val.src_port));
409 ntohs(ib_spec->tcp_udp.mask.dst_port));
411 ntohs(ib_spec->tcp_udp.val.dst_port));
414 if (ib_spec->gre.mask.c_ks_res0_ver)
426 ntohs(ib_spec->gre.mask.protocol));
428 ntohs(ib_spec->gre.val.protocol));
432 &ib_spec->gre.mask.key,
433 sizeof(ib_spec->gre.mask.key));
436 &ib_spec->gre.val.key,
437 sizeof(ib_spec->gre.val.key));
444 &ib_spec->mpls.mask.tag))
449 &ib_spec->mpls.val.tag,
450 sizeof(ib_spec->mpls.val.tag));
453 &ib_spec->mpls.mask.tag,
454 sizeof(ib_spec->mpls.mask.tag));
459 &ib_spec->mpls.mask.tag))
464 &ib_spec->mpls.val.tag,
465 sizeof(ib_spec->mpls.val.tag));
468 &ib_spec->mpls.mask.tag,
469 sizeof(ib_spec->mpls.mask.tag));
472 if (ib_spec->type & IB_FLOW_SPEC_INNER) {
475 &ib_spec->mpls.mask.tag))
480 &ib_spec->mpls.val.tag,
481 sizeof(ib_spec->mpls.val.tag));
484 &ib_spec->mpls.mask.tag,
485 sizeof(ib_spec->mpls.mask.tag));
489 &ib_spec->mpls.mask.tag))
494 &ib_spec->mpls.val.tag,
495 sizeof(ib_spec->mpls.val.tag));
498 &ib_spec->mpls.mask.tag,
499 sizeof(ib_spec->mpls.mask.tag));
504 if (FIELDS_NOT_SUPPORTED(ib_spec->tunnel.mask,
509 ntohl(ib_spec->tunnel.mask.tunnel_id));
511 ntohl(ib_spec->tunnel.val.tunnel_id));
514 if (FIELDS_NOT_SUPPORTED(ib_spec->flow_tag,
517 if (ib_spec->flow_tag.tag_id >= BIT(24))
520 flow_context->flow_tag = ib_spec->flow_tag.tag_id;
524 if (FIELDS_NOT_SUPPORTED(ib_spec->drop,
530 ret = parse_flow_flow_action(to_mflow_act(ib_spec->action.act),
536 if (FIELDS_NOT_SUPPORTED(ib_spec->flow_count,
544 action->counters = ib_spec->flow_count.counters;
633 union ib_flow_spec *ib_spec = (union ib_flow_spec *)(flow_attr + 1);
650 if ((ib_spec->type == (IB_FLOW_SPEC_ETH | inner_bit)) &&
651 ib_spec->eth.mask.ether_type) {
652 mask_valid = (ib_spec->eth.mask.ether_type ==
655 eth_type = ntohs(ib_spec->eth.val.ether_type);
656 } else if ((ib_spec->type == (IB_FLOW_SPEC_IPV4 | inner_bit)) ||
657 (ib_spec->type == (IB_FLOW_SPEC_IPV6 | inner_bit))) {
658 ip_spec_type = ib_spec->type;
660 ib_spec = (void *)ib_spec + ib_spec->size;