Difference between revisions of "Unit DHCP"

From Ultibo.org
Jump to: navigation, search
(Created page with "Return to Unit Reference === Description === ---- ''To be documented'' === Constants === ---- ''To be documented'' === Type definitions === ---- ''To...")
 
 
(16 intermediate revisions by the same user not shown)
Line 5: Line 5:
 
----
 
----
  
''To be documented''
+
'''Ultibo DHCP/BOOTP Protocol Client unit'''
  
 
=== Constants ===
 
=== Constants ===
 
----
 
----
  
''To be documented''
+
 
 +
<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;">'''DHCP specific constants''' <code> BOOTP_* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>BOOTP_DELAY = 1000;</code>
 +
| (Previously 0)
 +
|-
 +
| <code>BOOTP_TIMEOUT = 8000;</code>
 +
| (Previously 4000) We wait for 8 seconds for a BOOTP reply
 +
|-
 +
| <code>BOOTP_RETRIES = 6;</code>
 +
| (Previously 4) Try the request 6 times
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>BOOTP_MIN_DELAY = 0;</code>
 +
| &nbsp;
 +
|-
 +
| <code>BOOTP_MAX_DELAY = 10000;</code>
 +
| &nbsp;
 +
|-
 +
| <code>BOOTP_MIN_TIMEOUT = 500;</code>
 +
| &nbsp;
 +
|-
 +
| <code>BOOTP_MAX_TIMEOUT = 15000;</code>
 +
| &nbsp;
 +
|-
 +
| <code>BOOTP_MIN_RETRIES = 1;</code>
 +
| &nbsp;
 +
|-
 +
| <code>BOOTP_MAX_RETRIES = 100;</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>DHCP_DELAY = 1000;</code>
 +
| (Previously 0)
 +
|-
 +
| <code>DHCP_TIMEOUT = 8000;</code>
 +
| (Previously 4000) We wait for 8 seconds for a DHCP reply
 +
|-
 +
| <code>DHCP_RETRIES = 6;</code>
 +
| (Previously 4) Try the request 6 times
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>DHCP_MIN_DELAY = 0;</code>
 +
| &nbsp;
 +
|-
 +
| <code>DHCP_MAX_DELAY = 10000;</code>
 +
| &nbsp;
 +
|-
 +
| <code>DHCP_MIN_TIMEOUT = 500;</code>
 +
| &nbsp;
 +
|-
 +
| <code>DHCP_MAX_TIMEOUT = 15000;</code>
 +
| &nbsp;
 +
|-
 +
| <code>DHCP_MIN_RETRIES = 1;</code>
 +
| &nbsp;
 +
|-
 +
| <code>DHCP_MAX_RETRIES = 100;</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>BOOTP_VENDOR_SIZE = 64;</code>
 +
| Size of the Vendor area
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>DHCP_OPTIONS_SIZE = 312;</code>
 +
| Size of the Options area
 +
|-
 +
| <code>DHCP_MESSAGE_SIZE = 576;</code>
 +
| Size of the max message
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<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;">'''BOOTP/DHCP request''' <code> BOOTP_REQUEST* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>BOOTP_REQUEST = 1;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
| <code>BOOTP_REPLY = 2;</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<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;">'''DHCP message''' <code> DHCP_* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>DHCP_DISCOVER = 1;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
| <code>DHCP_OFFER = 2;</code>
 +
| &nbsp;
 +
|-
 +
| <code>DHCP_REQUEST = 3;</code>
 +
| &nbsp;
 +
|-
 +
| <code>DHCP_DECLINE = 4;</code>
 +
| &nbsp;
 +
|-
 +
| <code>DHCP_ACK = 5;</code>
 +
| &nbsp;
 +
|-
 +
| <code>DHCP_NAK = 6;</code>
 +
| &nbsp;
 +
|-
 +
| <code>DHCP_RELEASE = 7;</code>
 +
| &nbsp;
 +
|-
 +
