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]>
> ---
> 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?

Best regards, Ilya Maximets.
_______________________________________________
dev mailing list
[email protected]
https://mail.openvswitch.org/mailman/listinfo/ovs-dev

Reply via email to