networkd: ip6 tunnel add DSCP
authorSusant Sahani <susant@redhat.com>
Thu, 23 Jul 2015 04:22:24 +0000 (09:52 +0530)
committerSusant Sahani <susant@redhat.com>
Thu, 23 Jul 2015 04:22:24 +0000 (09:52 +0530)
This patch adds support for setting the
DSCP field in the ip6 tunnel.

when set it inherits DSCP field between inner and outer header.

src/network/networkd-netdev-gperf.gperf
src/network/networkd-netdev-tunnel.c
src/network/networkd-netdev-tunnel.h

index 63258c0..bdc43e8 100644 (file)
@@ -37,6 +37,7 @@ Tunnel.TTL,                  config_parse_unsigned,              0,
 Tunnel.DiscoverPathMTU,      config_parse_bool,                  0,                             offsetof(Tunnel, pmtudisc)
 Tunnel.Mode,                 config_parse_ip6tnl_mode,           0,                             offsetof(Tunnel, ip6tnl_mode)
 Tunnel.IPv6FlowLabel,        config_parse_ipv6_flowlabel,        0,                             offsetof(Tunnel, ipv6_flowlabel)
+Tunnel.DiffServiceCodePoint, config_parse_bool,                  0,                             offsetof(Tunnel, dscp)
 Peer.Name,                   config_parse_ifname,                0,                             offsetof(Veth, ifname_peer)
 Peer.MACAddress,             config_parse_hwaddr,                0,                             offsetof(Veth, mac_peer)
 VXLAN.Id,                    config_parse_uint64,                0,                             offsetof(VxLan, id)
index a13edf6..ecf0604 100644 (file)
@@ -271,6 +271,9 @@ static int netdev_ip6tnl_fill_message_create(NetDev *netdev, Link *link, sd_netl
                         return log_netdev_error_errno(netdev, r, "Could not append IFLA_IPTUN_FLOWINFO attribute: %m");
         }
 
+        if (t->dscp)
+                t->flags |= IP6_TNL_F_RCV_DSCP_COPY;
+
         r = sd_netlink_message_append_u32(m, IFLA_IPTUN_FLAGS, t->flags);
         if (r < 0)
                 return log_netdev_error_errno(netdev, r, "Could not append IFLA_IPTUN_FLAGS attribute: %m");
index 47981fb..e08e289 100644 (file)
@@ -57,6 +57,7 @@ struct Tunnel {
         IPv6FlowLabel ipv6_flowlabel;
 
         bool pmtudisc;
+        bool dscp;
 };
 
 extern const NetDevVTable ipip_vtable;