| <code>DHCP_INFORM = 8;</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>DHCP_RENEWAL_TO = 1;</code>
 +
| &nbsp;
 +
|-
 +
| <code>DHCP_REBIND_TO = 2;</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<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;">'''BOOTP/DHCP options'''</div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>PAD_OPT = 0;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
| <code>END_OPT = 255;</code>
 +
| &nbsp;
 +
|-
 +
| <code>SUBNET_MASK = 1;</code>
 +
| &nbsp;
 +
|-
 +
| <code>TIME_OFFSET = 2;</code>
 +
| &nbsp;
 +
|-
 +
| <code>ROUTERS_ON_SNET = 3;</code>
 +
| &nbsp;
 +
|-
 +
| <code>TIME_SRV = 4;</code>
 +
| &nbsp;
 +
|-
 +
| <code>NAME_SRV = 5;</code>
 +
| &nbsp;
 +
|-
 +
| <code>DNS_SRV = 6;</code>
 +
| &nbsp;
 +
|-
 +
| <code>LOG_SRV = 7;</code>
 +
| &nbsp;
 +
|-
 +
| <code>COOKIE_SRV = 8;</code>
 +
| &nbsp;
 +
|-
 +
| <code>LPR_SRV = 9;</code>
 +
| &nbsp;
 +
|-
 +
| <code>IMPRESS_SRV = 10;</code>
 +
| &nbsp;
 +
|-
 +
| <code>RES_LOCATION_SRV = 11;</code>
 +
| &nbsp;
 +
|-
 +
| <code>HOST_NAME = 12;</code>
 +
| &nbsp;
 +
|-
 +
| <code>BOOT_FSIZE = 13;</code>
 +
| &nbsp;
 +
|-
 +
| <code>MERIT_DUMPFILE = 14;</code>
 +
| &nbsp;
 +
|-
 +
| <code>DOMAIN_NAME = 15;</code>
 +
| &nbsp;
 +
|-
 +
| <code>SWAP_SRV = 16;</code>
 +
| &nbsp;
 +
|-
 +
| <code>ROOT_PATH = 17;</code>
 +
| &nbsp;
 +
|-
 +
| <code>EXTENTIONS_PATH = 18;</code>
 +
| &nbsp;
 +
|-
 +
| <code>IP_FORWARDING = 19;</code>
 +
| &nbsp;
 +
|-
 +
| <code>NON_LOCAL_SRC_ROUTE = 20;</code>
 +
| &nbsp;
 +
|-
 +
| <code>POLICY_FILTER = 21;</code>
 +
| &nbsp;
 +
|-
 +
| <code>MAX_DGRAM_REASM_SIZE = 22;</code>
 +
| &nbsp;
 +
|-
 +
| <code>IP_DEFAULT_TTL = 23;</code>
 +
| &nbsp;
 +
|-
 +
| <code>PATH_MTU_AGING_TIMEOUT = 24;</code>
 +
| &nbsp;
 +
|-
 +
| <code>PATH_MTU_PLATEAU_TABLE = 25;</code>
 +
| &nbsp;
 +
|-
 +
| <code>IF_MTU = 26;</code>
 +
| &nbsp;
 +
|-
 +
| <code>ALL_SUBNETS_LOCAL = 27;</code>
 +
| &nbsp;
 +
|-
 +
| <code>BROADCAST_ADDR = 28;</code>
 +
| &nbsp;
 +
|-
 +
| <code>PERFORM_MASK_DISCOVERY = 29;</code>
 +
| &nbsp;
 +
|-
 +
| <code>MASK_SUPPLIER = 30;</code>
 +
| &nbsp;
 +
|-
 +
| <code>PERFORM_ROUTER_DISCOVERY = 31;</code>
 +
| &nbsp;
 +
|-
 +
| <code>ROUTER_SOLICITATION_ADDR = 32;</code>
 +
| &nbsp;
 +
|-
 +
