Difference between revisions of "Unit Protocol"

From Ultibo.org
Jump to: navigation, search
Line 207: Line 207:
 
----
 
----
  
''To be documented''
+
 
 +
'''Protocol statistics'''
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
<code>PProtocolStatistics = ^TProtocolStatistics;</code>
 +
 
 +
<code>TProtocolStatistics = record</code>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>PacketsIn:Int64; </code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
| <code>PacketsOut:Int64;</code>
 +
| &nbsp;
 +
|-
 +
| <code>BytesIn:Int64;</code>
 +
| &nbsp;
 +
|-
 +
| <code>BytesOut:Int64;</code>
 +
| &nbsp;
 +
|-
 +
| <code>ErrorsIn:Int64;</code>
 +
| &nbsp;
 +
|-
 +
| <code>ErrorsOut:Int64;</code>
 +
| &nbsp;
 +
|-
 +
| <code>PacketsLost:Int64;</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
 +
'''Socket timer item'''
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
<code>PSocketTimerItem = ^TSocketTimerItem;</code>
 +
 
 +
<code>TSocketTimerItem = record</code>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>Key:Integer;</code>
 +
| Ordering key for timer list
 +
|-
 +
| <code>Socket:TObject;</code>
 +
| The socket referenced by this timer list item
 +
|-
 +
| <code>Prev:PSocketTimerItem;</code>
 +
| Previous item in timer list
 +
|-
 +
| <code>Next:PSocketTimerItem;</code>
 +
| Next item in timer list
 +
|-
 +
|}
 +
</div></div>
 +
<br />
  
 
=== Class definitions ===
 
=== Class definitions ===

Revision as of 03:10, 25 January 2017

Return to Unit Reference


Description


Ultibo Network Protocol interface unit

To be documented

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 constants SOCKET_TIMER_*
SOCKET_TIMER_KEY_NONE = TIMER_KEY_NONE;  
SOCKET_TIMER_KEY_MAX = TIMER_KEY_MAX;  
SOCKET_TIMER_KEY_MIN = TIMER_KEY_MIN;  


ICMP header type constants 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 constants 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 constants 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
Socket:TObject; The socket referenced by this timer list item
Prev:PSocketTimerItem; Previous item in timer list
Next:PSocketTimerItem; Next item in timer list


Class definitions


To be documented

Public variables


None defined

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