Difference between revisions of "Unit IP"
From Ultibo.org
(6 intermediate revisions by the same user not shown) | |||
Line 6: | Line 6: | ||
'''Ultibo IP (Internet Protocol) unit''' | '''Ultibo IP (Internet Protocol) unit''' | ||
− | |||
− | |||
=== Constants === | === Constants === | ||
Line 25: | Line 23: | ||
<br /> | <br /> | ||
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;"> | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;"> | ||
− | <div style="font-size: 14px; padding-left: 12px;">'''IP | + | <div style="font-size: 14px; padding-left: 12px;">'''IP size''' <code> IP_*_SIZE </code></div> |
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;"> | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;"> | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
Line 63: | Line 61: | ||
<br /> | <br /> | ||
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;"> | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;"> | ||
− | <div style="font-size: 14px; padding-left: 12px;">'''IP header flags / fragment offset | + | <div style="font-size: 14px; padding-left: 12px;">'''IP header flags/fragment offset''' <code> IP_* </code></div> |
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;"> | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;"> | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
Line 83: | Line 81: | ||
<br /> | <br /> | ||
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;"> | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;"> | ||
− | <div style="font-size: 14px; padding-left: 12px;">'''IP header | + | <div style="font-size: 14px; padding-left: 12px;">'''IP header options''' <code> IPOPT_* </code></div> |
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;"> | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;"> | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
Line 106: | Line 104: | ||
|- | |- | ||
| <code>IPOPT_SATID = 136;</code> | | <code>IPOPT_SATID = 136;</code> | ||
− | | satnet | + | | satnet Id |
|- | |- | ||
| <code>IPOPT_SSRR = 137;</code> | | <code>IPOPT_SSRR = 137;</code> | ||
Line 118: | Line 116: | ||
<br /> | <br /> | ||
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;"> | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;"> | ||
− | <div style="font-size: 14px; padding-left: 12px;">'''IP offset | + | <div style="font-size: 14px; padding-left: 12px;">'''IP offset options''' <code> IPOPT_OFFSET* </code></div> |
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;"> | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;"> | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
Line 142: | Line 140: | ||
<br /> | <br /> | ||
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;"> | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;"> | ||
− | <div style="font-size: 14px; padding-left: 12px;">'''IP TS flag | + | <div style="font-size: 14px; padding-left: 12px;">'''IP TS flag options''' <code> IPOPT_TS_* </code></div> |
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;"> | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;"> | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
Line 163: | Line 161: | ||
<br /> | <br /> | ||
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;"> | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;"> | ||
− | <div style="font-size: 14px; padding-left: 12px;">'''IP security flag | + | <div style="font-size: 14px; padding-left: 12px;">'''IP security flag''' <code> IPOPT_SECUR_* </code></div> |
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;"> | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;"> | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
Line 196: | Line 194: | ||
<br /> | <br /> | ||
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;"> | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;"> | ||
− | <div style="font-size: 14px; padding-left: 12px;">'''IP type of service | + | <div style="font-size: 14px; padding-left: 12px;">'''IP type of service''' <code> IPTOS_* </code></div> |
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;"> | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;"> | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
Line 247: | Line 245: | ||
|- | |- | ||
| <code>TTL:Byte;</code> | | <code>TTL:Byte;</code> | ||
− | | Time to Live Seconds / Hops | + | | Time to Live Seconds/Hops |
|- | |- | ||
| <code>Protocol:Byte;</code> | | <code>Protocol:Byte;</code> | ||
Line 440: | Line 438: | ||
---- | ---- | ||
− | |||
+ | '''IP specific classes''' | ||
+ | |||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | [[TIPBuffer|<code>TIPBuffer = class(TTransportBufferEx)</code>]] | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | [[TIPTransportAdapter|<code>TIPTransportAdapter = class(TTransportAdapter)</code>]] | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | [[TIPTransportBinding|<code>TIPTransportBinding = class(TTransportBinding)</code>]] | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | [[TIPTransportProtocol|<code>TIPTransportProtocol = class(TTransportProtocol)</code>]] | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | [[TIPTransportFilter|<code>TIPTransportFilter = class(TTransportFilter)</code>]] | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | [[TIPTransportConfig|<code>TIPTransportConfig = class(TTransportConfig)</code>]] | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | [[TIPTransport|<code>TIPTransport = class(TNetworkTransport)</code>]] | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | [[TIPState|<code>TIPState = class(TTransportState)</code>]] | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | [[TIPOptions|<code>TIPOptions = class(TTransportOptions)</code>]] | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | [[TIPHostEntry|<code>TIPHostEntry = class(THostEntry)</code>]] | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | [[TIPRouteEntry|<code>TIPRouteEntry = class(TRouteEntry)</code>]] | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | [[TIPAddressEntry|<code>TIPAddressEntry = class(TAddressEntry)</code>]] | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | [[TIPNetworkEntry|<code>TIPNetworkEntry = class(TNetworkEntry)</code>]] | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | [[TIPServEntry|<code>TIPServEntry = class(TServEntry)</code>]] | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | [[TIPProtoEntry|<code>TIPProtoEntry = class(TProtoEntry)</code>]] | ||
+ | |- | ||
+ | |} | ||
+ | <br /> | ||
=== Public variables === | === Public variables === | ||
---- | ---- | ||
Line 459: | Line 534: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! Note |
| None documented | | None documented | ||
|- | |- | ||
Line 474: | Line 549: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! Buffer |
| Complete packet without Adapter header | | Complete packet without Adapter header | ||
|- | |- | ||
Line 486: | Line 561: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! Buffer |
| Complete packet including Transport header | | Complete packet including Transport header | ||
|- | |- | ||
Line 498: | Line 573: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! Buffer |
| Complete packet including Transport header | | Complete packet including Transport header | ||
|- | |- | ||
Line 510: | Line 585: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! Buffer |
| Complete packet including Transport header | | Complete packet including Transport header | ||
|- | |- | ||
Line 522: | Line 597: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! Buffer |
| Complete packet including Transport header | | Complete packet including Transport header | ||
|- | |- | ||
Line 534: | Line 609: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! Buffer |
| Complete packet including Transport header | | Complete packet including Transport header | ||
|- | |- | ||
Line 546: | Line 621: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! Buffer |
| Complete packet including Transport header | | Complete packet including Transport header | ||
|- | |- | ||
Line 558: | Line 633: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! Buffer |
| Complete packet including Transport header | | Complete packet including Transport header | ||
|- | |- |
Latest revision as of 05:25, 31 August 2021
Return to Unit Reference
Contents
[hide]Description
Ultibo IP (Internet Protocol) unit
Constants
[Expand]
IP specific constants
IP_TRANSPORT_NAME*
[Expand]
IP size
IP_*_SIZE
[Expand]
IP header flags/fragment offset
IP_*
[Expand]
IP header options
IPOPT_*
[Expand]
IP offset options
IPOPT_OFFSET*
[Expand]
IP TS flag options
IPOPT_TS_*
[Expand]
IP security flag
IPOPT_SECUR_*
[Expand]
IP type of service
IPTOS_*
Type definitions
IP header
IP timestamp address
IP timestamp
IP pseudo
IP fragment
IP packet
Class definitions
IP specific classes
TIPBuffer = class(TTransportBufferEx)
|
TIPTransportAdapter = class(TTransportAdapter)
|
TIPTransportBinding = class(TTransportBinding)
|
TIPTransportProtocol = class(TTransportProtocol)
|
TIPTransportFilter = class(TTransportFilter)
|
TIPTransportConfig = class(TTransportConfig)
|
TIPTransport = class(TNetworkTransport)
|
TIPState = class(TTransportState)
|
TIPOptions = class(TTransportOptions)
|
TIPHostEntry = class(THostEntry)
|
TIPRouteEntry = class(TRouteEntry)
|
TIPAddressEntry = class(TAddressEntry)
|
TIPNetworkEntry = class(TNetworkEntry)
|
TIPServEntry = class(TServEntry)
|
TIPProtoEntry = class(TProtoEntry)
|
Public variables
None defined
Function declarations
Initialization functions
IP functions
[Expand]
function CheckIP(ABuffer:Pointer):Boolean;
Description: Verify that the packet is a valid IP packet
[Expand]
function GetIPHeaderOffset(ABuffer:Pointer):Word;
Description: Return Start of the IP Header (Start of Packet)
[Expand]
function GetIPHeaderLength(ABuffer:Pointer):Word;
Description: Return Size of IP Header (Including Options)
[Expand]
function GetIPOptionsLength(ABuffer:Pointer):Word;
Description: Return Size of IP Options (Header - IP_HEADER_SIZE)
[Expand]
function GetIPDataOffset(ABuffer:Pointer):Word;
Description: Return Start of IP Packet Data (Length of IP Header)
[Expand]
function GetIPDataLength(ABuffer:Pointer):Word;
Description: Return Size of IP Packet Data (IP TotalLength - IP Header)
[Expand]
function ChecksumIPRecv(ABuffer:Pointer; AOffset,ALength:Word):Word;
Description: Validate the IP Header and Options Checksum on Receive
[Expand]
function ChecksumIPSend(AHeader,AOptions:Pointer; ALength:Word):Word;
Description: Checksum the IP Header and Options on Send
Return to Unit Reference