#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <errno.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <netdb.h>
#include <fcntl.h>
#include <signal.h>
#include "machine.h"
#include "misc.h"
#include "net.h"
Go to the source code of this file.
Functions | |
struct ethernet_packet_link * | net_allocate_ethernet_packet_link (struct net *net, void *extra, size_t len) |
int | net_ethernet_rx_avail (struct net *net, void *extra) |
int | net_ethernet_rx (struct net *net, void *extra, unsigned char **packetp, int *lenp) |
void | net_ethernet_tx (struct net *net, void *extra, unsigned char *packet, int len) |
void | net_add_nic (struct net *net, void *extra, unsigned char *macaddr) |
void | net_dumpinfo (struct net *net) |
struct net * | net_init (struct emul *emul, int init_flags, const char *ipv4addr, int netipv4len, char **remote, int n_remote, int local_port, const char *settings_prefix) |
void net_add_nic | ( | struct net * | net, |
void * | extra, | ||
unsigned char * | macaddr | ||
) |
Definition at line 598 of file net.cc.
References CHECK_ALLOCATION, net::n_nics, and net::nic_extra.
Referenced by dev_le_init(), and DEVINIT().
struct ethernet_packet_link* net_allocate_ethernet_packet_link | ( | struct net * | net, |
void * | extra, | ||
size_t | len | ||
) |
Definition at line 72 of file net.cc.
References CHECK_ALLOCATION, ethernet_packet_link::data, ethernet_packet_link::extra, net::first_ethernet_packet, net::last_ethernet_packet, ethernet_packet_link::len, ethernet_packet_link::next, and ethernet_packet_link::prev.
Referenced by net_ethernet_rx_avail(), net_ethernet_tx(), net_ip_tcp_connectionreply(), and net_udp_rx_avail().
void net_dumpinfo | ( | struct net * | net | ) |
Definition at line 655 of file net.cc.
References debug, DEBUG_INDENTATION, debug_indentation(), net::domain_name, net::gateway_ethernet_addr, net::gateway_ipv4_addr, remote_net::ipv4_addr, net::local_port, MAX_TCP_CONNECTIONS, MAX_UDP_CONNECTIONS, remote_net::name, net::nameserver_ipv4, net::nameserver_known, NET_ADDR_ETHERNET, NET_ADDR_IPV4, net_debugaddr(), net::netmask_ipv4, net::netmask_ipv4_len, remote_net::next, remote_net::portnr, and net::remote_nets.
Referenced by emul_dumpinfo().
int net_ethernet_rx | ( | struct net * | net, |
void * | extra, | ||
unsigned char ** | packetp, | ||
int * | lenp | ||
) |
Definition at line 316 of file net.cc.
References ethernet_packet_link::data, ethernet_packet_link::extra, net::first_ethernet_packet, net::last_ethernet_packet, ethernet_packet_link::len, ethernet_packet_link::next, and ethernet_packet_link::prev.
Referenced by dec21143_rx(), DEVICE_ACCESS(), and net_ethernet_rx_avail().
int net_ethernet_rx_avail | ( | struct net * | net, |
void * | extra | ||
) |
Definition at line 253 of file net.cc.
References ethernet_packet_link::data, net::local_port, net::local_port_socket, net::n_nics, net_allocate_ethernet_packet_link(), net_ethernet_rx(), net_tcp_rx_avail(), net_udp_rx_avail(), and net::nic_extra.
Referenced by dec21143_rx(), and DEVICE_TICK().
void net_ethernet_tx | ( | struct net * | net, |
void * | extra, | ||
unsigned char * | packet, | ||
int | len | ||
) |
Definition at line 371 of file net.cc.
References ethernet_packet_link::data, ETHERTYPE_ARP, ETHERTYPE_IP, fatal(), net::gateway_ethernet_addr, remote_net::ipv4_addr, net::n_nics, net_allocate_ethernet_packet_link(), net_ip(), net_ip_broadcast(), remote_net::next, net::nic_extra, remote_net::portnr, net::remote_nets, and send_udp().
Referenced by dec21143_tx(), and DEVICE_ACCESS().
struct net* net_init | ( | struct emul * | emul, |
int | init_flags, | ||
const char * | ipv4addr, | ||
int | netipv4len, | ||
char ** | remote, | ||
int | n_remote, | ||
int | local_port, | ||
const char * | settings_prefix | ||
) |
Definition at line 720 of file net.cc.
References CHECK_ALLOCATION, net::domain_name, net::emul, net::first_ethernet_packet, net::last_ethernet_packet, net::nameserver_known, net::netmask_ipv4, net::netmask_ipv4_len, and net::timestamp.
Referenced by emul_simple_init().