Dependents:   Nucleo

Embed: (wiki syntax)

« Back to documentation index

icmpv6.c File Reference

icmpv6.c File Reference

ICMPv6 (Internet Control Message Protocol Version 6) More...

Go to the source code of this file.

Functions

error_t icmpv6EnableMulticastEchoRequest (NetInterface *interface, bool_t enable)
 Enable support for multicast Echo Request messages.
void icmpv6ProcessMessage (NetInterface *interface, Ipv6PseudoHeader *pseudoHeader, const NetBuffer *buffer, size_t offset, uint8_t hopLimit)
 Incoming ICMPv6 message processing.
void icmpv6ProcessDestUnreachable (NetInterface *interface, Ipv6PseudoHeader *pseudoHeader, const NetBuffer *buffer, size_t offset)
 Destination Unreachable message processing.
void icmpv6ProcessPacketTooBig (NetInterface *interface, Ipv6PseudoHeader *pseudoHeader, const NetBuffer *buffer, size_t offset)
 Packet Too Big message processing.
void icmpv6ProcessEchoRequest (NetInterface *interface, Ipv6PseudoHeader *requestPseudoHeader, const NetBuffer *request, size_t requestOffset)
 Echo Request message processing.
error_t icmpv6SendErrorMessage (NetInterface *interface, uint8_t type, uint8_t code, uint32_t parameter, const NetBuffer *ipPacket, size_t ipPacketOffset)
 Send an ICMPv6 Error message.
void icmpv6DumpMessage (const Icmpv6Header *message)
 Dump ICMPv6 message for debugging purpose.
void icmpv6DumpDestUnreachableMessage (const Icmpv6DestUnreachableMessage *message)
 Dump ICMPv6 Destination Unreachable message.
void icmpv6DumpPacketTooBigMessage (const Icmpv6PacketTooBigMessage *message)
 Dump ICMPv6 Packet Too Big message.
void icmpv6DumpEchoMessage (const Icmpv6EchoMessage *message)
 Dump ICMPv6 Echo Request or Echo Reply message.
void icmpv6DumpErrorMessage (const Icmpv6ErrorMessage *message)
 Dump generic ICMPv6 Error message.

Detailed Description

ICMPv6 (Internet Control Message Protocol Version 6)

License

Copyright (C) 2010-2017 Oryx Embedded SARL. All rights reserved.

This file is part of CycloneTCP Open.

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.

Description

ICMPv6 is used by IPv6 nodes to report errors encountered in processing packets, and to perform other Internet-layer functions. ICMPv6 is an integral part of IPv6 and must be fully implemented by every IPv6 node. Refer to the RFC 2463 for more details

Author:
Oryx Embedded SARL (www.oryx-embedded.com)
Version:
1.7.6

Definition in file icmpv6.c.


Function Documentation

void icmpv6DumpDestUnreachableMessage ( const Icmpv6DestUnreachableMessage *  message )

Dump ICMPv6 Destination Unreachable message.

Parameters:
[in]messagePointer to the ICMPv6 message

Definition at line 609 of file icmpv6.c.

void icmpv6DumpEchoMessage ( const Icmpv6EchoMessage *  message )

Dump ICMPv6 Echo Request or Echo Reply message.

Parameters:
[in]messagePointer to the ICMPv6 message

Definition at line 638 of file icmpv6.c.

void icmpv6DumpErrorMessage ( const Icmpv6ErrorMessage *  message )

Dump generic ICMPv6 Error message.

Parameters:
[in]messagePointer to the ICMPv6 message

Definition at line 654 of file icmpv6.c.

void icmpv6DumpMessage ( const Icmpv6Header *  message )

Dump ICMPv6 message for debugging purpose.

Parameters:
[in]messagePointer to the ICMP message

Definition at line 595 of file icmpv6.c.

void icmpv6DumpPacketTooBigMessage ( const Icmpv6PacketTooBigMessage *  message )

Dump ICMPv6 Packet Too Big message.

Parameters:
[in]messagePointer to the ICMPv6 message

Definition at line 623 of file icmpv6.c.

error_t icmpv6EnableMulticastEchoRequest ( NetInterface *  interface,
bool_t  enable 
)

Enable support for multicast Echo Request messages.

Parameters:
[in]interfaceUnderlying network interface
[in]enableWhen the flag is set to TRUE, the host will respond to multicast Echo Requests. When the flag is set to FALSE, incoming Echo Request messages destined to a multicast address will be dropped
Returns:
Error code

Definition at line 65 of file icmpv6.c.

void icmpv6ProcessDestUnreachable ( NetInterface *  interface,
Ipv6PseudoHeader *  pseudoHeader,
const NetBuffer buffer,
size_t  offset 
)

Destination Unreachable message processing.

Parameters:
[in]interfaceUnderlying network interface
[in]pseudoHeaderIPv6 pseudo header
[in]bufferMulti-part buffer containing the incoming ICMPv6 message
[in]offsetOffset to the first byte of the ICMPv6 message

Definition at line 223 of file icmpv6.c.

void icmpv6ProcessEchoRequest ( NetInterface *  interface,
Ipv6PseudoHeader *  requestPseudoHeader,
const NetBuffer request,
size_t  requestOffset 
)

Echo Request message processing.

Parameters:
[in]interfaceUnderlying network interface
[in]requestPseudoHeaderIPv6 pseudo header
[in]requestMulti-part buffer containing the incoming ICMPv6 message
[in]requestOffsetOffset to the first byte of the ICMPv6 message

Definition at line 322 of file icmpv6.c.

void icmpv6ProcessMessage ( NetInterface *  interface,
Ipv6PseudoHeader *  pseudoHeader,
const NetBuffer buffer,
size_t  offset,
uint8_t  hopLimit 
)

Incoming ICMPv6 message processing.

Parameters:
[in]interfaceUnderlying network interface
[in]pseudoHeaderIPv6 pseudo header
[in]bufferMulti-part buffer containing the incoming ICMPv6 message
[in]offsetOffset to the first byte of the ICMPv6 message
[in]hopLimitHop Limit field from IPv6 header

Definition at line 92 of file icmpv6.c.

void icmpv6ProcessPacketTooBig ( NetInterface *  interface,
Ipv6PseudoHeader *  pseudoHeader,
const NetBuffer buffer,
size_t  offset 
)

Packet Too Big message processing.

Parameters:
[in]interfaceUnderlying network interface
[in]pseudoHeaderIPv6 pseudo header
[in]bufferMulti-part buffer containing the incoming ICMPv6 message
[in]offsetOffset to the first byte of the ICMPv6 message

Definition at line 258 of file icmpv6.c.

error_t icmpv6SendErrorMessage ( NetInterface *  interface,
uint8_t  type,
uint8_t  code,
uint32_t  parameter,
const NetBuffer ipPacket,
size_t  ipPacketOffset 
)

Send an ICMPv6 Error message.

Parameters:
[in]interfaceUnderlying network interface
[in]typeMessage type
[in]codeSpecific message code
[in]parameterSpecific message parameter
[in]ipPacketMulti-part buffer that holds the invoking IPv6 packet
[in]ipPacketOffsetOffset to the first byte of the IPv6 packet
Returns:
Error code

Definition at line 443 of file icmpv6.c.