Lines Matching defs:rule
126 ipv6_src_from_sp(const struct acl6_rules *rule)
131 values[0] = rte_cpu_to_be_64((uint64_t)rule->field[IP6_SRC0].value.u32 << 32 |
132 rule->field[IP6_SRC1].value.u32);
133 values[1] = rte_cpu_to_be_64((uint64_t)rule->field[IP6_SRC2].value.u32 << 32 |
134 rule->field[IP6_SRC3].value.u32);
140 ipv6_dst_from_sp(const struct acl6_rules *rule)
145 values[0] = rte_cpu_to_be_64((uint64_t)rule->field[IP6_DST0].value.u32 << 32 |
146 rule->field[IP6_DST1].value.u32);
147 values[1] = rte_cpu_to_be_64((uint64_t)rule->field[IP6_DST2].value.u32 << 32 |
148 rule->field[IP6_DST3].value.u32);
154 ipv6_src_mask_from_sp(const struct acl6_rules *rule)
156 return rule->field[IP6_SRC0].mask_range.u32 +
157 rule->field[IP6_SRC1].mask_range.u32 +
158 rule->field[IP6_SRC2].mask_range.u32 +
159 rule->field[IP6_SRC3].mask_range.u32;
163 ipv6_dst_mask_from_sp(const struct acl6_rules *rule)
165 return rule->field[IP6_DST0].mask_range.u32 +
166 rule->field[IP6_DST1].mask_range.u32 +
167 rule->field[IP6_DST2].mask_range.u32 +
168 rule->field[IP6_DST3].mask_range.u32;
202 uint32_t *ri = NULL; /* rule index */
552 print_one_ip6_rule(const struct acl6_rules *rule, int32_t extra)
556 uint32_t_to_char(rule->field[IP6_SRC0].value.u32,
559 uint32_t_to_char(rule->field[IP6_SRC1].value.u32,
562 uint32_t_to_char(rule->field[IP6_SRC2].value.u32,
565 uint32_t_to_char(rule->field[IP6_SRC3].value.u32,
568 rule->field[IP6_SRC0].mask_range.u32
569 + rule->field[IP6_SRC1].mask_range.u32
570 + rule->field[IP6_SRC2].mask_range.u32
571 + rule->field[IP6_SRC3].mask_range.u32);
573 uint32_t_to_char(rule->field[IP6_DST0].value.u32,
576 uint32_t_to_char(rule->field[IP6_DST1].value.u32,
579 uint32_t_to_char(rule->field[IP6_DST2].value.u32,
582 uint32_t_to_char(rule->field[IP6_DST3].value.u32,
585 rule->field[IP6_DST0].mask_range.u32
586 + rule->field[IP6_DST1].mask_range.u32
587 + rule->field[IP6_DST2].mask_range.u32
588 + rule->field[IP6_DST3].mask_range.u32);
591 rule->field[IP6_SRCP].value.u16,
592 rule->field[IP6_SRCP].mask_range.u16,
593 rule->field[IP6_DSTP].value.u16,
594 rule->field[IP6_DSTP].mask_range.u16,
595 rule->field[IP6_PROTO].value.u8,
596 rule->field[IP6_PROTO].mask_range.u8);
599 rule->data.category_mask,
600 rule->data.priority,
601 rule->data.userdata);
605 dump_ip6_rules(const struct acl6_rules *rule, int32_t num, int32_t extra)
609 for (i = 0; i < num; i++, rule++) {
611 print_one_ip6_rule(rule, extra);
664 * check that for each rule it's SPI has a correspondent entry in SAD
728 RTE_LOG(WARNING, IPSEC, "No IPv6 SP Inbound rule "
736 RTE_LOG(WARNING, IPSEC, "No IPv6 SP Outbound rule "
757 struct acl6_rules *rule;
771 rule = bsearch(&tmpl, acr, num, sizeof(struct acl6_rules), sp_cmp);
772 if (rule != NULL) {
774 ip_addr[0].ip.ip6 = ipv6_src_from_sp(rule);
775 ip_addr[1].ip.ip6 = ipv6_dst_from_sp(rule);
776 mask[0] = ipv6_src_mask_from_sp(rule);
777 mask[1] = ipv6_dst_mask_from_sp(rule);
779 return RTE_PTR_DIFF(rule, acr) / sizeof(struct acl6_rules);