On 12/12/24 11:06, Ilya Maximets wrote:
> On 12/12/24 09:02, Ales Musil wrote:
>>
>>
>> On Wed, Dec 11, 2024 at 6:28 PM Ilya Maximets <[email protected] 
>> <mailto:[email protected]>> wrote:
>>
>>     On 12/3/24 13:21, Ales Musil wrote:
>>     > Add helper to truncate the buffer to certain size which might be
>>     > useful if some earlier part of the buffer can be reused multiple
>>     > times without copying the whole buffer.
>>     >
>>     > Signed-off-by: Ales Musil <[email protected] 
>> <mailto:[email protected]>>
>>     > ---
>>     > v2: Rebase on top of current main.
>>     >     Add comment what the function does and test case.
>>     >     Fix the wrong move of data pointer.
>>     > ---
>>     >  include/openvswitch/ofpbuf.h | 7 +++++++
>>     >  tests/test-ofpbuf.c          | 9 +++++++++
>>     >  2 files changed, 16 insertions(+)
>>     >
>>     > diff --git a/include/openvswitch/ofpbuf.h 
>> b/include/openvswitch/ofpbuf.h
>>     > index 1fc4a3a7f..f16e3d697 100644
>>     > --- a/include/openvswitch/ofpbuf.h
>>     > +++ b/include/openvswitch/ofpbuf.h
>>     > @@ -292,6 +292,13 @@ static inline bool ofpbuf_oversized(const struct 
>> ofpbuf *ofpacts)
>>     >      return (char *)ofpbuf_tail(ofpacts) - (char *)ofpacts->header > 
>> UINT16_MAX;
>>     >  }
>>     > 
>>     > +/* Removes 'size' bytes from the tail end of 'b'. */
>>     > +static inline void ofpbuf_truncate(struct ofpbuf *b, size_t size)
>>     > +{
>>     > +    ovs_assert(b->size >= size);
>>     > +    b->size = b->size - size;
>>     > +}
>>
>>     Hi, Ales.  I'm just curious if you actually need a 'truncate by'
>>     behavior as opposed to 'truncate to'?  Most of other stuff that
>>     involves truncation in OVS uses 'truncate to' semantics, i.e. you
>>     store the size, then do something, then truncate to the original
>>     size.  For example, the truncation of a packet on output or a
>>     file truncation with ftruncate, etc.
>>
>>     Would the 'truncate to' semantic fit better in your use case?
>>
>>
>> Hi Ilya,
>>
>> either of those would work and I don't have a strong preference. If you feel 
>> like
>> I should change this to the 'truncate to' semantics I will send v3 that does 
>> exactly that.
> 
> I think, "truncate to" would better align with other APIs, so
> let's do that.  With that, you may also actually use it in OVS
> in ofpacts_parse() function.

Note: there are many other size manipulations in the same file,
but they do not clearly fit into "truncate" semantics, IMO.  But
the one in ofpacts_parse() does.

> 
> Best regards, Ilya Maximets.
> 
>>  
>>
>>
>>     Best regards, Ilya Maximets.
>>
>>
>> Thanks,
>> Ales
> 

_______________________________________________
dev mailing list
[email protected]
https://mail.openvswitch.org/mailman/listinfo/ovs-dev

Reply via email to