IPV6_PACKET Structure
C
typedef struct _IPV6_PACKET {
struct _IPV6_PACKET * next;
unsigned short payloadLen;
unsigned short headerLen;
unsigned short upperLayerHeaderLen;
unsigned short upperLayerChecksumOffset;
unsigned char upperLayerHeaderType;
union {
struct {
unsigned char reserved : 3;
unsigned char useUnspecAddr : 1;
unsigned char sourceSpecified : 1;
unsigned char queued : 1;
unsigned char addressType : 2;
}
unsigned char val;
} flags;
TCPIP_MAC_ADDR remoteMACAddr;
IPV6_PACKET_ACK_FNC ackFnc;
TCPIP_MAC_PACKET_ACK_FUNC macAckFnc;
void* ackParam;
void* clientData;
void * neighbor;
unsigned short offsetInSegment;
uint32_t queuedPacketTimeout;
TCPIP_NET_HANDLE netIfH;
IPV6_HEADER ipv6Header;
IPV6_DATA_SEGMENT_HEADER payload;
} IPV6_PACKET;
Description
Structure: IPV6_PACKET.
IPv6 packets are queued for future transmission.queuedPacketTimeout is used to time-out IPv6 queued packets.
Members
| Members | Description |
|---|---|
| next | Next packet in a queue. |
| payloadLen | Amount of data in payload buffer. |
| headerLen | Total header length (IP header + IPv6 extension headers). |
| upperLayerHeaderLen | Total length of the upper layer header. |
| upperLayerChecksumOffset | Offset of the upper layer checksum. |
| upperLayerHeaderType | Type definition for the upper-layer header type. |
| useUnspecAddr: 1; | This packet should use the unspecified address. |
| sourceSpecified: 1; | The upper layer or application layer specified a source address. |
| queued : 1; | Packet has been queued. |
| addressType : 2; | IP_ADDRESS_TYPE_IPV6 or IP_ADDRESS_TYPE_IPV4. |
| remoteMACAddr | The packet's remote MAC address. |
| ackFnc | Function to be called when IPv6 is done with the packet. |
| macAckFnc | Function to be called when MAC is done with a TX packet. |
| ackParam | Parameter to be used. |
| clientData | Optional packet client data. |
| neighbor | The neighbor that the message was received from. |
| offsetInSegment | Offset used for storing fragment transmission information. |
| queuedPacketTimeout | Time out for IPv6 packets which are queued. |
| netIfH | Packet network interface. |
| ipv6Header | IPv6 header definition. |
| payload | IPv6 data segment payload. |
Remarks
For IPv6 queuing the time out has to be 0. The queue is processed separately by the NDP.IPV6_PACKET_ACK_FNC() is called after the successful removal and inclusion of the packet.
