X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;f=app%2Ftest%2Ftest_table_pipeline.c;h=36bfeda3d8fca72a7d15333216cbe204eae0c831;hb=43a942393d1795fa303b490a81bd943970fe9a71;hp=a0a9e04922967647b98830481695e0838913e4a5;hpb=08b563ffb19d8baf59dd84200f25bc85031d18a7;p=dpdk.git diff --git a/app/test/test_table_pipeline.c b/app/test/test_table_pipeline.c index a0a9e04922..36bfeda3d8 100644 --- a/app/test/test_table_pipeline.c +++ b/app/test/test_table_pipeline.c @@ -91,53 +91,59 @@ rte_pipeline_port_out_action_handler port_action_stub(struct rte_mbuf **pkts, #endif rte_pipeline_table_action_handler_hit -table_action_0x00(struct rte_mbuf **pkts, uint64_t *pkts_mask, - struct rte_pipeline_table_entry **actions, uint32_t action_mask); +table_action_0x00(struct rte_pipeline *p, struct rte_mbuf **pkts, + uint64_t pkts_mask, struct rte_pipeline_table_entry **entry, void *arg); rte_pipeline_table_action_handler_hit -table_action_stub_hit(struct rte_mbuf **pkts, uint64_t *pkts_mask, - struct rte_pipeline_table_entry **actions, uint32_t action_mask); +table_action_stub_hit(struct rte_pipeline *p, struct rte_mbuf **pkts, + uint64_t pkts_mask, struct rte_pipeline_table_entry **entry, void *arg); rte_pipeline_table_action_handler_miss -table_action_stub_miss(struct rte_mbuf **pkts, uint64_t *pkts_mask, - struct rte_pipeline_table_entry *action, uint32_t action_mask); +table_action_stub_miss(struct rte_pipeline *p, struct rte_mbuf **pkts, + uint64_t pkts_mask, struct rte_pipeline_table_entry **entry, void *arg); rte_pipeline_table_action_handler_hit -table_action_0x00(__attribute__((unused)) struct rte_mbuf **pkts, - uint64_t *pkts_mask, - __attribute__((unused)) struct rte_pipeline_table_entry **actions, - __attribute__((unused)) uint32_t action_mask) +table_action_0x00(__attribute__((unused)) struct rte_pipeline *p, + __attribute__((unused)) struct rte_mbuf **pkts, + uint64_t pkts_mask, + __attribute__((unused)) struct rte_pipeline_table_entry **entry, + __attribute__((unused)) void *arg) { printf("Table Action, setting pkts_mask to 0x00\n"); - *pkts_mask = 0x00; + pkts_mask = ~0x00; + rte_pipeline_ah_packet_drop(p, pkts_mask); return 0; } rte_pipeline_table_action_handler_hit -table_action_stub_hit(__attribute__((unused)) struct rte_mbuf **pkts, - uint64_t *pkts_mask, - __attribute__((unused)) struct rte_pipeline_table_entry **actions, - __attribute__((unused)) uint32_t action_mask) +table_action_stub_hit(__attribute__((unused)) struct rte_pipeline *p, + __attribute__((unused)) struct rte_mbuf **pkts, + uint64_t pkts_mask, + __attribute__((unused)) struct rte_pipeline_table_entry **entry, + __attribute__((unused)) void *arg) { printf("STUB Table Action Hit - doing nothing\n"); printf("STUB Table Action Hit - setting mask to 0x%"PRIx64"\n", override_hit_mask); - *pkts_mask = override_hit_mask; + pkts_mask = (~override_hit_mask) & 0x3; + rte_pipeline_ah_packet_drop(p, pkts_mask); return 0; } + rte_pipeline_table_action_handler_miss -table_action_stub_miss(__attribute__((unused)) struct rte_mbuf **pkts, - uint64_t *pkts_mask, - __attribute__((unused)) struct rte_pipeline_table_entry *action, - __attribute__((unused)) uint32_t action_mask) +table_action_stub_miss(struct rte_pipeline *p, + __attribute__((unused)) struct rte_mbuf **pkts, + uint64_t pkts_mask, + __attribute__((unused)) struct rte_pipeline_table_entry **entry, + __attribute__((unused)) void *arg) { printf("STUB Table Action Miss - setting mask to 0x%"PRIx64"\n", override_miss_mask); - *pkts_mask = override_miss_mask; + pkts_mask = (~override_miss_mask) & 0x3; + rte_pipeline_ah_packet_drop(p, pkts_mask); return 0; } - enum e_test_type { e_TEST_STUB = 0, e_TEST_LPM, @@ -433,7 +439,8 @@ test_pipeline_single_filter(int test_type, int expected_count) RTE_LOG(INFO, PIPELINE, "%s: **** Running %s test\n", __func__, pipeline_test_names[test_type]); /* Run pipeline once */ - rte_pipeline_run(p); + for (i = 0; i < N_PORTS; i++) + rte_pipeline_run(p); ret = rte_pipeline_flush(NULL); @@ -457,7 +464,8 @@ test_pipeline_single_filter(int test_type, int expected_count) rte_panic("Failed to alloc mbuf from pool\n"); return -1; } - key = RTE_MBUF_METADATA_UINT8_PTR(m, 32); + key = RTE_MBUF_METADATA_UINT8_PTR(m, + APP_METADATA_OFFSET(32)); k32 = (uint32_t *) key; k32[0] = 0xadadadad >> (j % 2); @@ -468,7 +476,8 @@ test_pipeline_single_filter(int test_type, int expected_count) } /* Run pipeline once */ - rte_pipeline_run(p); + for (i = 0; i < N_PORTS; i++) + rte_pipeline_run(p); /* * need to flush the pipeline, as there may be less hits than the burst