You need to check where p->payload is pointing at.

The first nibble of the first byte of an IPv6 packet is "6" which specifies that it is an IPv6 (and not IPv4) packet.

If that value is not 6 then there is a problem with the packet format.

Check to see if it is still pointing at the Ethernet header.

In that case, make sure you have defined LWIP_ETHERNET and that your netif has either NETIF_FLAG_ETHARP | NETIF_FLAG_ETHERNET or both.

Then it will go through ARP or ND6 protocol first.

Cheers
Ivan


Date: Tue, 11 Nov 2014 05:40:13 -0700 (MST)
From: mfkexpress <[email protected]>
To: [email protected]
Subject: [lwip-users] oxff==0x60 condition do not match for received
        IP6 packet in tcipip_thread
Message-ID: <[email protected]>
Content-Type: text/plain; charset=us-ascii

Hi,

I'm using lan9221 card in my device and trying to implement IPv6 in it.

I can see that IPv6 packets are received on my device but ip6_input() is not being called in tcpip_thread() because following condition do not satisfy in
my case:

#if LWIP_ETHERNET
      if (msg->msg.inp.netif->flags & (NETIF_FLAG_ETHARP |
NETIF_FLAG_ETHERNET)) {
        ethernet_input(msg->msg.inp.p, msg->msg.inp.netif);
      } else
#endif /* LWIP_ETHERNET */
#if LWIP_IPV6
if ((*((unsigned char *)(msg->msg.inp.p->payload)) & *0xf0) == 0x60)*
{
          ip6_input(msg->msg.inp.p, msg->msg.inp.netif);
      } else
#endif /* LWIP_IPV6 */
      {
        ip_input(msg->msg.inp.p, msg->msg.inp.netif);
      }

Can anyone please tell me why this condition do not match though my input
packets are IPv6 only and thay contains field "60" also.

Any help would be greatly appreciated.

Thanks & regards,
Mohsin


_______________________________________________
lwip-users mailing list
[email protected]
https://lists.nongnu.org/mailman/listinfo/lwip-users

Reply via email to