From c0aef7dd6b5bfe9f5f2ac90c1c35b0c4597eff88 Mon Sep 17 00:00:00 2001 From: Sylvain Rochet Date: Sat, 12 Apr 2014 01:23:57 +0200 Subject: [PATCH] PPP, VJ compression enabled, fixed IP forward from PPP to Ethernet by allocating a PBUF_LINK instead of a PBUF_RAW if IP forwarding is enabled --- src/netif/ppp/vj.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/netif/ppp/vj.c b/src/netif/ppp/vj.c index 792e16c9..5c195909 100644 --- a/src/netif/ppp/vj.c +++ b/src/netif/ppp/vj.c @@ -593,7 +593,15 @@ vj_uncompress_tcp(struct pbuf **nb, struct vjcompress *comp) struct pbuf *np, *q; u8_t *bufptr; +#if IP_FORWARD + /* If IP forwarding is enabled we are using a PBUF_LINK packet type so + * the packet is being allocated with enough header space to be + * forwarded (to Ethernet for example). + */ + np = pbuf_alloc(PBUF_LINK, n0->len + cs->cs_hlen, PBUF_POOL); +#else /* IP_FORWARD */ np = pbuf_alloc(PBUF_RAW, n0->len + cs->cs_hlen, PBUF_POOL); +#endif /* IP_FORWARD */ if(!np) { PPPDEBUG(LOG_WARNING, ("vj_uncompress_tcp: realign failed\n")); goto bad;