mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-05-21 13:32:42 +02:00
191 lines
5.4 KiB
PHP
191 lines
5.4 KiB
PHP
|
|
|
|
const
|
|
ICMP6_FILTER = 1;
|
|
ICMP6_FILTER_BLOCK = 1;
|
|
ICMP6_FILTER_PASS = 2;
|
|
ICMP6_FILTER_BLOCKOTHERS = 3;
|
|
ICMP6_FILTER_PASSONLY = 4;
|
|
type
|
|
Picmp6_filter = ^_icmp6_filter;
|
|
_icmp6_filter = record
|
|
data : array[0..7] of uint32_t;
|
|
end;
|
|
TICMP6_Filter = _icmp6_filter;
|
|
|
|
Picmp6_hdr = ^icmp6_hdr;
|
|
icmp6_hdr = record
|
|
icmp6_type : uint8_t;
|
|
icmp6_code : uint8_t;
|
|
icmp6_cksum : uint16_t;
|
|
icmp6_dataun : record
|
|
case longint of
|
|
0 : ( icmp6_un_data32 : array[0..0] of uint32_t );
|
|
1 : ( icmp6_un_data16 : array[0..1] of uint16_t );
|
|
2 : ( icmp6_un_data8 : array[0..3] of uint8_t );
|
|
end;
|
|
end;
|
|
|
|
|
|
|
|
const
|
|
ICMP6_DST_UNREACH = 1;
|
|
ICMP6_PACKET_TOO_BIG = 2;
|
|
ICMP6_TIME_EXCEEDED = 3;
|
|
ICMP6_PARAM_PROB = 4;
|
|
ICMP6_INFOMSG_MASK = $80;
|
|
ICMP6_ECHO_REQUEST = 128;
|
|
ICMP6_ECHO_REPLY = 129;
|
|
ICMP6_MEMBERSHIP_QUERY = 130;
|
|
ICMP6_MEMBERSHIP_REPORT = 131;
|
|
ICMP6_MEMBERSHIP_REDUCTION = 132;
|
|
ICMP6_DST_UNREACH_NOROUTE = 0;
|
|
ICMP6_DST_UNREACH_ADMIN = 1;
|
|
ICMP6_DST_UNREACH_NOTNEIGHBOR = 2;
|
|
ICMP6_DST_UNREACH_ADDR = 3;
|
|
ICMP6_DST_UNREACH_NOPORT = 4;
|
|
ICMP6_TIME_EXCEED_TRANSIT = 0;
|
|
ICMP6_TIME_EXCEED_REASSEMBLY = 1;
|
|
ICMP6_PARAMPROB_HEADER = 0;
|
|
ICMP6_PARAMPROB_NEXTHEADER = 1;
|
|
ICMP6_PARAMPROB_OPTION = 2;
|
|
|
|
function ICMP6_FILTER_WILLPASS(__type: Integer; const filterp: TICMP6_Filter): Boolean;
|
|
function ICMP6_FILTER_WILLBLOCK(__type: Integer; const filterp: TICMP6_Filter): Boolean;
|
|
procedure ICMP6_FILTER_SETPASS(__type: Integer; var filterp: TICMP6_Filter);
|
|
procedure ICMP6_FILTER_SETBLOCK(__type: Integer; var filterp: TICMP6_Filter);
|
|
procedure ICMP6_FILTER_SETPASSALL(var filterp: TICMP6_Filter);
|
|
procedure ICMP6_FILTER_SETBLOCKALL(var filterp: TICMP6_Filter);
|
|
|
|
const
|
|
ND_ROUTER_SOLICIT = 133;
|
|
ND_ROUTER_ADVERT = 134;
|
|
ND_NEIGHBOR_SOLICIT = 135;
|
|
ND_NEIGHBOR_ADVERT = 136;
|
|
ND_REDIRECT = 137;
|
|
|
|
type
|
|
Pnd_router_solicit = ^_nd_router_solicit;
|
|
_nd_router_solicit = record
|
|
nd_rs_hdr : icmp6_hdr;
|
|
end;
|
|
|
|
type
|
|
Pnd_router_advert = ^_nd_router_advert;
|
|
_nd_router_advert = record
|
|
nd_ra_hdr : icmp6_hdr;
|
|
nd_ra_reachable : uint32_t;
|
|
nd_ra_retransmit : uint32_t;
|
|
end;
|
|
|
|
|
|
const
|
|
ND_RA_FLAG_MANAGED = $80;
|
|
ND_RA_FLAG_OTHER = $40;
|
|
ND_RA_FLAG_HOME_AGENT = $20;
|
|
|
|
type
|
|
Pnd_neighbor_solicit = ^_nd_neighbor_solicit;
|
|
_nd_neighbor_solicit = record
|
|
nd_ns_hdr : icmp6_hdr;
|
|
nd_ns_target : in6_addr;
|
|
end;
|
|
|
|
|
|
type
|
|
Pnd_neighbor_advert = ^_nd_neighbor_advert;
|
|
_nd_neighbor_advert = record
|
|
nd_na_hdr : icmp6_hdr;
|
|
nd_na_target : in6_addr;
|
|
end;
|
|
|
|
|
|
const
|
|
ND_NA_FLAG_ROUTER = $00000080;
|
|
ND_NA_FLAG_SOLICITED = $00000040;
|
|
ND_NA_FLAG_OVERRIDE = $00000020;
|
|
|
|
type
|
|
Pnd_redirect = ^_nd_redirect;
|
|
_nd_redirect = record
|
|
nd_rd_hdr : icmp6_hdr;
|
|
nd_rd_target : in6_addr;
|
|
nd_rd_dst : in6_addr;
|
|
end;
|
|
|
|
|
|
type
|
|
Pnd_opt_hdr = ^nd_opt_hdr;
|
|
nd_opt_hdr = record
|
|
nd_opt_type : uint8_t;
|
|
nd_opt_len : uint8_t;
|
|
end;
|
|
|
|
|
|
const
|
|
ND_OPT_SOURCE_LINKADDR = 1;
|
|
ND_OPT_TARGET_LINKADDR = 2;
|
|
ND_OPT_PREFIX_INFORMATION = 3;
|
|
ND_OPT_REDIRECTED_HEADER = 4;
|
|
ND_OPT_MTU = 5;
|
|
ND_OPT_RTR_ADV_INTERVAL = 7;
|
|
ND_OPT_HOME_AGENT_INFO = 8;
|
|
type
|
|
Pnd_opt_prefix_info = ^nd_opt_prefix_info;
|
|
nd_opt_prefix_info = record
|
|
nd_opt_pi_type : uint8_t;
|
|
nd_opt_pi_len : uint8_t;
|
|
nd_opt_pi_prefix_len : uint8_t;
|
|
nd_opt_pi_flags_reserved : uint8_t;
|
|
nd_opt_pi_valid_time : uint32_t;
|
|
nd_opt_pi_preferred_time : uint32_t;
|
|
nd_opt_pi_reserved2 : uint32_t;
|
|
nd_opt_pi_prefix : in6_addr;
|
|
end;
|
|
|
|
|
|
const
|
|
ND_OPT_PI_FLAG_ONLINK = $80;
|
|
ND_OPT_PI_FLAG_AUTO = $40;
|
|
ND_OPT_PI_FLAG_RADDR = $20;
|
|
type
|
|
Pnd_opt_rd_hdr = ^nd_opt_rd_hdr;
|
|
nd_opt_rd_hdr = record
|
|
nd_opt_rh_type : uint8_t;
|
|
nd_opt_rh_len : uint8_t;
|
|
nd_opt_rh_reserved1 : uint16_t;
|
|
nd_opt_rh_reserved2 : uint32_t;
|
|
end;
|
|
|
|
Pnd_opt_mtu = ^_nd_opt_mtu;
|
|
_nd_opt_mtu = record
|
|
nd_opt_mtu_type : uint8_t;
|
|
nd_opt_mtu_len : uint8_t;
|
|
nd_opt_mtu_reserved : uint16_t;
|
|
nd_opt_mtu_mtu : uint32_t;
|
|
end;
|
|
|
|
Pnd_opt_adv_interval = ^_nd_opt_adv_interval;
|
|
_nd_opt_adv_interval = record
|
|
nd_opt_adv_interval_type : uint8_t;
|
|
nd_opt_adv_interval_len : uint8_t;
|
|
nd_opt_adv_interval_reserved : uint16_t;
|
|
nd_opt_adv_interval_ival : uint32_t;
|
|
end;
|
|
|
|
Pnd_opt_home_agent_info = ^_nd_opt_home_agent_info;
|
|
_nd_opt_home_agent_info = record
|
|
nd_opt_home_agent_info_type : uint8_t;
|
|
nd_opt_home_agent_info_len : uint8_t;
|
|
nd_opt_home_agent_info_reserved : uint16_t;
|
|
nd_opt_home_agent_info_preference : int16_t;
|
|
nd_opt_home_agent_info_lifetime : uint16_t;
|
|
end;
|
|
|
|
|
|
{ ---------------------------------------------------------------------
|
|
Borland compatibility types
|
|
---------------------------------------------------------------------}
|
|
|
|
// Type
|