Turnstone Operating System
Loading...
Searching...
No Matches
network_ipv4.64.c File Reference

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
 

Typedefs

typedef struct network_ipv4_fragment_t network_ipv4_fragment_t
 
typedef struct network_ipv4_fragment_item_t network_ipv4_fragment_item_t
 
typedef union network_ipv4_fragment_key_t network_ipv4_fragment_key_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_tnetwork_ipv4_collect_fragments (network_ipv4_header_t *recv_ipv4_packet)
 
uint8_tnetwork_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_tnetwork_ipv4_process_packet (network_ipv4_header_t *recv_ipv4_packet, void *network_info)
 
list_tnetwork_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_tnetwork_ipv4_create_packet_from_udp_packet (const network_ipv4_address_t sip, network_ipv4_address_t dip, network_udpv4_header_t *udp_hdr)
 
list_tnetwork_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} }
 

Detailed Description

Network IPv4 implementation.

This work is licensed under TURNSTONE OS Public License. Please read and understand latest version of Licence.