* Convert IPV4 source and destination from RTE_ACL_FIELD_TYPE_MASK to * RTE_ACL_FIELD_TYPE_RANGE. */
| 646 | * RTE_ACL_FIELD_TYPE_RANGE. |
| 647 | */ |
| 648 | static void |
| 649 | convert_rule_2(const struct rte_acl_ipv4vlan_rule *ri, |
| 650 | struct acl_ipv4vlan_rule *ro) |
| 651 | { |
| 652 | uint32_t hi, lo, mask; |
| 653 | |
| 654 | convert_rule(ri, ro); |
| 655 | |
| 656 | mask = ro->field[RTE_ACL_IPV4VLAN_SRC_FIELD].mask_range.u32; |
| 657 | mask = RTE_ACL_MASKLEN_TO_BITMASK(mask, sizeof(mask)); |
| 658 | lo = ro->field[RTE_ACL_IPV4VLAN_SRC_FIELD].value.u32 & mask; |
| 659 | hi = lo + ~mask; |
| 660 | ro->field[RTE_ACL_IPV4VLAN_SRC_FIELD].value.u32 = lo; |
| 661 | ro->field[RTE_ACL_IPV4VLAN_SRC_FIELD].mask_range.u32 = hi; |
| 662 | |
| 663 | mask = ro->field[RTE_ACL_IPV4VLAN_DST_FIELD].mask_range.u32; |
| 664 | mask = RTE_ACL_MASKLEN_TO_BITMASK(mask, sizeof(mask)); |
| 665 | lo = ro->field[RTE_ACL_IPV4VLAN_DST_FIELD].value.u32 & mask; |
| 666 | hi = lo + ~mask; |
| 667 | ro->field[RTE_ACL_IPV4VLAN_DST_FIELD].value.u32 = lo; |
| 668 | ro->field[RTE_ACL_IPV4VLAN_DST_FIELD].mask_range.u32 = hi; |
| 669 | } |
| 670 | |
| 671 | /* |
| 672 | * Convert rte_acl_ipv4vlan_rule: swap VLAN and PORTS rule fields. |
nothing calls this directly
no test coverage detected