1 --- lib/librte_pipeline/rte_pipeline.c 2016-08-10 21:50:46.625571187 +0530
2 +++ lib/librte_pipeline/rte_pipeline.c 2016-08-10 21:51:02.333571628 +0530
8 +rte_pipeline_action_handler_port_ext(struct rte_pipeline *p,
10 + struct rte_pipeline_table_entry **entries);
13 +rte_pipeline_action_handler_port_ext(struct rte_pipeline *p,
15 + struct rte_pipeline_table_entry **entries)
17 + p->pkts_mask = pkts_mask;
19 + if ((pkts_mask & (pkts_mask + 1)) == 0) {
20 + uint64_t n_pkts = __builtin_popcountll(pkts_mask);
23 + for (i = 0; i < n_pkts; i++) {
24 + struct rte_mbuf *pkt = p->pkts[i];
25 + uint32_t port_out_id = entries[i]->port_id;
26 + struct rte_port_out *port_out =
27 + &p->ports_out[port_out_id];
29 + /* Output port user actions */
30 + if (port_out->f_action == NULL) /* Output port TX */
31 + port_out->ops.f_tx(port_out->h_port, pkt);
33 + uint64_t pkt_mask = 1LLU << i;
35 + port_out->f_action(p,
40 + RTE_PIPELINE_STATS_AH_DROP_READ(p,
41 + port_out->n_pkts_dropped_by_ah);
43 + /* Output port TX */
44 + if (pkt_mask & p->pkts_mask)
45 + port_out->ops.f_tx(port_out->h_port,
52 + for (i = 0; i < RTE_PORT_IN_BURST_SIZE_MAX; i++) {
53 + uint64_t pkt_mask = 1LLU << i;
54 + struct rte_mbuf *pkt;
55 + struct rte_port_out *port_out;
56 + uint32_t port_out_id;
58 + if ((pkt_mask & pkts_mask) == 0)
62 + port_out_id = entries[i]->port_id;
63 + port_out = &p->ports_out[port_out_id];
65 + /* Output port user actions */
66 + if (port_out->f_action == NULL) /* Output port TX */
67 + port_out->ops.f_tx(port_out->h_port, pkt);
69 + port_out->f_action(p,
74 + RTE_PIPELINE_STATS_AH_DROP_READ(p,
75 + port_out->n_pkts_dropped_by_ah);
77 + /* Output port TX */
78 + if (pkt_mask & p->pkts_mask)
79 + port_out->ops.f_tx(port_out->h_port,
87 rte_pipeline_action_handler_port_meta(struct rte_pipeline *p,