Matias Elo(matiaselo) replied on github web page: platform/linux-generic/pktio/loop.c @@ -177,13 +177,15 @@ static int loopback_send(pktio_entry_t *pktio_entry, int index ODP_UNUSED, int i; int ret; uint32_t bytes = 0; + uint32_t out_octets_tbl[len];
Comment: Will fix. > Bill Fischofer(Bill-Fischofer-Linaro) wrote: > The error bit simply says the packet was truncated to max length. Perhaps the > application is only interested in the first few bytes of a packet? >> Bill Fischofer(Bill-Fischofer-Linaro) wrote: >> `ring->frame_num = next_frame(first_frame_num + nb_tx - 1, frame_count);` is >> an alternative here. >>> Bill Fischofer(Bill-Fischofer-Linaro) wrote: >>> Since `ring->rd_num` is a power of two, is the concern here that the `%` >>> operator might result in a division if the compiler doesn't know that it's >>> a power of two? In that case: >>> ``` >>> return ++cur_frame & (frame_count - 1); >>> ``` >>> solves that problem and avoids conditional branching. >>>> Bill Fischofer(Bill-Fischofer-Linaro) wrote: >>>> If we're cleaning up, might as well delete that extraneous `+` in the >>>> above line: `TPACKET_ALIGNMENT + + (pz - 1)) & (-pz);` I'm surprised the >>>> compiler doesn't flag that since it's normally so picky about issuing >>>> warnings. >>>>> Bill Fischofer(Bill-Fischofer-Linaro) wrote: >>>>> Not sure I understand what `out_octets_tbl` is accumulating here. If I'm >>>>> sending three 100 byte packets this will set `out_octets_tbl[0]` to 100, >>>>> `out_octets_tbl[1]` to 200, and `out_octets_tbl[2]` to 300. >>>>>> Bill Fischofer(Bill-Fischofer-Linaro) wrote: >>>>>> Since you're doing miscellaneous cleanups anyway, perhaps changing `len` >>>>>> to `num` here should be considered? `len` is confusing since it doesn't >>>>>> represent packet length. >>>>>>> Matias Elo(matiaselo) wrote: >>>>>>> The odp_pktin_maxlen() API states: >>>>>>> > Maximum frame length in bytes that the packet IO interface can >>>>>>> > receive. >>>>>>> >>>>>>> I interpret this so that the application shouln't see packets which >>>>>>> exceed pktin max length. >>>>>>> >>>>>>>> muvarov wrote >>>>>>>> same here. >>>>>>>>> muvarov wrote >>>>>>>>> maybe to just set error bit and deliver this packet to application? https://github.com/Linaro/odp/pull/397#discussion_r162321610 updated_at 2018-01-18 12:00:17