On 17 January 2015 at 23:22, Taras Kondratiuk <[email protected]> wrote: > On 01/17/2015 01:29 PM, Jerin Jacob wrote: >> odp_packet_seg_t is an opaque type, based on the implementation, the return >> value of odp_packet_last_seg can be changed after headroom/tailroom push/pull >> operation. > > No. By definition headroom/tailroom push/pull operations don't change > segmentation. So the last segment must remain the same. Don't we make segmentation visible to allow ODP implementations to use non-consecutive buffers to implement the buffer or packet the application is working with? An implementation might need to add another segment for a push operation e.g. if there is not space enough in the current head or tail segment. And it might be useful for ODP implementations to remove unused segments (for pull operations), some HW might not like to operate on empty segments (or indeed any segment with a small number of bytes of data).
So I can't understand how ODP can define that push and pull operations shall *not* affect the underlying segmentation of the packet. > >> >> Signed-off-by: Jerin Jacob <[email protected]> >> --- >> test/validation/buffer/odp_packet_test.c | 3 +++ >> 1 file changed, 3 insertions(+) >> >> diff --git a/test/validation/buffer/odp_packet_test.c >> b/test/validation/buffer/odp_packet_test.c >> index b6fa028..7c2b169 100644 >> --- a/test/validation/buffer/odp_packet_test.c >> +++ b/test/validation/buffer/odp_packet_test.c >> @@ -289,6 +289,9 @@ static void _verify_tailroom_shift(odp_packet_t pkt, >> tail = odp_packet_pull_tail(pkt, -shift); >> } >> >> + seg = odp_packet_last_seg(pkt); >> + CU_ASSERT(seg != ODP_SEGMENT_INVALID); >> + >> CU_ASSERT(tail != NULL); >> CU_ASSERT(odp_packet_seg_data_len(pkt, seg) == seg_data_len + shift); >> CU_ASSERT(odp_packet_len(pkt) == pkt_data_len + shift); >> > > > -- > Taras Kondratiuk > > _______________________________________________ > lng-odp mailing list > [email protected] > http://lists.linaro.org/mailman/listinfo/lng-odp _______________________________________________ lng-odp mailing list [email protected] http://lists.linaro.org/mailman/listinfo/lng-odp
