VirtualBox

Changeset 23163 in vbox for trunk


Ignore:
Timestamp:
Sep 20, 2009 12:47:53 PM (15 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
52580
Message:

NAT: introduces SlirpMTU extradata-parameter for altering slirp's mtu.

Location:
trunk/src/VBox/Devices/Network
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Devices/Network/DrvNAT.cpp

    r23158 r23163  
    806806                              "PassDomain\0TFTPPrefix\0BootFile\0Network"
    807807                              "\0NextServer\0DNSProxy\0BindIP\0UseHostResolver\0"
     808#ifdef VBOX_WITH_SLIRP_BSD_MBUF
     809                              "SlirpMTU\0"
     810#endif
    808811                              "SocketRcvBuf\0SocketSndBuf\0TcpRcvSpace\0TcpSndSpace\0"))
    809812        return PDMDRV_SET_ERROR(pDrvIns, VERR_PDM_DRVINS_UNKNOWN_CFG_VALUES,
     
    841844    int fUseHostResolver = 0;
    842845    GET_S32(rc, pThis, pCfgHandle, "UseHostResolver", fUseHostResolver);
     846#ifdef VBOX_WITH_SLIRP_BSD_MBUF
     847    int MTU = 1500;
     848    GET_S32(rc, pThis, pCfgHandle, "SlirpMTU", MTU);
     849#endif
    843850
    844851    /*
     
    889896        slirp_set_dhcp_next_server(pThis->pNATState, pThis->pszNextServer);
    890897        slirp_set_dhcp_dns_proxy(pThis->pNATState, !!fDNSProxy);
     898#ifdef VBOX_WITH_SLIRP_BSD_MBUF
     899        slirp_set_mtu(pThis->pNATState, MTU);
     900#endif
    891901        char *pszBindIP = NULL;
    892902        GET_STRING_ALLOC(rc, pThis, pCfgHandle, "BindIP", pszBindIP);
  • trunk/src/VBox/Devices/Network/slirp/if.c

    r23154 r23163  
    3636    if_thresh = 10;
    3737    if_comp = IF_AUTOCOMP;
    38 #ifndef VBOX_WITH_SLIRP_BSD_MBUF
    3938    if_mtu = 1500;
    4039    if_mru = 1500;
     40#ifndef VBOX_WITH_SLIRP_BSD_MBUF
    4141    if_fastq.ifq_next = if_fastq.ifq_prev = &if_fastq;
    4242    if_batchq.ifq_next = if_batchq.ifq_prev = &if_batchq;
     
    4444    next_m = &if_batchq;
    4545#else
    46     if_mtu = 1500;
    47     if_mru = 1500;
    4846    TAILQ_INIT(&if_fastq);
    4947    TAILQ_INIT(&if_batchq);
  • trunk/src/VBox/Devices/Network/slirp/libslirp.h

    r23158 r23163  
    7272
    7373int slirp_set_binding_address(PNATState, char *addr);
     74#ifdef VBOX_WITH_SLIRP_BSD_MBUF
     75void slirp_set_mtu(PNATState, int);
     76#endif
    7477
    7578#if defined(RT_OS_WINDOWS)
  • trunk/src/VBox/Devices/Network/slirp/slirp.c

    r23158 r23163  
    20632063    LIST_INSERT_HEAD(&pData->arp_cache, ac, list);
    20642064}
     2065
     2066#ifdef VBOX_WITH_SLIRP_BSD_MBUF
     2067void slirp_set_mtu(PNATState pData, int mtu)
     2068{
     2069    if (mtu < 20 || mtu >= 16000)
     2070    {
     2071        LogRel(("NAT: mtu(%d) is out of range (20;16000] mtu forcely assigned to 1500\n", mtu));
     2072        mtu = 1500;
     2073    }
     2074    if_mtu =
     2075    if_mru = mtu;
     2076}
     2077#endif
     2078void slirp_set_dhcp_mtu(PNATState, int);
Note: See TracChangeset for help on using the changeset viewer.

© 2025 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette