slirp_state.h revision e2f547a1107946f41f895b0717e8602435203fd8
4a1711ab536d965e63d7be80e29f912287fe70b2rbowen/** @file
4a1711ab536d965e63d7be80e29f912287fe70b2rbowen * NAT state/configuration.
4a1711ab536d965e63d7be80e29f912287fe70b2rbowen */
4a1711ab536d965e63d7be80e29f912287fe70b2rbowen
4a1711ab536d965e63d7be80e29f912287fe70b2rbowen/*
4a1711ab536d965e63d7be80e29f912287fe70b2rbowen * Copyright (C) 2006-2007 Sun Microsystems, Inc.
4a1711ab536d965e63d7be80e29f912287fe70b2rbowen *
4a1711ab536d965e63d7be80e29f912287fe70b2rbowen * This file is part of VirtualBox Open Source Edition (OSE), as
4a1711ab536d965e63d7be80e29f912287fe70b2rbowen * available from http://www.virtualbox.org. This file is free software;
4a1711ab536d965e63d7be80e29f912287fe70b2rbowen * you can redistribute it and/or modify it under the terms of the GNU
4a1711ab536d965e63d7be80e29f912287fe70b2rbowen * General Public License (GPL) as published by the Free Software
4a1711ab536d965e63d7be80e29f912287fe70b2rbowen * Foundation, in version 2 as it comes in the "COPYING" file of the
4a1711ab536d965e63d7be80e29f912287fe70b2rbowen * VirtualBox OSE distribution. VirtualBox OSE is distributed in the
4a1711ab536d965e63d7be80e29f912287fe70b2rbowen * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
4a1711ab536d965e63d7be80e29f912287fe70b2rbowen *
4a1711ab536d965e63d7be80e29f912287fe70b2rbowen * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa
4a1711ab536d965e63d7be80e29f912287fe70b2rbowen * Clara, CA 95054 USA or visit http://www.sun.com if you need
4a1711ab536d965e63d7be80e29f912287fe70b2rbowen * additional information or have any questions.
4a1711ab536d965e63d7be80e29f912287fe70b2rbowen */
4a1711ab536d965e63d7be80e29f912287fe70b2rbowen
4a1711ab536d965e63d7be80e29f912287fe70b2rbowen#ifndef _slirp_state_h_
4a1711ab536d965e63d7be80e29f912287fe70b2rbowen#define _slirp_state_h_
4a1711ab536d965e63d7be80e29f912287fe70b2rbowen#ifdef VBOX_WITH_SLIRP_ICMP
4a1711ab536d965e63d7be80e29f912287fe70b2rbowen#include "ip_icmp.h"
4a1711ab536d965e63d7be80e29f912287fe70b2rbowen#endif
2bb0656f94af82b1ff5e3e77a99b4427c52e4953rbowen
4a1711ab536d965e63d7be80e29f912287fe70b2rbowen/** Number of DHCP clients supported by NAT. */
4a1711ab536d965e63d7be80e29f912287fe70b2rbowen#define NB_ADDR 16
4a1711ab536d965e63d7be80e29f912287fe70b2rbowen
4a1711ab536d965e63d7be80e29f912287fe70b2rbowen/** Where to start DHCP IP number allocation. */
4a1711ab536d965e63d7be80e29f912287fe70b2rbowen#define START_ADDR 15
5727d620998bb261ce947ba5f530c94f3e464ae8rbowen
4a1711ab536d965e63d7be80e29f912287fe70b2rbowen/** DHCP Lease time. */
4a1711ab536d965e63d7be80e29f912287fe70b2rbowen#define LEASE_TIME (24 * 3600)
5727d620998bb261ce947ba5f530c94f3e464ae8rbowen
4a1711ab536d965e63d7be80e29f912287fe70b2rbowen/** Entry in the table of known DHCP clients. */
4a1711ab536d965e63d7be80e29f912287fe70b2rbowentypedef struct
7ff40e17761fc92c8480c9403e5404927c4c6c23rbowen{
7ff40e17761fc92c8480c9403e5404927c4c6c23rbowen bool allocated;
6c1d5074d9ce7e7ffbf344cc73acce10bbbb77c9rbowen uint8_t macaddr[6];
a66737adf71cba4fa315b7802e12cde3d887ee92rbowen} BOOTPClient;
8b79a240383bcecf28b75d4803683a7d101d2713rbowen
623c623a55d08be1d0e5295f5896aa391904b39brbowen
623c623a55d08be1d0e5295f5896aa391904b39brbowen/** TFTP session entry. */
7ff40e17761fc92c8480c9403e5404927c4c6c23rbowenstruct tftp_session
7ff40e17761fc92c8480c9403e5404927c4c6c23rbowen{
7ff40e17761fc92c8480c9403e5404927c4c6c23rbowen int in_use;
7ff40e17761fc92c8480c9403e5404927c4c6c23rbowen unsigned char filename[TFTP_FILENAME_MAX];
7ff40e17761fc92c8480c9403e5404927c4c6c23rbowen
7ff40e17761fc92c8480c9403e5404927c4c6c23rbowen struct in_addr client_ip;
7ff40e17761fc92c8480c9403e5404927c4c6c23rbowen u_int16_t client_port;
7ff40e17761fc92c8480c9403e5404927c4c6c23rbowen
7ff40e17761fc92c8480c9403e5404927c4c6c23rbowen int timestamp;
7ff40e17761fc92c8480c9403e5404927c4c6c23rbowen};
7ff40e17761fc92c8480c9403e5404927c4c6c23rbowen
7ff40e17761fc92c8480c9403e5404927c4c6c23rbowen
7ff40e17761fc92c8480c9403e5404927c4c6c23rbowen/** Main state/configuration structure for slirp NAT. */
7ff40e17761fc92c8480c9403e5404927c4c6c23rbowentypedef struct NATState
7ff40e17761fc92c8480c9403e5404927c4c6c23rbowen{
7ff40e17761fc92c8480c9403e5404927c4c6c23rbowen /* Stuff from boot.c */
7ff40e17761fc92c8480c9403e5404927c4c6c23rbowen BOOTPClient bootp_clients[NB_ADDR];
7ff40e17761fc92c8480c9403e5404927c4c6c23rbowen const char *bootp_filename;
7ff40e17761fc92c8480c9403e5404927c4c6c23rbowen /* Stuff from if.c */
7ff40e17761fc92c8480c9403e5404927c4c6c23rbowen int if_mtu, if_mru;
7ff40e17761fc92c8480c9403e5404927c4c6c23rbowen int if_comp;
7ff40e17761fc92c8480c9403e5404927c4c6c23rbowen int if_maxlinkhdr;
7ff40e17761fc92c8480c9403e5404927c4c6c23rbowen int if_queued;
7ff40e17761fc92c8480c9403e5404927c4c6c23rbowen int if_thresh;
7ff40e17761fc92c8480c9403e5404927c4c6c23rbowen struct mbuf if_fastq;
7ff40e17761fc92c8480c9403e5404927c4c6c23rbowen struct mbuf if_batchq;
7ff40e17761fc92c8480c9403e5404927c4c6c23rbowen struct mbuf *next_m;
7ff40e17761fc92c8480c9403e5404927c4c6c23rbowen /* Stuff from icmp.c */
7ff40e17761fc92c8480c9403e5404927c4c6c23rbowen struct icmpstat_t icmpstat;
7ff40e17761fc92c8480c9403e5404927c4c6c23rbowen /* Stuff from ip_input.c */
7ff40e17761fc92c8480c9403e5404927c4c6c23rbowen struct ipstat_t ipstat;
7ff40e17761fc92c8480c9403e5404927c4c6c23rbowen struct ipqhead ipq[IPREASS_NHASH];
7ff40e17761fc92c8480c9403e5404927c4c6c23rbowen int maxnipq; /* Administrative limit on # of reass queues*/
7ff40e17761fc92c8480c9403e5404927c4c6c23rbowen int maxfragsperpacket; /* Maximum number of IPv4 fragments allowed per packet */
7ff40e17761fc92c8480c9403e5404927c4c6c23rbowen int nipq; /* total number of reass queues */
7ff40e17761fc92c8480c9403e5404927c4c6c23rbowen uint16_t ip_currid;
7ff40e17761fc92c8480c9403e5404927c4c6c23rbowen /* Stuff from mbuf.c */
7ff40e17761fc92c8480c9403e5404927c4c6c23rbowen int mbuf_alloced, mbuf_max;
7ff40e17761fc92c8480c9403e5404927c4c6c23rbowen int msize;
7ff40e17761fc92c8480c9403e5404927c4c6c23rbowen struct mbuf m_freelist, m_usedlist;
7ff40e17761fc92c8480c9403e5404927c4c6c23rbowen /* Stuff from slirp.c */
7ff40e17761fc92c8480c9403e5404927c4c6c23rbowen void *pvUser;
7ff40e17761fc92c8480c9403e5404927c4c6c23rbowen uint32_t curtime;
7ff40e17761fc92c8480c9403e5404927c4c6c23rbowen uint32_t time_fasttimo;
7ff40e17761fc92c8480c9403e5404927c4c6c23rbowen uint32_t last_slowtimo;
7ff40e17761fc92c8480c9403e5404927c4c6c23rbowen bool do_slowtimo;
7ff40e17761fc92c8480c9403e5404927c4c6c23rbowen bool link_up;
7ff40e17761fc92c8480c9403e5404927c4c6c23rbowen struct timeval tt;
7ff40e17761fc92c8480c9403e5404927c4c6c23rbowen struct in_addr our_addr;
7ff40e17761fc92c8480c9403e5404927c4c6c23rbowen struct in_addr alias_addr;
7ff40e17761fc92c8480c9403e5404927c4c6c23rbowen struct in_addr special_addr;
7ff40e17761fc92c8480c9403e5404927c4c6c23rbowen struct in_addr dns_addr;
7ff40e17761fc92c8480c9403e5404927c4c6c23rbowen struct in_addr loopback_addr;
7ff40e17761fc92c8480c9403e5404927c4c6c23rbowen uint32_t netmask;
7ff40e17761fc92c8480c9403e5404927c4c6c23rbowen uint8_t client_ethaddr[6];
7ff40e17761fc92c8480c9403e5404927c4c6c23rbowen struct ex_list *exec_list;
7ff40e17761fc92c8480c9403e5404927c4c6c23rbowen char slirp_hostname[33];
7ff40e17761fc92c8480c9403e5404927c4c6c23rbowen bool fPassDomain;
7ff40e17761fc92c8480c9403e5404927c4c6c23rbowen const char *pszDomain;
7ff40e17761fc92c8480c9403e5404927c4c6c23rbowen /* Stuff from tcp_input.c */
7ff40e17761fc92c8480c9403e5404927c4c6c23rbowen struct socket tcb;
7ff40e17761fc92c8480c9403e5404927c4c6c23rbowen struct socket *tcp_last_so;
7ff40e17761fc92c8480c9403e5404927c4c6c23rbowen tcp_seq tcp_iss;
7ff40e17761fc92c8480c9403e5404927c4c6c23rbowen /* Stuff from tcp_timer.c */
7ff40e17761fc92c8480c9403e5404927c4c6c23rbowen struct tcpstat_t tcpstat;
7ff40e17761fc92c8480c9403e5404927c4c6c23rbowen uint32_t tcp_now;
7ff40e17761fc92c8480c9403e5404927c4c6c23rbowen int tcp_reass_qsize;
7ff40e17761fc92c8480c9403e5404927c4c6c23rbowen int tcp_reass_maxqlen;
7ff40e17761fc92c8480c9403e5404927c4c6c23rbowen int tcp_reass_maxseg;
7ff40e17761fc92c8480c9403e5404927c4c6c23rbowen int tcp_reass_overflows;
7ff40e17761fc92c8480c9403e5404927c4c6c23rbowen /* Stuff from tftp.c */
7ff40e17761fc92c8480c9403e5404927c4c6c23rbowen struct tftp_session tftp_sessions[TFTP_SESSIONS_MAX];
7ff40e17761fc92c8480c9403e5404927c4c6c23rbowen const char *tftp_prefix;
7ff40e17761fc92c8480c9403e5404927c4c6c23rbowen /* Stuff from udp.c */
7ff40e17761fc92c8480c9403e5404927c4c6c23rbowen struct udpstat_t udpstat;
7ff40e17761fc92c8480c9403e5404927c4c6c23rbowen struct socket udb;
7ff40e17761fc92c8480c9403e5404927c4c6c23rbowen struct socket *udp_last_so;
7ff40e17761fc92c8480c9403e5404927c4c6c23rbowen#ifdef VBOX_WITH_SLIRP_ICMP
7ff40e17761fc92c8480c9403e5404927c4c6c23rbowen struct socket icmp_socket;
7ff40e17761fc92c8480c9403e5404927c4c6c23rbowen struct icmp_storage icmp_msg_head;
7ff40e17761fc92c8480c9403e5404927c4c6c23rbowen# ifdef RT_OS_WINDOWS
623c623a55d08be1d0e5295f5896aa391904b39brbowen void *pvIcmpBuffer;
623c623a55d08be1d0e5295f5896aa391904b39brbowen size_t szIcmpBuffer;
623c623a55d08be1d0e5295f5896aa391904b39brbowen /* Accordin MSDN specification IcmpParseReplies
623c623a55d08be1d0e5295f5896aa391904b39brbowen * function should be detected in runtime
623c623a55d08be1d0e5295f5896aa391904b39brbowen */
623c623a55d08be1d0e5295f5896aa391904b39brbowen long (WINAPI * pfIcmpParseReplies)(void *, long);
623c623a55d08be1d0e5295f5896aa391904b39brbowen BOOL (WINAPI * pfIcmpCloseHandle)(HANDLE);
623c623a55d08be1d0e5295f5896aa391904b39brbowen HMODULE hmIcmpLibrary;
623c623a55d08be1d0e5295f5896aa391904b39brbowen# endif
623c623a55d08be1d0e5295f5896aa391904b39brbowen#endif
623c623a55d08be1d0e5295f5896aa391904b39brbowen#if defined(VBOX_WITH_SIMPLIFIED_SLIRP_SYNC) && defined(RT_OS_WINDOWS)
623c623a55d08be1d0e5295f5896aa391904b39brbowen# define VBOX_SOCKET_EVENT (pData->phEvents[VBOX_SOCKET_EVENT_INDEX])
623c623a55d08be1d0e5295f5896aa391904b39brbowen HANDLE phEvents[VBOX_EVENT_COUNT];
623c623a55d08be1d0e5295f5896aa391904b39brbowen#endif
623c623a55d08be1d0e5295f5896aa391904b39brbowen STAMPROFILE StatFill;
623c623a55d08be1d0e5295f5896aa391904b39brbowen STAMPROFILE StatPoll;
623c623a55d08be1d0e5295f5896aa391904b39brbowen STAMPROFILE StatFastTimer;
623c623a55d08be1d0e5295f5896aa391904b39brbowen STAMPROFILE StatSlowTimer;
623c623a55d08be1d0e5295f5896aa391904b39brbowen STAMCOUNTER StatTCP;
623c623a55d08be1d0e5295f5896aa391904b39brbowen STAMCOUNTER StatUDP;
623c623a55d08be1d0e5295f5896aa391904b39brbowen STAMCOUNTER StatTCPHot;
623c623a55d08be1d0e5295f5896aa391904b39brbowen STAMCOUNTER StatUDPHot;
623c623a55d08be1d0e5295f5896aa391904b39brbowen} NATState;
623c623a55d08be1d0e5295f5896aa391904b39brbowen
623c623a55d08be1d0e5295f5896aa391904b39brbowen
623c623a55d08be1d0e5295f5896aa391904b39brbowen/** Default IP time to live. */
623c623a55d08be1d0e5295f5896aa391904b39brbowen#define ip_defttl IPDEFTTL
623c623a55d08be1d0e5295f5896aa391904b39brbowen
623c623a55d08be1d0e5295f5896aa391904b39brbowen/** Number of permanent buffers in mbuf. */
623c623a55d08be1d0e5295f5896aa391904b39brbowen#define mbuf_thresh 30
623c623a55d08be1d0e5295f5896aa391904b39brbowen
623c623a55d08be1d0e5295f5896aa391904b39brbowen/** Use a fixed time before sending keepalive. */
623c623a55d08be1d0e5295f5896aa391904b39brbowen#define tcp_keepidle TCPTV_KEEP_IDLE
623c623a55d08be1d0e5295f5896aa391904b39brbowen
623c623a55d08be1d0e5295f5896aa391904b39brbowen/** Use a fixed interval between keepalive. */
623c623a55d08be1d0e5295f5896aa391904b39brbowen#define tcp_keepintvl TCPTV_KEEPINTVL
623c623a55d08be1d0e5295f5896aa391904b39brbowen
623c623a55d08be1d0e5295f5896aa391904b39brbowen/** Maximum idle time before timing out a connection. */
623c623a55d08be1d0e5295f5896aa391904b39brbowen#define tcp_maxidle (TCPTV_KEEPCNT * tcp_keepintvl)
623c623a55d08be1d0e5295f5896aa391904b39brbowen
623c623a55d08be1d0e5295f5896aa391904b39brbowen/** Default TCP socket options. */
623c623a55d08be1d0e5295f5896aa391904b39brbowen#define so_options DO_KEEPALIVE
623c623a55d08be1d0e5295f5896aa391904b39brbowen
623c623a55d08be1d0e5295f5896aa391904b39brbowen/** Default TCP MSS value. */
7ff40e17761fc92c8480c9403e5404927c4c6c23rbowen#define tcp_mssdflt TCP_MSS
623c623a55d08be1d0e5295f5896aa391904b39brbowen
623c623a55d08be1d0e5295f5896aa391904b39brbowen/** Default TCP round trip time. */
623c623a55d08be1d0e5295f5896aa391904b39brbowen#define tcp_rttdflt (TCPTV_SRTTDFLT / PR_SLOWHZ)
623c623a55d08be1d0e5295f5896aa391904b39brbowen
623c623a55d08be1d0e5295f5896aa391904b39brbowen/** Enable RFC1323 performance enhancements.
623c623a55d08be1d0e5295f5896aa391904b39brbowen * @todo check if it really works, it was turned off before. */
623c623a55d08be1d0e5295f5896aa391904b39brbowen#define tcp_do_rfc1323 1
623c623a55d08be1d0e5295f5896aa391904b39brbowen
623c623a55d08be1d0e5295f5896aa391904b39brbowen/** TCP receive buffer size. */
623c623a55d08be1d0e5295f5896aa391904b39brbowen#define tcp_rcvspace TCP_RCVSPACE
623c623a55d08be1d0e5295f5896aa391904b39brbowen
7ff40e17761fc92c8480c9403e5404927c4c6c23rbowen/** TCP receive buffer size. */
7ff40e17761fc92c8480c9403e5404927c4c6c23rbowen#define tcp_sndspace TCP_SNDSPACE
623c623a55d08be1d0e5295f5896aa391904b39brbowen
623c623a55d08be1d0e5295f5896aa391904b39brbowen/* TCP duplicate ACK retransmit threshold. */
623c623a55d08be1d0e5295f5896aa391904b39brbowen#define tcprexmtthresh 3
623c623a55d08be1d0e5295f5896aa391904b39brbowen
623c623a55d08be1d0e5295f5896aa391904b39brbowen
623c623a55d08be1d0e5295f5896aa391904b39brbowen#define bootp_filename pData->bootp_filename
623c623a55d08be1d0e5295f5896aa391904b39brbowen#define bootp_clients pData->bootp_clients
623c623a55d08be1d0e5295f5896aa391904b39brbowen
623c623a55d08be1d0e5295f5896aa391904b39brbowen#define if_mtu pData->if_mtu
623c623a55d08be1d0e5295f5896aa391904b39brbowen#define if_mru pData->if_mru
623c623a55d08be1d0e5295f5896aa391904b39brbowen#define if_comp pData->if_comp
623c623a55d08be1d0e5295f5896aa391904b39brbowen#define if_maxlinkhdr pData->if_maxlinkhdr
6c1d5074d9ce7e7ffbf344cc73acce10bbbb77c9rbowen#define if_queued pData->if_queued
6c1d5074d9ce7e7ffbf344cc73acce10bbbb77c9rbowen#define if_thresh pData->if_thresh
6c1d5074d9ce7e7ffbf344cc73acce10bbbb77c9rbowen#define if_fastq pData->if_fastq
6c1d5074d9ce7e7ffbf344cc73acce10bbbb77c9rbowen#define if_batchq pData->if_batchq
6c1d5074d9ce7e7ffbf344cc73acce10bbbb77c9rbowen#define next_m pData->next_m
6c1d5074d9ce7e7ffbf344cc73acce10bbbb77c9rbowen
6c1d5074d9ce7e7ffbf344cc73acce10bbbb77c9rbowen#define icmpstat pData->icmpstat
6c1d5074d9ce7e7ffbf344cc73acce10bbbb77c9rbowen
6c1d5074d9ce7e7ffbf344cc73acce10bbbb77c9rbowen#define ipstat pData->ipstat
6c1d5074d9ce7e7ffbf344cc73acce10bbbb77c9rbowen#define ipq pData->ipq
6c1d5074d9ce7e7ffbf344cc73acce10bbbb77c9rbowen#define ip_currid pData->ip_currid
6c1d5074d9ce7e7ffbf344cc73acce10bbbb77c9rbowen
6c1d5074d9ce7e7ffbf344cc73acce10bbbb77c9rbowen#define mbuf_alloced pData->mbuf_alloced
6c1d5074d9ce7e7ffbf344cc73acce10bbbb77c9rbowen#define mbuf_max pData->mbuf_max
6c1d5074d9ce7e7ffbf344cc73acce10bbbb77c9rbowen#define msize pData->msize
6c1d5074d9ce7e7ffbf344cc73acce10bbbb77c9rbowen#define m_freelist pData->m_freelist
6c1d5074d9ce7e7ffbf344cc73acce10bbbb77c9rbowen#define m_usedlist pData->m_usedlist
6c1d5074d9ce7e7ffbf344cc73acce10bbbb77c9rbowen
6c1d5074d9ce7e7ffbf344cc73acce10bbbb77c9rbowen#define curtime pData->curtime
6c1d5074d9ce7e7ffbf344cc73acce10bbbb77c9rbowen#define time_fasttimo pData->time_fasttimo
6c1d5074d9ce7e7ffbf344cc73acce10bbbb77c9rbowen#define last_slowtimo pData->last_slowtimo
6c1d5074d9ce7e7ffbf344cc73acce10bbbb77c9rbowen#define do_slowtimo pData->do_slowtimo
6c1d5074d9ce7e7ffbf344cc73acce10bbbb77c9rbowen#define link_up pData->link_up
6c1d5074d9ce7e7ffbf344cc73acce10bbbb77c9rbowen#define cUsers pData->cUsers
6c1d5074d9ce7e7ffbf344cc73acce10bbbb77c9rbowen#define tt pData->tt
6c1d5074d9ce7e7ffbf344cc73acce10bbbb77c9rbowen#define our_addr pData->our_addr
6c1d5074d9ce7e7ffbf344cc73acce10bbbb77c9rbowen#define alias_addr pData->alias_addr
6c1d5074d9ce7e7ffbf344cc73acce10bbbb77c9rbowen#define special_addr pData->special_addr
6c1d5074d9ce7e7ffbf344cc73acce10bbbb77c9rbowen#define dns_addr pData->dns_addr
6c1d5074d9ce7e7ffbf344cc73acce10bbbb77c9rbowen#define loopback_addr pData->loopback_addr
6c1d5074d9ce7e7ffbf344cc73acce10bbbb77c9rbowen#define client_ethaddr pData->client_ethaddr
6c1d5074d9ce7e7ffbf344cc73acce10bbbb77c9rbowen#define exec_list pData->exec_list
6c1d5074d9ce7e7ffbf344cc73acce10bbbb77c9rbowen#define slirp_hostname pData->slirp_hostname
6c1d5074d9ce7e7ffbf344cc73acce10bbbb77c9rbowen
6c1d5074d9ce7e7ffbf344cc73acce10bbbb77c9rbowen#define tcb pData->tcb
6c1d5074d9ce7e7ffbf344cc73acce10bbbb77c9rbowen#define tcp_last_so pData->tcp_last_so
6c1d5074d9ce7e7ffbf344cc73acce10bbbb77c9rbowen#define tcp_iss pData->tcp_iss
6c1d5074d9ce7e7ffbf344cc73acce10bbbb77c9rbowen
6c1d5074d9ce7e7ffbf344cc73acce10bbbb77c9rbowen#define tcpstat pData->tcpstat
6c1d5074d9ce7e7ffbf344cc73acce10bbbb77c9rbowen#define tcp_now pData->tcp_now
6c1d5074d9ce7e7ffbf344cc73acce10bbbb77c9rbowen
6c1d5074d9ce7e7ffbf344cc73acce10bbbb77c9rbowen#define tftp_sessions pData->tftp_sessions
6c1d5074d9ce7e7ffbf344cc73acce10bbbb77c9rbowen#define tftp_prefix pData->tftp_prefix
6c1d5074d9ce7e7ffbf344cc73acce10bbbb77c9rbowen
6c1d5074d9ce7e7ffbf344cc73acce10bbbb77c9rbowen#define udpstat pData->udpstat
6c1d5074d9ce7e7ffbf344cc73acce10bbbb77c9rbowen#define udb pData->udb
6c1d5074d9ce7e7ffbf344cc73acce10bbbb77c9rbowen#define udp_last_so pData->udp_last_so
6c1d5074d9ce7e7ffbf344cc73acce10bbbb77c9rbowen
6c1d5074d9ce7e7ffbf344cc73acce10bbbb77c9rbowen#define maxfragsperpacket pData->maxfragsperpacket
6c1d5074d9ce7e7ffbf344cc73acce10bbbb77c9rbowen#define maxnipq pData->maxnipq
6c1d5074d9ce7e7ffbf344cc73acce10bbbb77c9rbowen#define nipq pData->nipq
6c1d5074d9ce7e7ffbf344cc73acce10bbbb77c9rbowen
a66737adf71cba4fa315b7802e12cde3d887ee92rbowen#define tcp_reass_qsize pData->tcp_reass_qsize
a66737adf71cba4fa315b7802e12cde3d887ee92rbowen#define tcp_reass_maxqlen pData->tcp_reass_maxqlen
a66737adf71cba4fa315b7802e12cde3d887ee92rbowen#define tcp_reass_maxseg pData->tcp_reass_maxseg
a66737adf71cba4fa315b7802e12cde3d887ee92rbowen#define tcp_reass_overflows pData->tcp_reass_overflows
a66737adf71cba4fa315b7802e12cde3d887ee92rbowen
a66737adf71cba4fa315b7802e12cde3d887ee92rbowen#endif /* !_slirp_state_h_ */
a66737adf71cba4fa315b7802e12cde3d887ee92rbowen