X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;ds=sidebyside;f=Modules%2FIPStack%2Fipv6.c;h=aac33dea7ad22cf9ddca5024ac76e09577c43788;hb=0c1bf884877e4b89eb224e91627508d42ca70974;hp=16c9bbdc5994f2a5da607304cfb58a9b87ecff9c;hpb=04b368645c34cc3853fc13f93e33ac7878be8479;p=tpg%2Facess2.git diff --git a/Modules/IPStack/ipv6.c b/Modules/IPStack/ipv6.c index 16c9bbdc..aac33dea 100644 --- a/Modules/IPStack/ipv6.c +++ b/Modules/IPStack/ipv6.c @@ -17,7 +17,7 @@ tInterface *IPv6_GetInterface(tAdapter *Adapter, tIPv6 Address, int Broadcast); // === CODE === /** - * \fn int IPv6_Initialise() + * \brief Initialise the IPv6 handling code */ int IPv6_Initialise() { @@ -28,18 +28,44 @@ int IPv6_Initialise() /** * \fn void IPv6_int_GetPacket(tInterface *Interface, tMacAddr From, int Length, void *Buffer) * \brief Process an IPv6 Packet + * \param Interface Input interface + * \param From Source MAC address + * \param Length Packet length + * \param Buffer Packet data */ void IPv6_int_GetPacket(tAdapter *Interface, tMacAddr From, int Length, void *Buffer) { tIPv6Header *hdr = Buffer; if(Length < sizeof(tIPv6Header)) return; - if(hdr->Version != 6) return; + hdr->Head = ntohl(hdr->Head); + + //if( ((hdr->Head >> (20+8)) & 0xF) != 6 ) + if( hdr->Version != 6 ) + return; + + Log_Debug("IPv6", "hdr = {"); + //Log_Debug("IPv6", " .Version = %i", (hdr->Head >> (20+8)) & 0xF ); + //Log_Debug("IPv6", " .TrafficClass = %i", (hdr->Head >> (20)) & 0xFF ); + //Log_Debug("IPv6", " .FlowLabel = %i", hdr->Head & 0xFFFFF ); + Log_Debug("IPv6", " .Version = %i", hdr->Version ); + Log_Debug("IPv6", " .TrafficClass = %i", hdr->TrafficClass ); + Log_Debug("IPv6", " .FlowLabel = %i", hdr->FlowLabel ); + Log_Debug("IPv6", " .PayloadLength = 0x%04x", ntohs(hdr->PayloadLength) ); + Log_Debug("IPv6", " .NextHeader = 0x%02x", hdr->NextHeader ); + Log_Debug("IPv6", " .HopLimit = 0x%02x", hdr->HopLimit ); + Log_Debug("IPv6", " .Source = %04x:%04x:%04x:%04x:%04x:%04x:%04x:%04x", hdr->Source ); + Log_Debug("IPv6", " .Destination = %04x:%04x:%04x:%04x:%04x:%04x:%04x:%04x", hdr->Destination ); + Log_Debug("IPv6", "}"); + } /** * \fn tInterface *IPv6_GetInterface(tAdapter *Adapter, tIPv6 Address) * \brief Searches an adapter for a matching address + * \param Adapter Source adapter + * \param Address Destination Address + * \param Broadcast Allow broadcast? */ tInterface *IPv6_GetInterface(tAdapter *Adapter, tIPv6 Address, int Broadcast) {