Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit bf513fd6 authored by Alexander Aring's avatar Alexander Aring Committed by Marcel Holtmann
Browse files

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: default avatarAlexander Aring <alex.aring@gmail.com>
Acked-by: default avatarJukka Rissanen <jukka.rissanen@linux.intel.com>
Signed-off-by: default avatarMarcel Holtmann <marcel@holtmann.org>
parent cefdb801
Loading
Loading
Loading
Loading
+8 −0
Original line number Diff line number Diff line
@@ -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
+1 −1
Original line number Diff line number Diff line
@@ -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)