| <code>STATIC_ROUTE = 33;</code>
 +
| &nbsp;
 +
|-
 +
| <code>TRAILER_ENCAPSULATION = 34;</code>
 +
| &nbsp;
 +
|-
 +
| <code>ARP_CACHE_TIMEOUT = 35;</code>
 +
| &nbsp;
 +
|-
 +
| <code>ETHERNET_ENCAPSULATION = 36;</code>
 +
| &nbsp;
 +
|-
 +
| <code>TCP_DEFAULT_TTL = 37;</code>
 +
| &nbsp;
 +
|-
 +
| <code>TCP_KEEPALIVE_INTERVAL = 38;</code>
 +
| &nbsp;
 +
|-
 +
| <code>TCP_KEEPALIVE_GARBAGE = 39;</code>
 +
| &nbsp;
 +
|-
 +
| <code>NIS_DOMAIN_NAME = 40;</code>
 +
| &nbsp;
 +
|-
 +
| <code>NIS_SRVS = 41;</code>
 +
| &nbsp;
 +
|-
 +
| <code>NTP_SRVS = 42;</code>
 +
| &nbsp;
 +
|-
 +
| <code>VENDOR_SPECIFIC_INFO = 43;</code>
 +
| &nbsp;
 +
|-
 +
| <code>NBIOS_NAME_SRV = 44;</code>
 +
| &nbsp;
 +
|-
 +
| <code>NBIOS_DGRAM_DIST_SRV = 45;</code>
 +
| &nbsp;
 +
|-
 +
| <code>NBIOS_NODE_TYPE = 46;</code>
 +
| &nbsp;
 +
|-
 +
| <code>NBIOS_SCOPE = 47;</code>
 +
| &nbsp;
 +
|-
 +
| <code>XFONT_SRV = 48;</code>
 +
| &nbsp;
 +
|-
 +
| <code>XDISPLAY_MANAGER = 49;</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|''DHCP Options''
 +
|-
 +
| <code>DHCP_REQUESTED_IP_ADDR = 50;</code>
 +
| &nbsp;
 +
|-
 +
| <code>DHCP_IP_ADDR_LEASE_TIME = 51;</code>
 +
| &nbsp;
 +
|-
 +
| <code>DHCP_OPT_OVERLOAD = 52;</code>
 +
| &nbsp;
 +
|-
 +
| <code>DHCP_MSG_TYPE = 53;</code>
 +
| &nbsp;
 +
|-
 +
| <code>DHCP_SRV_IDENTIFIER = 54;</code>
 +
| &nbsp;
 +
|-
 +
| <code>DHCP_PARAM_REQUEST = 55;</code>
 +
| &nbsp;
 +
|-
 +
| <code>DHCP_MSG = 56;</code>
 +
| &nbsp;
 +
|-
 +
| <code>DHCP_MAX_MSG_SIZE = 57;</code>
 +
| &nbsp;
 +
|-
 +
| <code>DHCP_T1_VALUE = 58;</code>
 +
| &nbsp;
 +
|-
 +
| <code>DHCP_T2_VALUE = 59;</code>
 +
| &nbsp;
 +
|-
 +
| <code>DHCP_CLASS_ID = 60;</code>
 +
| &nbsp;
 +
|-
 +
| <code>DHCP_CLIENT_ID = 61;</code>
 +
| &nbsp;
 +
|-
 +
| <code>DHCP_NIS_DOMAIN_OPT = 64;</code>
 +
| &nbsp;
 +
|-
 +
| <code>DHCP_NIS_SRV_OPT = 65;</code>
 +
| &nbsp;
 +
|-
 +
| <code>DHCP_TFTP_SERVER = 66;</code>
 +
| &nbsp;
 +
|-
 +
| <code>DHCP_BOOT_FILENAME = 67;</code>
 +
| &nbsp;
 +
|-
 +
| <code>DHCP_MOBIP_HOME_AGENTS = 68;</code>
 +
