Index: os/lwip/src/core/ipv6/nd6.c =================================================================== --- os/lwip/src/core/ipv6/nd6.c (revision 8271) +++ os/lwip/src/core/ipv6/nd6.c (working copy) @@ -462,7 +462,7 @@ mtu_opt = (struct mtu_option *)buffer; if (htonl(mtu_opt->mtu) >= 1280) { #if LWIP_ND6_ALLOW_RA_UPDATES - inp->mtu = (u16_t)htonl(mtu_opt->mtu); + inp->mtu_ipv6 = (u16_t)htonl(mtu_opt->mtu); #endif /* LWIP_ND6_ALLOW_RA_UPDATES */ } break; @@ -1523,7 +1523,7 @@ if (ip6_addr_islinklocal(ip6addr) || nd6_is_prefix_in_netif(ip6addr, netif)) { /* Destination in local link. */ - destination_cache[nd6_cached_destination_index].pmtu = netif->mtu; + destination_cache[nd6_cached_destination_index].pmtu = netif->mtu_ipv6; ip6_addr_copy(destination_cache[nd6_cached_destination_index].next_hop_addr, destination_cache[nd6_cached_destination_index].destination_addr); } else { /* We need to select a router. */ @@ -1788,7 +1788,7 @@ } if (netif != NULL) { - return netif->mtu; + return netif->mtu_ipv6; } return 1280; /* Minimum MTU */ Index: os/lwip/src/include/lwip/netif.h =================================================================== --- os/lwip/src/include/lwip/netif.h (revision 8271) +++ os/lwip/src/include/lwip/netif.h (working copy) @@ -261,6 +261,7 @@ #endif /* LWIP_CHECKSUM_CTRL_PER_NETIF*/ /** maximum transfer unit (in bytes) */ u16_t mtu; + u16_t mtu_ipv6; /** number of bytes used in hwaddr */ u8_t hwaddr_len; /** link level hardware address of this interface */