# Unit nettypes

Description
Uses
Classes, Interfaces, Objects and Records
Functions and Procedures
Types
Constants
Variables

## Description

Driver->Net->`NetTypes` - Structures & Types Shared Across Network Drivers.

## Overview

### Classes, Interfaces, Objects and Records

Name | Description
--- | ---
Record `TMACPair` |
Record `TIPv4Pair` |
Record `TProtocol` |
Record `TPacketContext` |
Record `TIPv4Configuration` |
Record `TICMPHeader` |
Record `TARPAbstractHeader` | ARP
Record `TTCPFlags` |
Record `TIPV4AbstractHeader` |

### Types

`TMACAddress = Array[0..5] of uint8;`
`TIPv4Address = Array[0..3] of uint8;`
`PPacketContext = ˆTPacketContext;`
`PIPv4Configuration = ˆTIPv4Configuration;`
`PICMPHeader = ˆTICMPHeader;`
`PARPHeader = ˆTARPHeader;`
`TARPHeader = bitpacked record Hardware_Type_Hi : uint8; Hardware_Type_Lo : uint8; Protocol_Type_Hi : uint8; Protocol_Type_Lo : uint8; Hardware_Address_Length : uint8; Protocol_Address_Length : uint8; Operation_Hi : uint8; Operation_Lo : uint8; Source_Hardware : TMACAddress; Source_Protocol : TIPv4Address; Destination_Hardware : TMACAddress; Destination_Protocol : TIPv4Address; end;`
`PEthernetHeader = ˆTEthernetHeader;`
`TEthernetHeader = bitpacked record dst : array[0..5] of uint8; src : array[0..5] of uint8; EthTypeHi : uint8; EthTypeLo : uint8; end;`
`PIPV4Header = ˆTIPV4Header;`
`TIPV4Header = bitpacked record header_len : ubit4; version : ubit4; ToS : uint8; total_len_Hi : uint8; total_len_Lo : uint8; identifier_Hi : uint8; identifier_Lo : uint8; Flags : ubit3; Fragment_Off : ubit13; TTL : uint8; Protocol : uint8; HDR_CHK_Hi : uint8; HDR_CHK_Lo : uint8; Src : Array[0..3] of uint8; Dst : Array[0..3] of uint8; Options : ubit24; Padding : uint8; end;`
`TNetSendCallback = function(p_data : void; p_len : uint16) : sint32;`
`TRecvCallback = procedure(p_data : void; p_len : uint16; p_context : PPacketContext);`

### Constants

`BROADCAST_MAC : Array[0..5] of uint8 = ($FF, $FF, $FF, $FF, $FF, $FF);`
`NULL_MAC : Array[0..5] of uint8 = ($00, $00, $00, $00, $00, $00);`
`FORCE_MAC : Array[0..5] of uint8 = ($08, $00, $27, $E6, $3F, $81);`
`ICMP_DATA_GENERIC : Array[0..31] of uint8 = ( $61, $62, $63, $64, $65, $66, $67, $68, $69, $6a, $6b, $6c, $6d, $6e, $6f, $70, $71, $72, $73, $74, $75, $76, $77, $61, $62, $63, $64, $65, $66, $67, $68, $69 );`

## Description

### Types

`TMACAddress = Array[0..5] of uint8;`
Generic

`TIPv4Address = Array[0..3] of uint8;`

`PPacketContext = ˆTPacketContext;`
Context

`PIPv4Configuration = ˆTIPv4Configuration;`
Config

`PICMPHeader = ˆTICMPHeader;`
ICMP

`PARPHeader = ˆTARPHeader;`

`TARPHeader = bitpacked record Hardware_Type_Hi : uint8; Hardware_Type_Lo : uint8; Protocol_Type_Hi : uint8; Protocol_Type_Lo : uint8; Hardware_Address_Length : uint8; Protocol_Address_Length : uint8; Operation_Hi : uint8; Operation_Lo : uint8; Source_Hardware : TMACAddress; Source_Protocol : TIPv4Address; Destination_Hardware : TMACAddress; Destination_Protocol : TIPv4Address; end;`

`PEthernetHeader = ˆTEthernetHeader;`
ETH2

`TEthernetHeader = bitpacked record dst : array[0..5] of uint8; src : array[0..5] of uint8; EthTypeHi : uint8; EthTypeLo : uint8; end;`

`PIPV4Header = ˆTIPV4Header;`
IPv4

`TIPV4Header = bitpacked record header_len : ubit4; version : ubit4; ToS : uint8; total_len_Hi : uint8; total_len_Lo : uint8; identifier_Hi : uint8; identifier_Lo : uint8; Flags : ubit3; Fragment_Off : ubit13; TTL : uint8; Protocol : uint8; HDR_CHK_Hi : uint8; HDR_CHK_Lo : uint8; Src : Array[0..3] of uint8; Dst : Array[0..3] of uint8; Options : ubit24; Padding : uint8; end;`

`TNetSendCallback = function(p_data : void; p_len : uint16) : sint32;`
Callback Types

`TRecvCallback = procedure(p_data : void; p_len : uint16; p_context : PPacketContext);`

### Constants

`BROADCAST_MAC : Array[0..5] of uint8 = ($FF, $FF, $FF, $FF, $FF, $FF);`
MACs

`NULL_MAC : Array[0..5] of uint8 = ($00, $00, $00, $00, $00, $00);`

`FORCE_MAC : Array[0..5] of uint8 = ($08, $00, $27, $E6, $3F, $81);`

`ICMP_DATA_GENERIC : Array[0..31] of uint8 = ( $61, $62, $63, $64, $65, $66, $67, $68, $69, $6a, $6b, $6c, $6d, $6e, $6f, $70, $71, $72, $73, $74, $75, $76, $77, $61, $62, $63, $64, $65, $66, $67, $68, $69 );`
ICMP Data

## Author

- Kieron Morris <kjm@kieronmorris.me>

Generated by PasDoc 0.15.0.