Difference between revisions of "Unit ARP"

From Ultibo.org
Jump to: navigation, search
Line 161: Line 161:
 
----
 
----
  
''To be documented''
+
 
 +
'''ARP transport adapter'''
 +
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
 
 +
<code>TARPTransportAdapter = class(TTransportAdapter)</code>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>constructor Create;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
|colspan="2"|<div style="font-family: monospace,courier;">'''private'''</div>
 +
|-
 +
| <code>UseCount:Integer;</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
 
 +
'''ARP transport'''
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
 
 +
<code> TARPTransport = class(TNetworkTransport)</code>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>constructor Create(AManager:TTransportManager; const AName:String);</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
| <code>destructor Destroy; override;</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|<div style="font-family: monospace,courier;">'''private'''</div>
 +
|-
 +
| <code>FAddresses:TNetworkList;</code>
 +
| &nbsp;
 +
|-
 +
| <code>FAddressAdd:TEventHandle;</code>
 +
| &nbsp;
 +
|-
 +
| <code>FAddressRemove:TEventHandle;</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>function PacketHandler(AHandle:THandle; ASource,ADest,APacket:Pointer; ASize:Integer; ABroadcast:Boolean):Boolean;</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>function SendARPRequest(AAdapter:TARPTransportAdapter; ASource:TARPAddressEntry; const ATarget:TInAddr):Boolean;</code>
 +
| &nbsp;
 +
|-
 +
| <code>function SendARPReply(AAdapter:TARPTransportAdapter; ASource,ATarget:TARPAddressEntry):Boolean;</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>function SendINARPRequest(AAdapter:TARPTransportAdapter; ASource:TARPAddressEntry; const ATarget:THardwareAddress):Boolean;</code>
 +
| &nbsp;
 +
|-
 +
| <code>function SendINARPReply(AAdapter:TARPTransportAdapter; ASource,ATarget:TARPAddressEntry):Boolean;</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|<div style="font-family: monospace,courier;">'''protected'''</div>
 +
|-
 +
| <code>function GetAddressByAddress(const AAddress:TInAddr; AAdapter:TNetworkAdapter; ALock:Boolean; AState:LongWord):TARPAddressEntry;</code>
 +
| &nbsp;
 +
|-
 +
| <code>function GetAddressByHardware(const AHardware:THardwareAddress; AAdapter:TNetworkAdapter; ALock:Boolean; AState:LongWord):TARPAddressEntry;</code>
 +
| &nbsp;
 +
|-
 +
| <code>function GetAddressByNext(APrevious:TARPAddressEntry; ALock,AUnlock:Boolean; AState:LongWord):TARPAddressEntry;</code>
 +
| &nbsp;
 +
|-
 +
| <code>function AddAddress(const AAddress:TInAddr; const AHardware:THardwareAddress; AAdapter:TNetworkAdapter; AType:Word; ALock:Boolean; AState:LongWord):TARPAddressEntry;</code>
 +
| &nbsp;
 +
|-
 +
| <code>function RemoveAddress(const AAddress:TInAddr; AAdapter:TNetworkAdapter):Boolean;</code>
 +
| &nbsp;
 +
|-
 +
| <code>procedure FlushAddresses(All:Boolean);</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
 +
|-
 +
| <code>function AddAdapter(AAdapter:TNetworkAdapter; AConfigType:Word; AAddress,ANetmask,AGateway,AServer:Pointer):Boolean; override;</code>
 +
| &nbsp;
 +
|-
 +
| <code>function RemoveAdapter(AAdapter:TNetworkAdapter):Boolean; override;</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>function StartTransport:Boolean; override;</code>
 +
| &nbsp;
 +
|-
 +
| <code>function StopTransport:Boolean; override;</code>
 +
| &nbsp;
 +
|-
 +
| <code>function ProcessTransport:Boolean; override;</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>function BindTransport(AAdapter:TNetworkAdapter):Boolean; override;</code>
 +
| &nbsp;
 +
|-
 +
| <code>function UnbindTransport(AAdapter:TNetworkAdapter):Boolean; override;</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>function LoadAddress(AAdapter:TNetworkAdapter; const AAddress:TInAddr; const AHardware:THardwareAddress; AType:Word):Boolean;</code>
 +
| &nbsp;
 +
|-
 +
| <code>function UnloadAddress(AAdapter:TNetworkAdapter; const AAddress:TInAddr):Boolean;</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>function ResolveAddress(AAdapter:TNetworkAdapter; const ASource,AAddress:TInAddr; var AHardware:THardwareAddress):Boolean;</code>
 +
| &nbsp;
 +
|-
 +
| <code>function ResolveHardware(AAdapter:TNetworkAdapter; const ASource:TInAddr; const AHardware:THardwareAddress; var AAddress:TInAddr):Boolean;</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>function ConfirmAddress(AAdapter:TNetworkAdapter; const ASource,AAddress:TInAddr):Boolean;</code>
 +
| &nbsp;
 +
|-
 +
| <code>function AdvertiseAddress(AAdapter:TNetworkAdapter; const ASource:TInAddr):Boolean;</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>function CompareDefault(const AAddress:TInAddr):Boolean;</code>
 +
| &nbsp;
 +
|-
 +
| <code>function CompareAddress(const AAddress1,AAddress2:TInAddr):Boolean;</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
 
  
 
=== Public variables ===
 
=== Public variables ===

Revision as of 03:51, 8 March 2017

Return to Unit Reference


Description


Ultibo ARP (Address Resolution Protocol) unit

To be documented

Constants



[Expand]
ARP specific constants ARP_TRANSPORT_*, RARP_TRANSPORT_*


[Expand]
ARP and RARP constants MIN_*, MAX_*, ARP_*, RARP_*


[Expand]
ARP and RARP messages ARP_*, RARP_*, INARP_*


Type definitions



ARP specific types

[Expand]

PARPHeader = ^TARPHeader;

TARPHeader = packed record

RARP specific types

[Expand]

PRARPHeader = ^TRARPHeader;

TRARPHeader = TARPHeader;


Class definitions



ARP transport adapter

[Expand]

TARPTransportAdapter = class(TTransportAdapter)

ARP transport

[Expand]

TARPTransport = class(TNetworkTransport)


Public variables


None defined

Function declarations



Initialization functions

[Expand]
procedure ARPInit;
Description: To be documented


ARP functions

[Expand]
function CheckARP(ABuffer:Pointer):Boolean;
Description: Verify that the packet is a valid ARP packet


[Expand]
function CheckRARP(ABuffer:Pointer):Boolean;
Description: Verify that the packet is a valid RARP packet


Return to Unit Reference