|
#define | Ipv4Header struct _Ipv4Header |
|
#define | Ipv4PseudoHeader struct _Ipv4PseudoHeader |
|
#define | IPV4_SUPPORT ENABLED |
|
#define | IPV4_IPSEC_SUPPORT DISABLED |
|
#define | IPV4_DEFAULT_TTL 64 |
|
#define | IPV4_ADDR_LIST_SIZE 1 |
|
#define | IPV4_DNS_SERVER_LIST_SIZE 2 |
|
#define | IPV4_MULTICAST_FILTER_SIZE 4 |
|
#define | IPV4_VERSION 4 |
|
#define | IPV4_MINIMUM_MTU 68 |
|
#define | IPV4_DEFAULT_MTU 576 |
|
#define | IPV4_MIN_HEADER_LENGTH 20 |
|
#define | IPV4_MAX_HEADER_LENGTH 60 |
|
#define | IPV4_DATA(packet) PTR_OFFSET(packet, packet->headerLength * 4) |
|
#define | IPV4_ADDR(a, b, c, d) ((a) | ((b) << 8) | ((c) << 16) | ((uint32_t) (d) << 24)) |
|
#define | IPV4_UNSPECIFIED_ADDR IPV4_ADDR(0, 0, 0, 0) |
|
#define | IPV4_BROADCAST_ADDR IPV4_ADDR(255, 255, 255, 255) |
|
#define | IPV4_LOOPBACK_ADDR IPV4_ADDR(127, 0, 0, 1) |
|
#define | IPV4_LOOPBACK_PREFIX IPV4_ADDR(127, 0, 0, 0) |
|
#define | IPV4_LOOPBACK_MASK IPV4_ADDR(255, 0, 0, 0) |
|
#define | IPV4_LINK_LOCAL_PREFIX IPV4_ADDR(169, 254, 0, 0) |
|
#define | IPV4_LINK_LOCAL_MASK IPV4_ADDR(255, 255, 0, 0) |
|
#define | IPV4_MULTICAST_PREFIX IPV4_ADDR(224, 0, 0, 0) |
|
#define | IPV4_MULTICAST_MASK IPV4_ADDR(240, 0, 0, 0) |
|
#define | IPV4_MULTICAST_LNCB_PREFIX IPV4_ADDR(224, 0, 0, 0) |
|
#define | IPV4_MULTICAST_LNCB_MASK IPV4_ADDR(255, 255, 255, 0) |
|
#define | IPV4_MULTICAST_INCB_PREFIX IPV4_ADDR(224, 0, 1, 0) |
|
#define | IPV4_MULTICAST_INCB_MASK IPV4_ADDR(255, 255, 255, 0) |
|
#define | IPV4_CLASS_A_ADDR IPV4_ADDR(0, 0, 0, 0) |
|
#define | IPV4_CLASS_A_MASK IPV4_ADDR(128, 0, 0, 0) |
|
#define | IPV4_CLASS_B_ADDR IPV4_ADDR(128, 0, 0, 0) |
|
#define | IPV4_CLASS_B_MASK IPV4_ADDR(192, 0, 0, 0) |
|
#define | IPV4_CLASS_C_ADDR IPV4_ADDR(192, 0, 0, 0) |
|
#define | IPV4_CLASS_C_MASK IPV4_ADDR(224, 0, 0, 0) |
|
#define | IPV4_CLASS_D_ADDR IPV4_ADDR(224, 0, 0, 0) |
|
#define | IPV4_CLASS_D_MASK IPV4_ADDR(240, 0, 0, 0) |
|
#define | IPV4_CLASS_E_ADDR IPV4_ADDR(240, 0, 0, 0) |
|
#define | IPV4_CLASS_E_MASK IPV4_ADDR(240, 0, 0, 0) |
|
#define | ipv4CopyAddr(destIpAddr, srcIpAddr) osMemcpy(destIpAddr, srcIpAddr, sizeof(Ipv4Addr)) |
|
#define | ipv4CompAddr(ipAddr1, ipAddr2) (!osMemcmp(ipAddr1, ipAddr2, sizeof(Ipv4Addr))) |
|
#define | ipv4IsOnSubnet(entry, ipAddr) (((ipAddr) & (entry)->subnetMask) == ((entry)->addr & (entry)->subnetMask)) |
|
#define | ipv4IsLoopbackAddr(ipAddr) (((ipAddr) & IPV4_LOOPBACK_MASK) == IPV4_LOOPBACK_PREFIX) |
|
#define | ipv4IsLinkLocalAddr(ipAddr) (((ipAddr) & IPV4_LINK_LOCAL_MASK) == IPV4_LINK_LOCAL_PREFIX) |
|
#define | ipv4IsMulticastAddr(ipAddr) (((ipAddr) & IPV4_MULTICAST_MASK) == IPV4_MULTICAST_PREFIX) |
|
|
error_t | ipv4Init (NetInterface *interface) |
| IPv4 related initialization. More...
|
|
error_t | ipv4SetDefaultTtl (NetInterface *interface, uint8_t ttl) |
| Set default TTL value for outgoing IPv4 packets. More...
|
|
error_t | ipv4SetHostAddr (NetInterface *interface, Ipv4Addr addr) |
| Assign host address. More...
|
|
error_t | ipv4SetHostAddrEx (NetInterface *interface, uint_t index, Ipv4Addr addr) |
| Assign host address. More...
|
|
error_t | ipv4GetHostAddr (NetInterface *interface, Ipv4Addr *addr) |
| Retrieve host address. More...
|
|
error_t | ipv4GetHostAddrEx (NetInterface *interface, uint_t index, Ipv4Addr *addr) |
| Retrieve host address. More...
|
|
error_t | ipv4SetSubnetMask (NetInterface *interface, Ipv4Addr mask) |
| Configure subnet mask. More...
|
|
error_t | ipv4SetSubnetMaskEx (NetInterface *interface, uint_t index, Ipv4Addr mask) |
| Configure subnet mask. More...
|
|
error_t | ipv4GetSubnetMask (NetInterface *interface, Ipv4Addr *mask) |
| Retrieve subnet mask. More...
|
|
error_t | ipv4GetSubnetMaskEx (NetInterface *interface, uint_t index, Ipv4Addr *mask) |
| Retrieve subnet mask. More...
|
|
error_t | ipv4SetDefaultGateway (NetInterface *interface, Ipv4Addr addr) |
| Configure default gateway. More...
|
|
error_t | ipv4SetDefaultGatewayEx (NetInterface *interface, uint_t index, Ipv4Addr addr) |
| Configure default gateway. More...
|
|
error_t | ipv4GetDefaultGateway (NetInterface *interface, Ipv4Addr *addr) |
| Retrieve default gateway. More...
|
|
error_t | ipv4GetDefaultGatewayEx (NetInterface *interface, uint_t index, Ipv4Addr *addr) |
| Retrieve default gateway. More...
|
|
error_t | ipv4SetDnsServer (NetInterface *interface, uint_t index, Ipv4Addr addr) |
| Configure DNS server. More...
|
|
error_t | ipv4GetDnsServer (NetInterface *interface, uint_t index, Ipv4Addr *addr) |
| Retrieve DNS server. More...
|
|
void | ipv4LinkChangeEvent (NetInterface *interface) |
| Callback function for link change event. More...
|
|
void | ipv4ProcessPacket (NetInterface *interface, Ipv4Header *packet, size_t length, NetRxAncillary *ancillary) |
| Incoming IPv4 packet processing. More...
|
|
void | ipv4ProcessDatagram (NetInterface *interface, const NetBuffer *buffer, size_t offset, NetRxAncillary *ancillary) |
| Incoming IPv4 datagram processing. More...
|
|
error_t | ipv4SendDatagram (NetInterface *interface, const Ipv4PseudoHeader *pseudoHeader, NetBuffer *buffer, size_t offset, NetTxAncillary *ancillary) |
| Send an IPv4 datagram. More...
|
|
error_t | ipv4SendPacket (NetInterface *interface, const Ipv4PseudoHeader *pseudoHeader, uint16_t fragId, size_t fragOffset, NetBuffer *buffer, size_t offset, NetTxAncillary *ancillary) |
| Send an IPv4 packet. More...
|
|
error_t | ipv4JoinMulticastGroup (NetInterface *interface, Ipv4Addr groupAddr) |
| Join the specified host group. More...
|
|
error_t | ipv4LeaveMulticastGroup (NetInterface *interface, Ipv4Addr groupAddr) |
| Leave the specified host group. More...
|
|
error_t | ipv4StringToAddr (const char_t *str, Ipv4Addr *ipAddr) |
| Convert a dot-decimal string to a binary IPv4 address. More...
|
|
char_t * | ipv4AddrToString (Ipv4Addr ipAddr, char_t *str) |
| Convert a binary IPv4 address to dot-decimal notation. More...
|
|
void | ipv4DumpHeader (const Ipv4Header *ipHeader) |
| Dump IPv4 header for debugging purpose. More...
|
|
IPv4 (Internet Protocol Version 4)
License
SPDX-License-Identifier: GPL-2.0-or-later
Copyright (C) 2010-2023 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.
- Author
- Oryx Embedded SARL (www.oryx-embedded.com)
- Version
- 2.3.0
Definition in file ipv4.h.