On 9 February 2017 at 21:02, Savolainen, Petri (Nokia - FI/Espoo) <petri.savolai...@nokia-bell-labs.com> wrote: > Hi, > > I still think that packet ref API should be defined so that an implementation > may fall back to doing packet copy instead of reference to shared data (if it > simply cannot handle packets by reference). Now after implementing packet ref > API as copy (in about 90 lines), only issues are with tests like this one ... > > ref = odp_packet_ref(pkt, 100); > odp_packet_free(ref); > > /* Verify that pkt no longer has a ref */ > CU_ASSERT(odp_packet_has_ref(pkt) == 0); > > ... since free(ref) would need to update also 'pkt'. > > I think we should lesser the synchronization guarantees of > odp_packet_has_ref(), so that it returns if a packet "may have" still have > multiple references. And same thing for odp_packet_unshared_len() (may have > shared bytes). If application needs to be sure, it would need to be assured > some other way (e.g. calculating itself how many references was created / > freed). Most application would not be interested on the book keeping, but on > the possibility of creating and using references.
+1. This change is reasonable and would be beneficial to implementation also. Regards, Bala > > -Petri > > > > > > >