| &nbsp;
 +
|-
 +
| <code>DHCP_SMTP_SRVS = 69;</code>
 +
| &nbsp;
 +
|-
 +
| <code>DHCP_POP3_SRVS = 70;</code>
 +
| &nbsp;
 +
|-
 +
| <code>DHCP_NNTP_SRVS = 71;</code>
 +
| &nbsp;
 +
|-
 +
| <code>DHCP_WWW_SRVS = 72;</code>
 +
| &nbsp;
 +
|-
 +
| <code>DHCP_FINGER_SRVS = 73;</code>
 +
| &nbsp;
 +
|-
 +
| <code>DHCP_IRC_SRVS = 74;</code>
 +
| &nbsp;
 +
|-
 +
| <code>DHCP_STREET_TALK_SRVS = 75;</code>
 +
| &nbsp;
 +
|-
 +
| <code>DHCP_STDA_SRVS = 76;</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<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;">'''DHCP flag''' <code> DHCP_FLAG_* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>DHCP_FLAG_BROADCAST = $8000;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<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;">'''ARP configuration''' <code> ARP_CONFIG_* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>ARP_CONFIG_START = $C0A86401;</code>
 +
| 192.168.100.1
 +
|-
 +
| <code>ARP_CONFIG_STOP = $C0A864FE;</code>
 +
| 192.168.100.254
 +
|-
 +
|}
 +
</div></div>
 +
<br />
  
 
=== Type definitions ===
 
=== Type definitions ===
 
----
 
----
  
''To be documented''
+
 
 +
'''DHCP specific types'''
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
<code>PBOOTPHeader = ^TBOOTPHeader;</code>
 +
 
 +
<code>TBOOTPHeader = packed record</code>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>Opcode:Byte;</code>
 +
| packet op code/message type
 +
|-
 +
| <code>HardwareType:Byte;</code>
 +
| hardware address type, 1 = 10 mb ethernet
 +
|-
 +
| <code>HardwareLength:Byte;</code>
 +
| hardware address len, eg '6' for 10mb eth
 +
|-
 +
| <code>Hops:Byte;</code>
 +
| client sets to zero, optionally used by gateways in cross-gateway booting
 +
|-
 +
| <code>Identifier:LongWord;</code>
 +
| transaction Id, a random number
 +
|-
 +
| <code>Seconds:Word;</code>
 +
| filled in by client, seconds elapsed since client started trying to boot
 +
|-
 +
| <code>Reserved:Word;</code>
 +
| &nbsp;
 +
|-
 +
| <code>ClientIP:TInAddr;</code>
 +
| client IP address filled in by client if known
 +
|-
 +
| <code>YourIP:TInAddr;</code>
 +
| 'your' (client) IP address filled by server if client doesn't know
 +
|-
 +
| <code>ServerIP:TInAddr;</code>
 +
| server IP address returned in bootreply
 +
|-
 +
| <code>GatewayIP:TInAddr;</code>
 +
| gateway IP address, used in optional cross-gateway booting
 +
|-
 +
| <code>ClientHardware:array[0..15] of Byte;</code>
 +
| client hardware address, filled by client
 +
|-
 +
| <code>ClientHardware:THardwareAddress;</code>
 +
| client hardware address, filled by client
 +
|-
 +
| <code>DummyData:array[0..9] of Byte;</code>
 +
| dummy to fill out remaining bytes of above
 +
|-
 +
| <code>ServerName:array[0..63] of Byte;</code>
 +
| optional server host name, null terminated
 +
|-
 +
| <code>FileName:array[0..127] of Byte;</code>
 +
| boot file name, null terminated string 'generic' name or null in bootrequest, fully qualified directory-path name in bootreply
 +
|-
 +
| <code>VendorData:array[0..63] of Byte;</code>
 +
| optional vendor-specific area
 +
|-
 +
| <code>VendorData:array[0..BOOTP_VENDOR_SIZE - 1] of Byte;</code>
 +
