diff options
author | Steven Barth <steven@midlink.org> | 2015-06-24 13:02:37 +0200 |
---|---|---|
committer | Steven Barth <steven@midlink.org> | 2015-06-24 13:02:37 +0200 |
commit | 5b29ffda0099c3bcb8d17a728e1e89dc21a2e68d (patch) | |
tree | ddfdd742a3623aae056f7d69f9d59b5c94376965 /interface-ip.c | |
parent | 5cf30b59baa03db2448570c78e7e92873555d2ec (diff) |
Add mtu6 option to override IPv6 MTU
Signed-off-by: Steven Barth <steven@midlink.org>
Diffstat (limited to 'interface-ip.c')
-rw-r--r-- | interface-ip.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/interface-ip.c b/interface-ip.c index aec3892..7f8a451 100644 --- a/interface-ip.c +++ b/interface-ip.c @@ -767,10 +767,11 @@ interface_set_prefix_address(struct device_prefix_assignment *assignment, route.metric = iface->metric; system_add_route(l3_downlink, &route); - if (uplink && uplink->l3_dev.dev) { - int mtu = system_update_ipv6_mtu( - uplink->l3_dev.dev, 0); - if (mtu > 0) + if (uplink && uplink->l3_dev.dev && !(l3_downlink->settings.flags & DEV_OPT_MTU6)) { + int mtu = system_update_ipv6_mtu(uplink->l3_dev.dev, 0); + int mtu_old = system_update_ipv6_mtu(l3_downlink, 0); + + if (mtu > 0 && mtu_old > mtu) system_update_ipv6_mtu(l3_downlink, mtu); } |