On 20 Mar 2021, at 4:42, David Ahern wrote:
On 3/19/21 3:47 PM, Lorenzo Bianconi wrote:
diff --git a/include/net/xdp.h b/include/net/xdp.h
index 19cd6642e087..e47d9e8da547 100644
--- a/include/net/xdp.h
+++ b/include/net/xdp.h
@@ -75,6 +75,10 @@ struct xdp_buff {
struct xdp_txq_info *txq;
u32 frame_sz:31; /* frame size to deduce data_hard_end/reserved
tailroom*/
u32 mb:1; /* xdp non-linear buffer */
+ u32 frame_length; /* Total frame length across all buffers. Only
needs
+ * to be updated by helper functions, as it will be
+ * initialized at XDP program start.
+ */
};
static __always_inline void
If you do another version of this set ...
I think you only need 17-bits for the frame length (size is always <=
128kB). It would be helpful for extensions to xdp if you annotated how
many bits are really needed here.
Guess this can be done, but I did not too avoid the use of constants to
do the BPF extraction.
Here is an example of what might need to be added, as adding them before
made people unhappy ;)
https://elixir.bootlin.com/linux/v5.12-rc4/source/include/linux/skbuff.h#L801