| optional vendor-specific area
 +
|-
 +
|}
 +
</div></div>
 +
 +
'''DHCP header'''
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
<code>PDHCPHeader = ^TDHCPHeader;</code>
 +
 
 +
<code>TDHCPHeader = packed record</code>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>Opcode:Byte;</code>
 +
| packet op code/message type
 +
|-
 +
| <code>HardwareType:Byte;</code>
 +
| hardware address type, 1 = 10 mb ethernet
 +
|-
 +
| <code>HardwareLength:Byte;</code>
 +
| hardware address len, eg '6' for 10mb eth
 +
|-
 +
| <code>Hops:Byte;</code>
 +
| client sets to zero, optionally used by gateways in cross-gateway booting
 +
|-
 +
| <code>Identifier:LongWord;</code>
 +
| transaction Id, a random number
 +
|-
 +
| <code>Seconds:Word;</code>
 +
| filled in by client, seconds elapsed since client started trying to boot
 +
|-
 +
| <code>Flags:Word;</code>
 +
| &nbsp;
 +
|-
 +
| <code>ClientIP:TInAddr;</code>
 +
| client IP address filled in by client if known
 +
|-
 +
| <code>YourIP:TInAddr;</code>
 +
| 'your' (client) IP address filled by server if client doesn't know
 +
|-
 +
| <code>ServerIP:TInAddr;</code>
 +
| server IP address returned in bootreply
 +
|-
 +
| <code>GatewayIP:TInAddr;</code>
 +
| gateway IP address, used in optional cross-gateway booting
 +
|-
 +
| <code>ClientHardware:array[0..15] of Byte;</code>
 +
| client hardware address, filled by client
 +
|-
 +
| <code>ClientHardware:THardwareAddress;</code>
 +
| client hardware address, filled by client
 +
|-
 +
| <code>DummyData:array[0..9] of Byte;</code>
 +
| dummy to fill out remaining bytes of above
 +
|-
 +
| <code>ServerName:array[0..63] of Byte;</code>
 +
| optional server host name, null terminated
 +
|-
 +
| <code>FileName:array[0..127] of Byte;</code>
 +
| boot file name, null terminated string 'generic' name or null in bootrequest, fully qualified directory-path name in bootreply
 +
|-
 +
| <code>Options:array[0..311] of Byte;</code>
 +
| DHCP options area (minimum 312 bytes)
 +
|-
 +
| <code>Options:array[0..DHCP_OPTIONS_SIZE - 1] of Byte;</code>
 +
| DHCP options area (minimum 312 bytes)
 +
|-
 +
|}
 +
</div></div> 
 +
 
 +
'''DHCP client Id'''
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
<code>PDHCPClientId = ^TDHCPClientId;</code>
 +
 
 +
<code>TDHCPClientId = packed record</code>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>Tag:Byte;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
| <code>Hardware:THardwareAddress;</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
 
 +
=== Class definitions ===
 +
----
 +
 
 +
 
 +
