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