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