Data Structures | |
struct | fip_icmp6_echoRequest_t |
ICMPv6 Echo Request. More... | |
struct | fip_icmp6_error_t |
ICMPv6 Error Message. More... | |
Modules | |
ND Data Structure Access | |
Neighbour Discovery (RFC4861) | |
Files | |
file | fip_icmp6.c |
ICMPv6 Functions. | |
Functions | |
_PACKEND void | fip_icmp6_process (void) |
The ICMPv6 Input Function. | |
void | fip_icmp6_finalize (void) |
Finalize ICMPv6 Packets by calculating the checksum, setting the IPv6 lengths correctly, and marking the packet as ready to send. | |
void | fip_icmp6_generateError (uint8_t type, uint8_t code, uint32_t parameter) |
Generate an ICMPv6 Error Message based on the packet in the current buffer. | |
void | fip_icmp6_generateEchoRequest (fip_ifnum_t ifnum, fip_ip6addr_t *destAddr, unsigned int length) |
Generate an ICMPv6 Echo Request (ping) to a remote host. |
void fip_icmp6_finalize | ( | void | ) |
Finalize ICMPv6 Packets by calculating the checksum, setting the IPv6 lengths correctly, and marking the packet as ready to send.
upperLength | Length of the ICMPv6 Payload. |
References fip_ipUtils_checksum_pseudo6hdr(), fip_ipUtils_checksum_tl(), fip_packet_getBufSizes(), fip_packet_setAttr, fip_packet_setToICMP6Hdr_Checksum, fip_packet_setToIP6Hdr_length, fip_packet_setToIP6Hdr_nextHeader, and PS_SEND.
Referenced by fip_icmp6_generateEchoRequest(), fip_icmp6_generateError(), fip_icmp6_process(), fip_nd6_generateNA(), fip_nd6_generateNS(), fip_nd6_generateRA(), and fip_nd6_generateRS().
void fip_icmp6_generateEchoRequest | ( | fip_ifnum_t | ifnum, | |
fip_ip6addr_t * | destAddr, | |||
unsigned int | length | |||
) |
Generate an ICMPv6 Echo Request (ping) to a remote host.
ifnum | Interface to send ping on | |
destAddr | Destination IPv6 address to send to | |
length | Length of data to send in ping |
References fip_ip6addr_t::addr, fip_icmp6_echoRequest_t::checksum, fip_icmp6_echoRequest_t::code, fip_icmp6_echoRequest_t::data, fip_hostInterface_getMiliSeconds32(), fip_icmp6_finalize(), fip_if6_selectSrcAddress(), fip_packet_activeNew(), fip_packet_copyToIP6Hdr_destAddr(), fip_packet_getBufPtr, fip_packet_setBufSize, fip_packet_setToIP6Hdr_hopLimit, fip_packet_setToIP6Hdr_nextHeader, fip_icmp6_echoRequest_t::identifier, RV_OK, fip_icmp6_echoRequest_t::sequenceNumber, and fip_icmp6_echoRequest_t::type.
Referenced by fip_console_ping6().
void fip_icmp6_generateError | ( | uint8_t | type, | |
uint8_t | code, | |||
uint32_t | parameter | |||
) |
Generate an ICMPv6 Error Message based on the packet in the current buffer.
type | Message Type | |
code | Message Code | |
parameter | Parameter for error |
References fip_icmp6_error_t::checksum, fip_icmp6_error_t::code, fip_icmp6_finalize(), fip_if6_selectSrcAddress(), fip_packet_activeDrop(), fip_packet_activeResponsePacket(), fip_packet_getBufPtr, fip_packet_setBufSize, fip_packet_setToIP6Hdr_hopLimit, fip_packet_setToIP6Hdr_nextHeader, fip_icmp6_error_t::parameter, RV_OK, and fip_icmp6_error_t::type.
Referenced by fip_ip_process(), fip_route6_process(), and fip_task().
_PACKEND void fip_icmp6_process | ( | void | ) |
The ICMPv6 Input Function.
Handles all required ICMPv6 input information.
References fip_ip6addr_t::addr, fip_icmp6_echoRequest_t::data, fip_hostInterface_getMiliSeconds32(), fip_icmp6_finalize(), fip_ip6addr_cpy, fip_ipUtils_checksum_pseudo6hdr(), fip_ipUtils_checksum_tl(), fip_nd6_process(), fip_packet_activeDrop(), fip_packet_getBufPtr, fip_packet_getBufSize, fip_packet_getFromICMP6Hdr_Type, fip_packet_getFromIP6Hdr_destPtr, fip_packet_getFromIP6Hdr_srcPtr, fip_packet_resetAddrFlags, fip_packet_setAttr, fip_packet_setBufSize, fip_packet_setToICMP6Hdr_Type, PS_SEND, RV_OK, and TRACE.
Referenced by fip_ip_process().