Difference between revisions of "Unit Protocol"
From Ultibo.org
Line 5: | Line 5: | ||
---- | ---- | ||
− | '''Ultibo Network Protocol | + | '''Ultibo Network Protocol Interface unit''' |
− | + | ||
− | + | ||
=== Constants === | === Constants === |
Latest revision as of 05:29, 31 August 2021
Return to Unit Reference
Contents
Description
Ultibo Network Protocol Interface unit
Constants
Protocol specific constants
PROTOCOL_*
PROTOCOL_THREAD_NAME = 'Network Protocol';
|
Thread name for Network protocol threads |
PROTOCOL_THREAD_PRIORITY = THREAD_PRIORITY_HIGHER;
|
Thread priority for Network protocol threads |
Protocol timer key values
SOCKET_TIMER_KEY_*
SOCKET_TIMER_KEY_NONE = TIMER_KEY_NONE;
|
|
SOCKET_TIMER_KEY_MAX = TIMER_KEY_MAX;
|
|
SOCKET_TIMER_KEY_MIN = TIMER_KEY_MIN;
|
Protocol timer flag values
SOCKET_TIMER_FLAG_*
SOCKET_TIMER_FLAG_NONE = $00000000;
|
|
SOCKET_TIMER_FLAG_ACTIVE = $00000001;
|
The socket timer item is active in a timer |
SOCKET_TIMER_FLAG_DYNAMIC = $00000002;
|
The socket timer item was allocated dynamically |
ICMP header type
ICMP_*
ICMP_ECHOREPLY = 0;
|
echo reply |
ICMP_UNREACH = 3;
|
dest unreachable |
ICMP_SOURCEQUENCH = 4;
|
packet lost, slow down |
ICMP_REDIRECT = 5;
|
shorter route |
ICMP_ECHO = 8;
|
echo service |
ICMP_ROUTERADVERT = 9;
|
router advertisement |
ICMP_ROUTERSOLICIT = 10;
|
router solicitation |
ICMP_TIMXCEED = 11;
|
time exceeded |
ICMP_PARAMPROB = 12;
|
ip header bad |
ICMP_TSTAMP = 13;
|
timestamp request |
ICMP_TSTAMPREPLY = 14;
|
timestamp reply |
ICMP_IREQ = 15;
|
information request |
ICMP_IREQREPLY = 16;
|
information reply |
ICMP_MASKREQ = 17;
|
address mask request |
ICMP_MASKREPLY = 18;
|
address mask reply |
ICMP header code
ICMP_UNREACH_*
ICMP_UNREACH_NET = 0;
|
bad net |
ICMP_UNREACH_HOST = 1;
|
bad host |
ICMP_UNREACH_PROTOCOL = 2;
|
bad protocol |
ICMP_UNREACH_PORT = 3;
|
bad port |
ICMP_UNREACH_NEEDFRAG = 4;
|
IP_DF caused drop |
ICMP_UNREACH_SRCFAIL = 5;
|
src route failed |
ICMP_UNREACH_NET_UNKNOWN = 6;
|
unknown net |
ICMP_UNREACH_HOST_UNKNOWN = 7;
|
unknown host |
ICMP_UNREACH_ISOLATED = 8;
|
src host isolated |
ICMP_UNREACH_NET_PROHIB = 9;
|
prohibited access |
ICMP_UNREACH_HOST_PROHIB = 10;
|
ditto |
ICMP_UNREACH_TOSNET = 11;
|
bad tos for net |
ICMP_UNREACH_TOSHOST = 12;
|
bad tos for host |
ICMP_UNREACH_FILTER_PROHIB = 13;
|
admin prohib |
ICMP_UNREACH_HOST_PRECEDENCE = 14;
|
host prec vio. |
ICMP_UNREACH_PRECEDENCE_CUTOFF = 15;
|
prec cutoff |
ICMP_REDIRECT_NET = 0;
|
for network |
ICMP_REDIRECT_HOST = 1;
|
for host |
ICMP_REDIRECT_TOSNET = 2;
|
for tos and net |
ICMP_REDIRECT_TOSHOST = 3;
|
for tos and host |
ICMP_TIMXCEED_INTRANS = 0;
|
ttl=0 in transit |
ICMP_TIMXCEED_REASS = 1;
|
ttl=0 in reassembly |
ICMP_PARAMPROB_OPTABSENT = 1;
|
req. opt. absent |
IGMP header type
IGMP_*
IGMP_VERSION = 2;
|
|
IGMP_QUERY = $0011;
|
|
IGMP_REPORTV1 = $0012;
|
|
IGMP_REPORTV2 = $0016;
|
|
IGMP_LEAVE = $0017;
|
Type definitions
Protocol statistics
PProtocolStatistics = ^TProtocolStatistics;
TProtocolStatistics = record
PacketsIn:Int64;
|
|
PacketsOut:Int64;
|
|
BytesIn:Int64;
|
|
BytesOut:Int64;
|
|
ErrorsIn:Int64;
|
|
ErrorsOut:Int64;
|
|
PacketsLost:Int64;
|
Socket timer item
PSocketTimerItem = ^TSocketTimerItem;
TSocketTimerItem = record
Key:Integer;
|
Ordering key for timer list |
Flags:LongWord;
|
Flags for this timer item |
Socket:TObject;
|
The socket referenced by this timer list item |
Prev:PSocketTimerItem;
|
Previous item in timer list |
Next:PSocketTimerItem;
|
Next item in timer list |
Protocol callback
TProtocolCallback = function(AProtocol:TNetworkProtocol):Boolean of object;
|
Filter callback
TFilterCallback = function(AFilter:TNetworkFilter):Boolean of object;
|
Configuration callback
TConfigCallback = function(AConfig:TNetworkConfig):Boolean of object;
|
Class definitions
Protocol specific classes
TProtocolManager = class(TObject)
|
TProtocolTransport = class(TListObject)
|
TNetworkProtocol = class(TListObject)
|
TSocketTimer = class(TObject)
|
TSocketThread = class(TThread)
|
TProtocolPort = class(TListObject)
|
TProtocolSocket = class(TTransportSocket)
|
TProtocolState = class(TObject)
|
TProtocolOptions = class(TObject)
|
TFilterTransport = class(TListObject)
|
TNetworkFilter = class(TListObject)
|
TConfigTransport = class(TListObject)
|
TNetworkConfig = class(TListObject)
|
TNetworkClient = class(TListObject)
|
Public variables
Protocol specific variables
ProtocolManager:TProtocolManager;
|
Function declarations
Initialization functions
procedure ProtocolInit;
Description: To be documented
Note | None documented |
---|
function ProtocolStart:LongWord;
Description: To be documented
Note | None documented |
---|
function ProtocolStop:LongWord;
Description: To be documented
Note | None documented |
---|
Protocol helper functions
procedure ProtocolCheckTimer(Data:Pointer);
Description: To be documented
Note | None documented |
---|
Return to Unit Reference