30 #ifndef SYSTEM_CORE_INC_NET_PROTOCOLS_ICMP_OC_ICMP_H_ 31 #define SYSTEM_CORE_INC_NET_PROTOCOLS_ICMP_OC_ICMP_H_ 42 #define _________________________________________TYPES_SECTION______________________________________________________________________________ 74 oC_Icmp_Type_Empty = 0xFF
110 uint32_t OriginateTimestamp;
111 uint32_t ReceiveTimestamp;
112 uint32_t TransmitTimestamp;
181 #undef _________________________________________TYPES_SECTION______________________________________________________________________________ 188 #define _________________________________________PROTOTYPES_SECTION_________________________________________________________________________ 209 #undef _________________________________________PROTOTYPES_SECTION_________________________________________________________________________ oC_ErrorCode_t oC_Icmp_Send(oC_Netif_t Netif, const oC_Net_Address_t *Destination, oC_Icmp_Packet_t *Packet, oC_Time_t Timeout)
sends ICMP packet
stores ICMP timestamp message
bool oC_Icmp_IsTypeReserved(oC_Icmp_Type_t Type, oC_Process_t Process)
checks if the given ICMP type is reserved
identifier for allocations
uint16_t ID
Identification of the transaction.
oC_Net_Ipv6PacketHeader_t Header
IPv6 header.
oC_Net_Packet_t Packet
IP packet.
stores ICMP packet (datagram + IP header)
oC_Icmp_Type_t
stores ICMP message type
Contains interface for netif object.
void * oC_Icmp_Packet_GetMessageReference(oC_Icmp_Packet_t *Packet)
returns reference to the message inside ICMP packet
oC_Net_PacketType_t
stores type of the packet
oC_Icmp_Datagram_t IcmpDatagram
ICMP data in the IPv4 packet.
uint16_t ID
Identification of the transaction.
oC_ErrorCode_t oC_Icmp_Receive(oC_Netif_t Netif, oC_Icmp_Packet_t *outPacket, oC_Icmp_Type_t Type, oC_Time_t Timeout)
receives ICMP packet
oC_ErrorCode_t oC_Icmp_CalculateChecksum(oC_Icmp_Packet_t *Packet, uint16_t *outChecksum)
Calculates checksum for ICMP packet.
stores ICMP Destination Unreachable message
oC_Icmp_Message_DestinationUnreachable_t DestinationUnreachable
Destination unreachable message data.
bool oC_Icmp_Packet_Delete(oC_Icmp_Packet_t **Packet)
release memory allocated for a ICMP packet
oC_Icmp_Packet_t * oC_Icmp_Packet_New(Allocator_t PacketAllocator, oC_Net_PacketType_t Type, oC_Icmp_Type_t IcmpType, uint8_t Code, const void *Data, uint16_t Size)
allocates memory for a ICMP packet
oC_ErrorCode_t oC_Icmp_ReserveType(oC_Icmp_Type_t Type, oC_Time_t Timeout)
reserves a ICMP type
uint32_t AddressMask
Subnet mask.
oC_Icmp_Message_Echo_t Echo
Echo message data.
uint16_t SequenceNumber
Sequence number of the message.
Destination unreachable message.
oC_Icmp_Header_t Header
Header of the ICMP packet.
oC_Icmp_Message_AddressMask_t AddressMask
Address mask message data.
uint16_t ID
Identification of the transaction.
Parameter Problem Bad Ip Header.
oC_ErrorCode_t oC_Icmp_TurnOff(void)
turns off ICMP module
stores ICMP Address Mask message
Source Quench (depracated)
The file with interface for process mechanism.
oC_ErrorCode_t oC_Icmp_TurnOn(void)
turns on ICMP module
oC_Icmp_Message_Timestamp_t Timestamp
Timestamp message data.
uint16_t SequenceNumber
Sequence number of the message.
oC_Net_Ipv4PacketHeader_t Header
IPv4 header.
File with interface for the NET module.
uint16_t SequenceNumber
Sequence number of the message.
oC_ErrorCode_t oC_Icmp_ReleaseAllTypesReservedBy(oC_Process_t Process, oC_Time_t Timeout)
releases all types reserved by the process
oC_ErrorCode_t oC_Icmp_ReleaseType(oC_Icmp_Type_t Type, oC_Time_t Timeout)
releases a type
bool oC_Icmp_Packet_SetSize(oC_Icmp_Packet_t *Packet, uint16_t Size)
sets size of the packet