6lowpan: introduce lowpan_fetch_skb function
This patch adds a helper function to parse the ipv6 header to a 6lowpan header in stream. This function checks first if we can pull data with a specific length from a skb. If this seems to be okay, we copy skb data to a destination pointer and run skb_pull. Signed-off-by: Alexander Aring <alex.aring@gmail.com> Reviewed-by: Werner Almesberger <werner@almesberger.net> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
Родитель
31afe1f73e
Коммит
4666669fc3
|
@ -230,4 +230,16 @@
|
|||
dest = 16 bit inline */
|
||||
#define LOWPAN_NHC_UDP_CS_P_11 0xF3 /* source & dest = 0xF0B + 4bit inline */
|
||||
|
||||
static inline bool lowpan_fetch_skb(struct sk_buff *skb,
|
||||
void *data, const unsigned int len)
|
||||
{
|
||||
if (unlikely(!pskb_may_pull(skb, len)))
|
||||
return true;
|
||||
|
||||
skb_copy_from_linear_data(skb, data, len);
|
||||
skb_pull(skb, len);
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
#endif /* __6LOWPAN_H__ */
|
||||
|
|
Загрузка…
Ссылка в новой задаче