X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;f=Modules%2FIPStack%2Fipv6.h;h=d2e4f28dd70d22ae920004f2d89139248d6f3197;hb=2f9415b7b804073b0365781ad4f05a7306b6c890;hp=a98561db42f51e8526a09cd64c1736ebe6d13b4c;hpb=6c5a509b5e14e097ca537c539bc9babe3b8f0c4c;p=tpg%2Facess2.git diff --git a/Modules/IPStack/ipv6.h b/Modules/IPStack/ipv6.h index a98561db..d2e4f28d 100644 --- a/Modules/IPStack/ipv6.h +++ b/Modules/IPStack/ipv6.h @@ -11,18 +11,32 @@ typedef struct sIPv6Header tIPv6Header; struct sIPv6Header { - struct { - unsigned Version: 4; - unsigned TrafficClass: 8; - unsigned FlowLabel: 20; - }; + #if 0 + // High 4: Version + // Next 8: Traffic Class + // Low 20: Flow Label + Uint32 Head; + #else + union { + Uint32 Head; // Allow a ntohl to happen + struct { + unsigned Version: 4; + unsigned TrafficClass: 8; + unsigned FlowLabel: 20; + } PACKED; + } PACKED; + #endif Uint16 PayloadLength; Uint8 NextHeader; // Type of payload data Uint8 HopLimit; tIPv6 Source; tIPv6 Destination; + char Data[]; }; #define IPV6_ETHERNET_ID 0x86DD +extern int IPv6_RegisterCallback(int ID, tIPCallback Callback); +extern int IPv6_SendPacket(tInterface *Iface, tIPv6 Destination, int Protocol, size_t Length, const void *Data); + #endif