LinuxKPI: skbuff: sort list header and add new (dummy) functions

While working on new and updates to drivers more skbuff changes
came up.  Sort out the list/prev/next header problem and add more
(so far dummy) functions needed.

MFC after:	1 week
This commit is contained in:
Bjoern A. Zeeb 2022-07-29 15:21:48 +00:00
parent 195733401f
commit 89c32dafa5
2 changed files with 80 additions and 8 deletions

View file

@ -124,11 +124,15 @@ struct skb_shared_info {
};
struct sk_buff {
/* XXX TODO */
/* struct sk_buff_head */
struct sk_buff *next;
struct sk_buff *prev;
int list; /* XXX TYPE */
/* XXX TODO */
union {
/* struct sk_buff_head */
struct {
struct sk_buff *next;
struct sk_buff *prev;
};
struct list_head list;
};
uint32_t _alloc_len; /* Length of alloc data-buf. XXX-BZ give up for truesize? */
uint32_t len; /* ? */
uint32_t data_len; /* ? If we have frags? */
@ -266,7 +270,7 @@ skb_reserve(struct sk_buff *skb, size_t len)
* front to copy data in (manually).
*/
static inline void *
skb_push(struct sk_buff *skb, size_t len)
__skb_push(struct sk_buff *skb, size_t len)
{
SKB_TRACE(skb);
KASSERT(((skb->data - len) >= skb->head), ("%s: skb %p (data %p - "
@ -276,6 +280,14 @@ skb_push(struct sk_buff *skb, size_t len)
return (skb->data);
}
static inline void *
skb_push(struct sk_buff *skb, size_t len)
{
SKB_TRACE(skb);
return (__skb_push(skb, len));
}
/*
* Length of the data on the skb (without any frags)???
*/
@ -324,7 +336,7 @@ skb_headroom(struct sk_buff *skb)
* the end to copy data in (manually). See also skb_put_data() below.
*/
static inline void *
skb_put(struct sk_buff *skb, size_t len)
__skb_put(struct sk_buff *skb, size_t len)
{
void *s;
@ -347,6 +359,14 @@ skb_put(struct sk_buff *skb, size_t len)
return (s);
}
static inline void *
skb_put(struct sk_buff *skb, size_t len)
{
SKB_TRACE(skb);
return (__skb_put(skb, len));
}
/* skb_put() + copying data in. */
static inline void *
skb_put_data(struct sk_buff *skb, const void *buf, size_t len)
@ -749,6 +769,13 @@ skb_frag_address(const skb_frag_t *frag)
return (NULL);
}
static inline void
skb_free_frag(void *frag)
{
SKB_TODO();
}
static inline struct sk_buff *
skb_gso_segment(struct sk_buff *skb, netdev_features_t netdev_flags)
{
@ -938,4 +965,49 @@ skb_copy_from_linear_data(const struct sk_buff *skb, void *dst, size_t len)
memcpy(dst, skb->data, len);
}
static inline struct sk_buff *
build_skb(void *data, unsigned int fragsz)
{
SKB_TODO();
return (NULL);
}
static inline int
skb_pad(struct sk_buff *skb, int pad)
{
SKB_TRACE(skb);
SKB_TODO();
return (-1);
}
static inline void
skb_list_del_init(struct sk_buff *skb)
{
SKB_TRACE(skb);
SKB_TODO();
}
static inline void
napi_consume_skb(struct sk_buff *skb, int budget)
{
SKB_TRACE(skb);
SKB_TODO();
}
static inline bool
skb_linearize(struct sk_buff *skb)
{
SKB_TRACE(skb);
SKB_TODO();
return (false);
}
#define SKB_WITH_OVERHEAD(_s) \
(_s) - ALIGN(sizeof(struct skb_shared_info), CACHE_LINE_SIZE)
#endif /* _LINUXKPI_LINUX_SKBUFF_H */

View file

@ -258,7 +258,7 @@ DB_SHOW_COMMAND(skb, db_show_skb)
db_printf("skb %p\n", skb);
db_printf("\tnext %p prev %p\n", skb->next, skb->prev);
db_printf("\tlist %d\n", skb->list);
db_printf("\tlist %p\n", &skb->list);
db_printf("\t_alloc_len %u len %u data_len %u truesize %u mac_len %u\n",
skb->_alloc_len, skb->len, skb->data_len, skb->truesize,
skb->mac_len);