diff options
author | Akihiro Suda <suda.akihiro@lab.ntt.co.jp> | 2018-08-02 14:57:24 +0900 |
---|---|---|
committer | Akihiro Suda <suda.akihiro@lab.ntt.co.jp> | 2018-08-02 15:10:21 +0900 |
commit | ea630a7e945cf538184ff1b1b4bd7b8ddc01993e (patch) | |
tree | d8c4ca34825ea867133816774365cf2d9c58814b /slirp4netns.c | |
parent | 02ab805e2b3cbe20e97ea22b8bd4c75b24d46bc7 (diff) |
allow custom MTU
Signed-off-by: Akihiro Suda <suda.akihiro@lab.ntt.co.jp>
Diffstat (limited to 'slirp4netns.c')
-rw-r--r-- | slirp4netns.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/slirp4netns.c b/slirp4netns.c index 66df100..b77457a 100644 --- a/slirp4netns.c +++ b/slirp4netns.c @@ -21,7 +21,7 @@ void slirp_output(void *opaque, const uint8_t * pkt, int pkt_len) assert(rc == pkt_len); } -Slirp *create_slirp(void *opaque) +Slirp *create_slirp(void *opaque, unsigned int mtu) { Slirp *slirp = NULL; struct in_addr vnetwork, vnetmask, vhost, vdhcp_start, vnameserver; @@ -35,6 +35,7 @@ Slirp *create_slirp(void *opaque) vnetwork, vnetmask, vhost, 0 /* ip6_enabled */ , vprefix_addr6, 0 /* vprefix_len */ , vhost6, NULL /* vhostname */ , NULL /* bootfile */ , vdhcp_start, vnameserver, vnameserver6, NULL /* vdnssearch */ , NULL /* vdomainname */ , + mtu /* if_mtu */ , mtu /* if_mru */ , opaque); if (slirp == NULL) { fprintf(stderr, "slirp_init failed\n"); @@ -44,7 +45,7 @@ Slirp *create_slirp(void *opaque) #define ETH_BUF_SIZE (65536) -int do_slirp(int tapfd, int exitfd) +int do_slirp(int tapfd, int exitfd, unsigned int mtu) { int ret = -1; Slirp *slirp = NULL; @@ -55,7 +56,7 @@ int do_slirp(int tapfd, int exitfd) struct pollfd tap_pollfd = { tapfd, POLLIN | POLLHUP, 0 }; struct pollfd exit_pollfd = { exitfd, POLLHUP, 0 }; - slirp = create_slirp((void *)&opaque); + slirp = create_slirp((void *)&opaque, mtu); if (slirp == NULL) { fprintf(stderr, "create_slirp failed\n"); goto err; |