| 171 | } |
| 172 | |
| 173 | static int |
| 174 | kni_process_rx(uint16_t port_id, uint16_t queue_id, |
| 175 | struct rte_mbuf **pkts_burst, unsigned count) |
| 176 | { |
| 177 | uint16_t nb_kni_rx = 0, nb_rx; |
| 178 | |
| 179 | nb_kni_rx = rte_eth_rx_burst(kni_stat[port_id]->port_id, 0, pkts_burst, count); |
| 180 | |
| 181 | if (nb_kni_rx > 0) { |
| 182 | nb_rx = rte_eth_tx_burst(port_id, queue_id, pkts_burst, nb_kni_rx); |
| 183 | if (nb_rx < nb_kni_rx) { |
| 184 | uint16_t i; |
| 185 | for(i = nb_rx; i < nb_kni_rx; ++i) |
| 186 | rte_pktmbuf_free(pkts_burst[i]); |
| 187 | |
| 188 | kni_stat[port_id]->tx_dropped += (nb_kni_rx - nb_rx); |
| 189 | } |
| 190 | |
| 191 | kni_stat[port_id]->tx_packets += nb_rx; |
| 192 | } |
| 193 | return 0; |
| 194 | } |
| 195 | |
| 196 | static enum FilterReturn |
| 197 | protocol_filter_l4(uint16_t port, unsigned char *bitmap) |
no test coverage detected