From: Balasubramanian Manoharan <[email protected]> This patch removes support for odp_pmr_create_range() function in the classifier example application.
Signed-off-by: Balasubramanian Manoharan <[email protected]> --- example/classifier/odp_classifier.c | 106 ++++++++++-------------------------- 1 file changed, 29 insertions(+), 77 deletions(-) diff --git a/example/classifier/odp_classifier.c b/example/classifier/odp_classifier.c index cf53565..d78eb7b 100644 --- a/example/classifier/odp_classifier.c +++ b/example/classifier/odp_classifier.c @@ -52,22 +52,15 @@ typedef struct { odp_cos_t cos; /**< Associated cos handle */ odp_pmr_t pmr; /**< Associated pmr handle */ odp_atomic_u64_t packet_count; /**< count of received packets */ - odp_pmr_term_e term; /**< odp pmr term value */ char queue_name[ODP_QUEUE_NAME_LEN]; /**< queue name */ - odp_pmr_match_type_e match_type; /**< pmr match type */ int val_sz; /**< size of the pmr term */ - union { - struct { - uint32_t val; /**< pmr term value */ - uint32_t mask; /**< pmr term mask */ - } match; - struct { - uint32_t val1; /**< pmr term start range */ - uint32_t val2; /**< pmr term end range */ - } range; - }; - char value1[DISPLAY_STRING_LEN]; /**< Display string1 */ - char value2[DISPLAY_STRING_LEN]; /**< Display string2 */ + struct { + odp_pmr_term_e term; /**< odp pmr term value */ + uint32_t val; /**< pmr term value */ + uint32_t mask; /**< pmr term mask */ + } rule; + char value[DISPLAY_STRING_LEN]; /**< Display string for value */ + char mask[DISPLAY_STRING_LEN]; /**< Display string for mask */ } global_statistics; typedef struct { @@ -114,18 +107,14 @@ void print_cls_statistics(appl_args_t *args) printf("\n"); printf("CONFIGURATION\n"); printf("\n"); - printf("QUEUE\tMATCH\tVALUE1\t\tVALUE2\n"); + printf("QUEUE\tVALUE\t\tMASK\n"); for (i = 0; i < 40; i++) printf("-"); printf("\n"); for (i = 0; i < args->policy_count - 1; i++) { printf("%s\t", args->stats[i].queue_name); - if (args->stats[i].match_type == ODP_PMR_MASK) - printf("MATCH\t"); - else - printf("RANGE\t"); - printf("%s\t", args->stats[i].value1); - printf("%s\n", args->stats[i].value2); + printf("%s\t", args->stats[i].value); + printf("%s\n", args->stats[i].mask); } printf("\n"); printf("RECEIVED PACKETS\n"); @@ -357,17 +346,10 @@ static void configure_cos_queue(odp_pktio_t pktio, appl_args_t *args) sprintf(cos_name, "CoS%s", stats->queue_name); stats->cos = odp_cos_create(cos_name); - if (stats->match_type == ODP_PMR_MASK) { - stats->pmr = odp_pmr_create_match(stats->term, - &stats->match.val, - &stats->match.mask, - stats->val_sz); - } else { - stats->pmr = odp_pmr_create_range(stats->term, - &stats->range.val1, - &stats->range.val2, - stats->val_sz); - } + stats->pmr = odp_pmr_create(stats->rule.term, + &stats->rule.val, + &stats->rule.mask, + stats->val_sz); qparam.sched.prio = i % odp_schedule_num_prio(); qparam.sched.sync = ODP_SCHED_SYNC_NONE; qparam.sched.group = ODP_SCHED_GROUP_ALL; @@ -614,39 +596,18 @@ static int parse_pmr_policy(appl_args_t *appl_args, char *argv[], char *optarg) EXAMPLE_ERR("Invalid ODP_PMR_TERM string\n"); exit(EXIT_FAILURE); } - stats[policy_count].term = term; - /* PMR RANGE vs MATCH */ - token = strtok(NULL, ":"); - if (0 == strcasecmp(token, "range")) { - stats[policy_count].match_type = ODP_PMR_RANGE; - } else if (0 == strcasecmp(token, "match")) { - stats[policy_count].match_type = ODP_PMR_MASK; - } else { - usage(argv[0]); - exit(EXIT_FAILURE); - } + stats[policy_count].rule.term = term; /* PMR value */ switch (term) { case ODP_PMR_SIP_ADDR: - if (stats[policy_count].match_type == ODP_PMR_MASK) { - token = strtok(NULL, ":"); - strcpy(stats[policy_count].value1, token); - parse_ipv4_addr(token, &stats[policy_count].match.val); - token = strtok(NULL, ":"); - strcpy(stats[policy_count].value2, token); - parse_ipv4_mask(token, &stats[policy_count].match.mask); - stats[policy_count].val_sz = 4; - } else { - token = strtok(NULL, ":"); - strcpy(stats[policy_count].value1, - token); - parse_ipv4_addr(token, &stats[policy_count].range.val1); - token = strtok(NULL, ":"); - strcpy(stats[policy_count].value2, token); - parse_ipv4_addr(token, &stats[policy_count].range.val2); - stats[policy_count].val_sz = 4; - } + token = strtok(NULL, ":"); + strcpy(stats[policy_count].value, token); + parse_ipv4_addr(token, &stats[policy_count].rule.val); + token = strtok(NULL, ":"); + strcpy(stats[policy_count].mask, token); + parse_ipv4_mask(token, &stats[policy_count].rule.mask); + stats[policy_count].val_sz = 4; break; default: usage(argv[0]); @@ -788,34 +749,25 @@ static void usage(char *progname) printf("\n" "OpenDataPlane Classifier example.\n" "Usage: %s OPTIONS\n" - " E.g. %s -i eth1 -m 0 -p \"ODP_PMR_SIP_ADDR:match:10.10.10.5:FFFFFFFF:queue1\" \\\n" - "\t\t\t-p \"ODP_PMR_SIP_ADDR:MATCH:10.10.10.6:FFFFFFFF:queue2\" \\\n" - "\t\t\t-p \"ODP_PMR_SIP_ADDR:MATCH:10.10.10.7:000000FF:queue3\" \\\n" - "\t\t\t-p \"ODP_PMR_SIP_ADDR:RANGE:10.10.10.10:10.10.10.20:queue3\"\n" + " E.g. %s -i eth1 -m 0 -p \"ODP_PMR_SIP_ADDR:10.10.10.5:FFFFFFFF:queue1\" \\\n" + "\t\t\t-p \"ODP_PMR_SIP_ADDR:10.10.10.7:000000FF:queue2\" \\\n" + "\t\t\t-p \"ODP_PMR_SIP_ADDR:10.5.5.10:FFFFFF00:queue3\"\n" "\n" "For the above example configuration the following will be the packet distribution\n" "queue1\t\tPackets with source ip address 10.10.10.5\n" "queue2\t\tPackets with source ip address whose last 8 bits match 7\n" - "queue3\t\tPackets with source ip address in the range 10.10.10.10 to 10.10.10.20\n" + "queue3\t\tPackets with source ip address in the subnet 10.5.5.0\n" "\n" "Mandatory OPTIONS:\n" " -i, --interface Eth interface\n" - " -p, --policy <odp_pmr_term_e>:<match type>:<value1>:<value2>:<queue name>\n" + " -p, --policy <odp_pmr_term_e>:<value>:<mask bits>:<queue name>\n" "\n" "<odp_pmr_term_e> Packet Matching Rule defined with odp_pmr_term_e " "for the policy\n" "\n" - "<match type> PMR Match type.\n" - " MATCH: PMR rule type MATCH\n" - " RANGE: PMR rule type RANCE\n" - "\n" - "<value1> PMR value1.\n" - " If match type is MATCH is the the matching value.\n" - " If match type is RANGE it is start range.\n" + "<value> PMR value to be matched.\n" "\n" - "<value2> PMR value2.\n" - " If match type is \"MATCH\" it is the MASK value\n" - " If match type is \"RANCE\" it is end range.\n" + "<mask bits> PMR mask bits to be applied on the PMR term value\n" "\n" "Optional OPTIONS\n" " -c, --count <number> CPU count.\n" -- 2.0.1.472.g6f92e5f _______________________________________________ lng-odp mailing list [email protected] https://lists.linaro.org/mailman/listinfo/lng-odp
