> -----Original Message-----
> From: lng-odp [mailto:[email protected]] On Behalf Of ext
> Zoltan Kiss
> Sent: Friday, June 05, 2015 8:51 PM
> To: [email protected]
> Subject: [lng-odp] [API-NEXT PATCH v3 3/9] packet_io: release unsent
> packets after odp_pktio_send()
>
> Signed-off-by: Zoltan Kiss <[email protected]>
> ---
> example/packet/odp_pktio.c | 10 +++++++++-
> test/performance/odp_l2fwd.c | 12 ++++++++++--
> 2 files changed, 19 insertions(+), 3 deletions(-)
>
> diff --git a/example/packet/odp_pktio.c b/example/packet/odp_pktio.c
> index f08d9f4..0b4a8f1 100644
> --- a/example/packet/odp_pktio.c
> +++ b/example/packet/odp_pktio.c
> @@ -282,9 +282,17 @@ static void *pktio_ifburst_thread(void *arg)
> /* Drop packets with errors */
> pkts_ok = drop_err_pkts(pkt_tbl, pkts);
> if (pkts_ok > 0) {
> + int sent;
> +
> /* Swap Eth MACs and IP-addrs */
> swap_pkt_addrs(pkt_tbl, pkts_ok);
> - odp_pktio_send(pktio, pkt_tbl, pkts_ok);
> + sent = odp_pktio_send(pktio, pkt_tbl, pkts_ok);
> + if (odp_unlikely(sent < pkts_ok)) {
> + err_cnt += pkts_ok - sent;
> + do
> + odp_packet_free(pkt_tbl[sent]);
> + while (++sent < pkts_ok);
> + }
Instead of dropping right away, application could retry couple of times (to
demonstrate that congestion is part of normal operation).
-Petri
> }
>
> if (odp_unlikely(pkts_ok != pkts))
> diff --git a/test/performance/odp_l2fwd.c b/test/performance/odp_l2fwd.c
> index 5d4b833..dd0b4b1 100644
> --- a/test/performance/odp_l2fwd.c
> +++ b/test/performance/odp_l2fwd.c
> @@ -224,8 +224,16 @@ static void *pktio_ifburst_thread(void *arg)
>
> /* Drop packets with errors */
> pkts_ok = drop_err_pkts(pkt_tbl, pkts);
> - if (pkts_ok > 0)
> - odp_pktio_send(pktio_dst, pkt_tbl, pkts_ok);
> + if (pkts_ok > 0) {
> + int sent = odp_pktio_send(pktio_dst, pkt_tbl, pkts_ok);
> +
> + if (odp_unlikely(sent < pkts_ok)) {
> + stats->drops += pkts_ok - sent;
> + do
> + odp_packet_free(pkt_tbl[sent]);
> + while (++sent < pkts_ok);
> + }
> + }
>
> if (odp_unlikely(pkts_ok != pkts))
> stats->drops += pkts - pkts_ok;
> --
> 1.9.1
>
> _______________________________________________
> lng-odp mailing list
> [email protected]
> https://lists.linaro.org/mailman/listinfo/lng-odp
_______________________________________________
lng-odp mailing list
[email protected]
https://lists.linaro.org/mailman/listinfo/lng-odp