Difference between revisions of "Unit IGMP"
From Ultibo.org
Line 6: | Line 6: | ||
'''Ultibo IGMP (Internet Group Management Protocol) unit''' | '''Ultibo IGMP (Internet Group Management Protocol) unit''' | ||
− | |||
− | |||
=== Constants === | === Constants === |
Latest revision as of 05:24, 31 August 2021
Return to Unit Reference
Contents
Description
Ultibo IGMP (Internet Group Management Protocol) unit
Constants
IGMP protocol
IGMP_PROTOCOL_*
Note: Some IGMP definitions are in the Protocol or IP modules | |
IGMP_PROTOCOL_NAME = 'IGMP';
|
IGMP specific constants
IGMP_*
IGMP_TIMEOUT = 0;
|
Wait forever on a IGMP Read |
IGMP_BUFFER_SIZE = 65536;
|
IGMP Receive Buffer Size |
IGMP_HEADER_SIZE = 8;
|
SizeOf(TIGMPHeader); |
IGMP_PACKET_SIZE = 8;
|
SizeOf(TIGMPPacket) |
IGMP_QUERY_TIMEOUT = 5000;
|
|
IGMP_REPORT_TIMEOUT = 5000;
|
|
IGMP_TRANSMIT_COUNT = 3;
|
Type definitions
IGMP header
PIGMPHeader = ^TIGMPHeader;
TIGMPHeader = packed record
IGMPType:Byte;
|
type of IGMP message |
RespTime:Byte;
|
Query only otherwise 0 (Always zero in Version 1 (Assume 100)) |
Checksum:Word;
|
1s Compliment IP-style checksum |
Address:TInAddr;
|
group address being reported or queried (zero for "General" queries) |
IGMP packet
PIGMPPacket = ^TIGMPPacket;
TIGMPPacket = record
Note: 8 Bytes (Used by IGMPBuffer) | |
Size:LongWord;
|
LongWord to keep size even |
Next:PIGMPPacket;
|
Followed by RemoteAddress (4 or 16 Bytes) |
Class definitions
IGMP specific classes
TIGMPProtocolTransport = class(TProtocolTransport)
|
TIGMPProtocol = class(TNetworkProtocol)
|
TIGMPGroup = class(TListObject)
|
TIGMPSocket = class(TProtocolSocket)
|
TIGMPBuffer = class(TSocketBuffer)
|
Public variables
None defined
Function declarations
Initialization functions
procedure IGMPInit;
Description: To be documented
Note | None documented |
---|
IGMP functions
function CheckIGMP(AFamily:Word; ABuffer:Pointer):Boolean;
Description: Verify that the packet is a valid IGMP packet
Buffer | The complete packet including Transport header |
---|
function GetIGMPHeaderOffset(AFamily:Word; ABuffer:Pointer):Word;
Description: To be documented
Buffer | The complete packet including Transport header |
---|
function GetIGMPHeaderLength(AFamily:Word; ABuffer:Pointer):Word;
Description: To be documented
Buffer | The complete packet including Transport header |
---|
function GetIGMPDataOffset(AFamily:Word; ABuffer:Pointer):Word;
Description: To be documented
Buffer | The complete packet including Transport header |
---|
function GetIGMPDataLength(AFamily:Word; ABuffer:Pointer):Word;
Description: To be documented
Buffer | The complete packet including Transport header |
---|
function ChecksumIGMP(AFamily:Word; ABuffer:Pointer; AOffset,ALength:Word):Word;
Description: Checksum the IGMP Header on Send/Validate the Checksum on Receive
Note | Checksum is calculated on the whole packet (Header and Data) |
---|
Return to Unit Reference