From: Hans Dedecker Date: Mon, 17 Sep 2018 19:41:16 +0000 (+0200) Subject: system-linux: enable by default ignore encaplimit for ip6 tunnels X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=23941d7ef3134de9c89c363896e45a0ea4fbe45b;p=oweals%2Fnetifd.git system-linux: enable by default ignore encaplimit for ip6 tunnels Enable ignore encaplimit by default for ip6 tunnels as not all ISPs support the destination option header containing the tunnel encapsulation limit resulting into broken map/ds-lite connectivity. Setting the ignore encaplimit flag by default is a more sane setting as it avoids user configuation of the encaplimit uci option for ds-lite/map tunnels in case of broken connectivity. Signed-off-by: Hans Dedecker --- diff --git a/system-linux.c b/system-linux.c index 9cd49d0..9401cd9 100644 --- a/system-linux.c +++ b/system-linux.c @@ -2344,6 +2344,7 @@ static int system_add_ip6_tunnel(const char *name, const unsigned int link, if ((cur = tb[TUNNEL_ATTR_DATA])) { struct blob_attr *tb_data[__IPIP6_DATA_ATTR_MAX]; + uint32_t tun_flags = IP6_TNL_F_IGN_ENCAP_LIMIT; blobmsg_parse(ipip6_data_attr_list.params, __IPIP6_DATA_ATTR_MAX, tb_data, blobmsg_data(cur), blobmsg_len(cur)); @@ -2361,8 +2362,8 @@ static int system_add_ip6_tunnel(const char *name, const unsigned int link, } nla_put_u8(nlm, IFLA_IPTUN_ENCAP_LIMIT, encap_limit); - } else - nla_put_u32(nlm, IFLA_IPTUN_FLAGS, IP6_TNL_F_IGN_ENCAP_LIMIT); + tun_flags &= ~IP6_TNL_F_IGN_ENCAP_LIMIT; + } } #ifdef IFLA_IPTUN_FMR_MAX @@ -2432,6 +2433,8 @@ static int system_add_ip6_tunnel(const char *name, const unsigned int link, nla_nest_end(nlm, fmrs); } #endif + if (tun_flags) + nla_put_u32(nlm, IFLA_IPTUN_FLAGS, tun_flags); } nla_nest_end(nlm, infodata);