'''DHCP specific classes'''
 +
 
 +
{| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;"
 +
|-
 +
| [[TDHCPConfigTransport|<code>TDHCPConfigTransport = class(TConfigTransport)</code>]]
 +
|-
 +
|}
 +
{| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;"
 +
|-
 +
| [[TDHCPConfig|<code>TDHCPConfig = class(TNetworkConfig)</code>]]
 +
|-
 +
|}
 +
{| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;"
 +
|-
 +
| [[TBOOTPConfigTransport|<code>TBOOTPConfigTransport = class(TConfigTransport)</code>]]
 +
|-
 +
|}
 +
{| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;"
 +
|-
 +
| [[TBOOTPConfig|<code>TBOOTPConfig = class(TNetworkConfig)</code>]]
 +
|-
 +
|}
 +
{| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;"
 +
|-
 +
| [[TARPConfigTransport|<code>TARPConfigTransport = class(TConfigTransport)</code>]]
 +
|-
 +
|}
 +
{| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;"
 +
|-
 +
| [[TARPConfig|<code>TARPConfig = class(TNetworkConfig)</code>]]
 +
|-
 +
|}
 +
{| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;"
 +
|-
 +
| [[TRARPConfigTransport|<code>TRARPConfigTransport = class(TConfigTransport)</code>]]
 +
|-
 +
|}
 +
{| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;"
 +
|-
 +
| [[TRARPConfig|<code>TRARPConfig = class(TNetworkConfig)</code>]]
 +
|-
 +
|}
 +
{| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;"
 +
|-
 +
| [[TStaticConfigTransport|<code>TStaticConfigTransport = class(TConfigTransport)</code>]]
 +
|-
 +
|}
 +
{| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;"
 +
|-
 +
| [[TStaticConfig|<code>TStaticConfig = class(TNetworkConfig)</code>]]
 +
|-
 +
|}
 +
{| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;"
 +
|-
 +
| [[TLoopbackConfigTransport|<code>TLoopbackConfigTransport = class(TConfigTransport)</code>]]
 +
|-
 +
|}
 +
{| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;"
 +
|-
 +
| [[TLoopbackConfig|<code>TLoopbackConfig = class(TNetworkConfig)</code>]]
 +
|-
 +
|}
 +
<br />
  
 
=== Public variables ===
 
=== Public variables ===
 
----
 
----
  
''To be documented''
+
''None defined''
  
 
=== Function declarations ===
 
=== Function declarations ===
 
----
 
----
  
''To be documented''
 
  
 +
'''Initialization functions'''
 +
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
 +
<pre style="border: 0; padding-bottom:0px;">procedure DHCPInit;</pre>
 +
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' Initialize the DHCP unit and create the Loopback, Static, DHCP, BOOTP, RARP and ARP configuration handlers</div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
! Note
 +
| Called only during system startup
 +
|-
 +
|}
 +
</div></div>
 +
<br />
  
 
Return to [[Unit_Reference|Unit Reference]]
 
Return to [[Unit_Reference|Unit Reference]]

Latest revision as of 05:20, 31 August 2021

Return to Unit Reference


Description


Ultibo DHCP/BOOTP Protocol Client unit

Constants



[Expand]
DHCP specific constants BOOTP_*


[Expand]
BOOTP/DHCP request BOOTP_REQUEST*


[Expand]
DHCP message DHCP_*


[Expand]
BOOTP/DHCP options


[Expand]
DHCP flag DHCP_FLAG_*


[Expand]
ARP configuration ARP_CONFIG_*


Type definitions



DHCP specific types

[Expand]

PBOOTPHeader = ^TBOOTPHeader;

TBOOTPHeader = packed record

DHCP header

[Expand]

PDHCPHeader = ^TDHCPHeader;

TDHCPHeader = packed record

DHCP client Id

[Expand]

PDHCPClientId = ^TDHCPClientId;

TDHCPClientId = packed record


Class definitions



DHCP specific classes

TDHCPConfigTransport = class(TConfigTransport)
TDHCPConfig = class(TNetworkConfig)
TBOOTPConfigTransport = class(TConfigTransport)
TBOOTPConfig = class(TNetworkConfig)
TARPConfigTransport = class(TConfigTransport)
TARPConfig = class(TNetworkConfig)
TRARPConfigTransport = class(TConfigTransport)
TRARPConfig = class(TNetworkConfig)
TStaticConfigTransport = class(TConfigTransport)
TStaticConfig = class(TNetworkConfig)
TLoopbackConfigTransport = class(TConfigTransport)
TLoopbackConfig = class(TNetworkConfig)


Public variables


None defined

Function declarations



Initialization functions

[Expand]
procedure DHCPInit;
Description: Initialize the DHCP unit and create the Loopback, Static, DHCP, BOOTP, RARP and ARP configuration handlers


Return to Unit Reference