MCPcopy Create free account
hub / github.com/F-Stack/f-stack / convert_rule_2

Function convert_rule_2

dpdk/app/test/test_acl.c:648–669  ·  view source on GitHub ↗

* Convert IPV4 source and destination from RTE_ACL_FIELD_TYPE_MASK to * RTE_ACL_FIELD_TYPE_RANGE. */

Source from the content-addressed store, hash-verified

646 * RTE_ACL_FIELD_TYPE_RANGE.
647 */
648static void
649convert_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.

Callers

nothing calls this directly

Calls 1

convert_ruleFunction · 0.85

Tested by

no test coverage detected