34 #include <netinet/in.h> 35 #include <arpa/inet.h> 44 #define NET_DEFAULT_IPV4_MASK "10.0.0.0" 45 #define NET_DEFAULT_IPV4_LEN 8 54 #define ETHERTYPE_SPRITE 0x0500 55 #define ETHERTYPE_IP 0x0800 56 #define ETHERTYPE_ARP 0x0806 57 #define ETHERTYPE_REVARP 0x8035 58 #define ETHERTYPE_IPV6 0x86DD 116 #define MAX_TCP_CONNECTIONS 100 117 #define MAX_UDP_CONNECTIONS 100 124 struct in_addr netmask_ipv4;
132 unsigned char gateway_ipv4_addr[4];
133 unsigned char gateway_ethernet_addr[6];
138 struct in_addr nameserver_ipv4;
157 void send_udp(
struct in_addr *addrp,
int portnr,
unsigned char *packet,
161 void net_ip_checksum(
unsigned char *ip_header,
int chksumoffset,
int len);
163 int tcp_len,
unsigned char *srcaddr,
unsigned char *dstaddr,
166 int con_id,
int connecting,
unsigned char *
data,
int datalen,
int rst);
168 unsigned char *packet,
int len);
169 void net_ip(
struct net *
net,
void *extra,
unsigned char *packet,
int len);
178 unsigned char **packetp,
int *lenp);
180 unsigned char *packet,
int len);
184 const char *ipv4addr,
int netipv4len,
char **remote,
int n_remote,
188 #define NET_INIT_FLAG_GATEWAY 1 207 struct in_addr ipv4_addr;
211 #define TCP_OUTSIDE_TRYINGTOCONNECT 1 212 #define TCP_OUTSIDE_CONNECTED 2 213 #define TCP_OUTSIDE_DISCONNECTED 3 214 #define TCP_OUTSIDE_DISCONNECTED2 4 216 #define TCP_INCOMING_BUF_LEN 2000 218 #define NET_ADDR_IPV4 1 219 #define NET_ADDR_IPV6 2 220 #define NET_ADDR_ETHERNET 3
void net_ethernet_tx(struct net *net, void *extra, unsigned char *packet, int len)
void net_ip_checksum(unsigned char *ip_header, int chksumoffset, int len)
struct remote_net * remote_nets
unsigned char outside_ip_address[4]
unsigned char * incoming_buf
#define MAX_TCP_CONNECTIONS
unsigned char inside_ip_address[4]
struct ethernet_packet_link * next
void net_ip_tcp_checksum(unsigned char *tcp_header, int chksumoffset, int tcp_len, unsigned char *srcaddr, unsigned char *dstaddr, int udpflag)
struct ethernet_packet_link * net_allocate_ethernet_packet_link(struct net *net, void *extra, size_t len)
void net_ip_broadcast(struct net *net, void *extra, unsigned char *packet, int len)
void net_ip(struct net *net, void *extra, unsigned char *packet, int len)
struct ethernet_packet_link * first_ethernet_packet
unsigned char ethernet_address[6]
int net_ethernet_rx(struct net *net, void *extra, unsigned char **packetp, int *lenp)
void send_udp(struct in_addr *addrp, int portnr, unsigned char *packet, size_t len)
void net_udp_rx_avail(struct net *net, void *extra)
void net_add_nic(struct net *net, void *extra, unsigned char *macaddr)
int64_t last_used_timestamp
uint32_t inside_timestamp
void net_generate_unique_mac(struct machine *, unsigned char *macbuf)
void net_tcp_rx_avail(struct net *net, void *extra)
void net_ip_tcp_connectionreply(struct net *net, void *extra, int con_id, int connecting, unsigned char *data, int datalen, int rst)
int net_ethernet_rx_avail(struct net *net, void *extra)
int64_t last_used_timestamp
#define MAX_UDP_CONNECTIONS
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_debugaddr(void *addr, int type)
struct ethernet_packet_link * prev
void net_dumpinfo(struct net *net)
uint32_t incoming_buf_seqnr
uint32_t outside_timestamp
struct ethernet_packet_link * last_ethernet_packet