Turnstone Operating System
|
Network IPv4 implementation. More...
#include <network/network_ipv4.h>
#include <network/network_icmpv4.h>
#include <network/network_udpv4.h>
#include <network/network_tcpv4.h>
#include <network/network_info.h>
#include <network/network_ethernet.h>
#include <utils.h>
#include <memory.h>
#include <logging.h>
#include <time.h>
#include <list.h>
#include <map.h>
#include <random.h>
Classes | |
struct | network_ipv4_fragment_t |
struct | network_ipv4_fragment_item_t |
union | network_ipv4_fragment_key_t |
struct | network_ipv4_fragment_key_t::fields_t |
Functions | |
MODULE ("turnstone.lib.network") | |
int8_t | network_ipv4_fragment_comparator (const void *f1, const void *f2) |
uint16_t | network_ipv4_header_checksum (network_ipv4_header_t *ipv4_hdr) |
int8_t | network_ipv4_header_checksum_verify (network_ipv4_header_t *ipv4_hdr) |
list_t * | network_ipv4_collect_fragments (network_ipv4_header_t *recv_ipv4_packet) |
uint8_t * | network_ipv4_get_packet_data (network_ipv4_header_t *recv_ipv4_packet) |
static uint64_t | network_ipv4_fragment_key_generator (network_ipv4_address_t ip, uint16_t identification, uint8_t protocol) |
boolean_t | network_ipv4_is_address_eq (const network_ipv4_address_t ipv4_addr1, const network_ipv4_address_t ipv4_addr2) |
list_t * | network_ipv4_process_packet (network_ipv4_header_t *recv_ipv4_packet, void *network_info) |
list_t * | network_ipv4_create_packet_from_icmp_packet (const network_ipv4_address_t sip, network_ipv4_address_t dip, network_icmpv4_header_t *icmp_hdr, uint16_t icmp_packet_len) |
list_t * | network_ipv4_create_packet_from_udp_packet (const network_ipv4_address_t sip, network_ipv4_address_t dip, network_udpv4_header_t *udp_hdr) |
list_t * | network_ipv4_create_packet_from_tcp_packet (const network_ipv4_address_t sip, network_ipv4_address_t dip, network_tcpv4_header_t *tcp_hdr, uint16_t packet_len) |
Variables | |
map_t * | network_ipv4_packet_fragments = NULL |
network_ipv4_address_t | NETWORK_IPV4_GLOBAL_BROADCAST_IP = { .as_bytes = {255, 255, 255, 255} } |
network_ipv4_address_t | NETWORK_IPV4_ZERO_IP = { .as_bytes = {0, 0, 0, 0} } |
Network IPv4 implementation.
This work is licensed under TURNSTONE OS Public License. Please read and understand latest version of Licence.