#include <net/6lowpan.h>
#include <net/ndisc.h>
#include <net/ieee802154_netdev.h>
#include <net/mac802154.h>
#include "6lowpan_i.h"
#define LOWPAN_FRAG1_HEAD_SIZE …
#define LOWPAN_FRAGN_HEAD_SIZE …
struct lowpan_addr_info { … };
static inline struct
lowpan_addr_info *lowpan_skb_priv(const struct sk_buff *skb)
{ … }
int lowpan_header_create(struct sk_buff *skb, struct net_device *ldev,
unsigned short type, const void *daddr,
const void *saddr, unsigned int len)
{ … }
static struct sk_buff*
lowpan_alloc_frag(struct sk_buff *skb, int size,
const struct ieee802154_hdr *master_hdr, bool frag1)
{ … }
static int
lowpan_xmit_fragment(struct sk_buff *skb, const struct ieee802154_hdr *wpan_hdr,
u8 *frag_hdr, int frag_hdrlen,
int offset, int len, bool frag1)
{ … }
static int
lowpan_xmit_fragmented(struct sk_buff *skb, struct net_device *ldev,
const struct ieee802154_hdr *wpan_hdr, u16 dgram_size,
u16 dgram_offset)
{ … }
static int lowpan_header(struct sk_buff *skb, struct net_device *ldev,
u16 *dgram_size, u16 *dgram_offset)
{ … }
netdev_tx_t lowpan_xmit(struct sk_buff *skb, struct net_device *ldev)
{ … }