Difference between revisions of "Unit ICMPv6"
From Ultibo.org
| Line 56: | Line 56: | ||
---- | ---- | ||
| − | '' | + | |
| + | '''ICMPv6 header''' | ||
| + | |||
| + | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;"> | ||
| + | <code>PICMP6Header = ^TICMP6Header;</code> | ||
| + | |||
| + | <code>TICMP6Header = packed record</code> | ||
| + | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;"> | ||
| + | {| class="wikitable" style="font-size: 14px; background: white;" | ||
| + | |- | ||
| + | |colspan="2"|Note: Some ICMPv6 definitions are in the Protocol or IPv6 modules | ||
| + | |- | ||
| + | | <code>ICMP6Type:Byte;</code> | ||
| + | | ICMP_UNREACH etc | ||
| + | |- | ||
| + | | <code>Code:Byte;</code> | ||
| + | | ICMP_UNREACH_NET,ICMP_UNREACH_PORT etc | ||
| + | |- | ||
| + | | <code>Checksum:Word;</code> | ||
| + | | 1s Compliment checksum of Structure | ||
| + | |- | ||
| + | | <code>CurrentHopLimit:Byte;</code> | ||
| + | | | ||
| + | |- | ||
| + | |} | ||
| + | </div></div> | ||
| + | |||
| + | '''ICMPv6 packet''' | ||
| + | |||
| + | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;"> | ||
| + | <code>PICMP6Packet = ^TICMP6Packet;</code> | ||
| + | |||
| + | <code>TICMP6Packet = record</code> | ||
| + | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;"> | ||
| + | {| class="wikitable" style="font-size: 14px; background: white;" | ||
| + | |- | ||
| + | |colspan="2"|Note: 8 Bytes (Used by ICMP6Buffer) | ||
| + | |- | ||
| + | | <code>Size:LongWord;</code> | ||
| + | | LongWord to keep size even | ||
| + | |- | ||
| + | | <code>Next:PICMP6Packet;</code> | ||
| + | | Followed by RemoteAddress (4 or 16 Bytes) | ||
| + | |- | ||
| + | |} | ||
| + | </div></div> | ||
| + | <br /> | ||
=== Class definitions === | === Class definitions === | ||
Revision as of 00:28, 20 January 2017
Return to Unit Reference
Contents
Description
Ultibo ICMPv6 (Internet Control Message Protocol version 6) unit
To be documented
Constants
ICMPv6 specific constants
ICMP6_PROTOCOL_* | Note: Some ICMPV6 definitions are in the Protocol or IPv6 modules | |
ICMP6_PROTOCOL_NAME = 'ICMPV6';
|
|
ICMPv6 constants
ICMP6_* ICMP6_TIMEOUT = 0;
|
Wait forever on a ICMP6 Read |
ICMP6_BUFFER_SIZE = 65536;
|
ICMP6 Receive Buffer Size |
ICMP6_HEADER_SIZE = 5;
|
SizeOf(TICMP6Header); |
ICMP6_PACKET_SIZE = 8;
|
SizeOf(TICMP6Packet) |
Type definitions
ICMPv6 header
PICMP6Header = ^TICMP6Header;
TICMP6Header = packed record
| Note: Some ICMPv6 definitions are in the Protocol or IPv6 modules | |
ICMP6Type:Byte;
|
ICMP_UNREACH etc |
Code:Byte;
|
ICMP_UNREACH_NET,ICMP_UNREACH_PORT etc |
Checksum:Word;
|
1s Compliment checksum of Structure |
CurrentHopLimit:Byte;
|
|
ICMPv6 packet
PICMP6Packet = ^TICMP6Packet;
TICMP6Packet = record
| Note: 8 Bytes (Used by ICMP6Buffer) | |
Size:LongWord;
|
LongWord to keep size even |
Next:PICMP6Packet;
|
Followed by RemoteAddress (4 or 16 Bytes) |
Class definitions
To be documented
Public variables
None defined
Function declarations
Initialization functions
procedure ICMP6Init;
Description: To be documented
| Note | None documented |
|---|
ICMPv6 functions
function CheckICMP6(AFamily:Word; ABuffer:Pointer):Boolean;
Description: Verify that the packet is a valid ICMP6 packet
| Buffer | The complete packet including Transport header |
|---|
function GetICMP6HeaderOffset(AFamily:Word; ABuffer:Pointer):Word;
Description: To be documented
| Buffer | The complete packet including Transport header |
|---|
function GetICMP6HeaderLength(AFamily:Word; ABuffer:Pointer):Word;
Description: To be documented
| Buffer | The complete packet including Transport header |
|---|
function GetICMP6DataOffset(AFamily:Word; ABuffer:Pointer):Word;
Description: To be documented
| Buffer | The complete packet including Transport header |
|---|
function GetICMP6DataLength(AFamily:Word; ABuffer:Pointer):Word;
Description: To be documented
| Buffer | The complete packet including Transport header |
|---|
function ChecksumICMP6(AFamily:Word; ABuffer:Pointer; AOffset,ALength:Word):Word;
Description: Checksum the ICMP6 Header on Send / Validate the Checksum on Receive
| Note | None documented |
|---|
Return to Unit Reference