chiark / gitweb /
networkd: add Patch of MTU discovery for IPIP and GRE
[elogind.git] / src / network / networkd-netdev-tunnel.c
index 5d5913186df61ee77e975aeaacd8925173c713b0..e5981a48d8d1adaacfc23e896633482e213dd660 100644 (file)
@@ -27,6 +27,7 @@
 
 #include "sd-rtnl.h"
 #include "networkd-netdev-tunnel.h"
+#include "networkd-link.h"
 #include "network-internal.h"
 #include "util.h"
 #include "missing.h"
@@ -74,6 +75,14 @@ static int netdev_ipip_fill_message_create(NetDev *netdev, Link *link, sd_rtnl_m
                 return r;
         }
 
+        r = sd_rtnl_message_append_u8(m, IFLA_IPTUN_PMTUDISC, t->pmtudisc);
+        if (r < 0) {
+                log_error_netdev(netdev,
+                                 "Could not append IFLA_IPTUN_PMTUDISC attribute: %s",
+                                 strerror(-r));
+                return r;
+        }
+
         return r;
 }
 
@@ -119,6 +128,14 @@ static int netdev_sit_fill_message_create(NetDev *netdev, Link *link, sd_rtnl_me
                 return r;
         }
 
+        r = sd_rtnl_message_append_u8(m, IFLA_IPTUN_PMTUDISC, t->pmtudisc);
+        if (r < 0) {
+                log_error_netdev(netdev,
+                                 "Could not append IFLA_IPTUN_PMTUDISC attribute: %s",
+                                 strerror(-r));
+                return r;
+        }
+
         return r;
 }
 
@@ -172,6 +189,14 @@ static int netdev_gre_fill_message_create(NetDev *netdev, Link *link, sd_rtnl_me
                 return r;
         }
 
+        r = sd_rtnl_message_append_u8(m, IFLA_GRE_PMTUDISC, t->pmtudisc);
+        if (r < 0) {
+                log_error_netdev(netdev,
+                                 "Could not append IFLA_GRE_PMTUDISC attribute: %s",
+                                 strerror(-r));
+                return r;
+        }
+
         return r;
 }