mirror of https://gitee.com/openkylin/linux.git
6lowpan: introduce LOWPAN_IPHC_MAX_HC_BUF_LEN
This patch introduces the LOWPAN_IPHC_MAX_HC_BUF_LEN define which represent the worst-case supported IPHC buffer length. It's used to allocate the stack buffer space for creating the IPHC header. Signed-off-by: Alexander Aring <alex.aring@gmail.com> Acked-by: Jukka Rissanen <jukka.rissanen@linux.intel.com> Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
This commit is contained in:
parent
cefdb801c8
commit
bf513fd6fc
|
@ -64,12 +64,20 @@
|
|||
#define EUI64_ADDR_LEN 8
|
||||
|
||||
#define LOWPAN_NHC_MAX_ID_LEN 1
|
||||
/* Maximum next header compression length which we currently support inclusive
|
||||
* possible inline data.
|
||||
*/
|
||||
#define LOWPAN_NHC_MAX_HDR_LEN (sizeof(struct udphdr))
|
||||
/* Max IPHC Header len without IPv6 hdr specific inline data.
|
||||
* Useful for getting the "extra" bytes we need at worst case compression.
|
||||
*
|
||||
* LOWPAN_IPHC + CID + LOWPAN_NHC_MAX_ID_LEN
|
||||
*/
|
||||
#define LOWPAN_IPHC_MAX_HEADER_LEN (2 + 1 + LOWPAN_NHC_MAX_ID_LEN)
|
||||
/* Maximum worst case IPHC header buffer size */
|
||||
#define LOWPAN_IPHC_MAX_HC_BUF_LEN (sizeof(struct ipv6hdr) + \
|
||||
LOWPAN_IPHC_MAX_HEADER_LEN + \
|
||||
LOWPAN_NHC_MAX_HDR_LEN)
|
||||
|
||||
/*
|
||||
* ipv6 address based on mac
|
||||
|
|
|
@ -429,7 +429,7 @@ int lowpan_header_compress(struct sk_buff *skb, struct net_device *dev,
|
|||
{
|
||||
u8 tmp, iphc0, iphc1, *hc_ptr;
|
||||
struct ipv6hdr *hdr;
|
||||
u8 head[100] = {};
|
||||
u8 head[LOWPAN_IPHC_MAX_HC_BUF_LEN] = {};
|
||||
int ret, addr_type;
|
||||
|
||||
if (type != ETH_P_IPV6)
|
||||
|
|
Loading…
Reference in New Issue