Commit 9d4a0314 authored by Hannes Frederic Sowa's avatar Hannes Frederic Sowa Committed by David S. Miller

ipv4, ipv6: send igmpv3/mld packets with TC_PRIO_CONTROL

v2:
a) Also send ipv4 igmp messages with TC_PRIO_CONTROL

Cc: William Manley <william.manley@youview.com>
Cc: Lukas Tribus <luky-37@hotmail.com>
Acked-by: default avatarBenjamin LaHaise <bcrl@kvack.org>
Signed-off-by: default avatarHannes Frederic Sowa <hannes@stressinduktion.org>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent dcfe8048
...@@ -88,6 +88,7 @@ ...@@ -88,6 +88,7 @@
#include <linux/if_arp.h> #include <linux/if_arp.h>
#include <linux/rtnetlink.h> #include <linux/rtnetlink.h>
#include <linux/times.h> #include <linux/times.h>
#include <linux/pkt_sched.h>
#include <net/net_namespace.h> #include <net/net_namespace.h>
#include <net/arp.h> #include <net/arp.h>
...@@ -315,6 +316,7 @@ static struct sk_buff *igmpv3_newpack(struct net_device *dev, int size) ...@@ -315,6 +316,7 @@ static struct sk_buff *igmpv3_newpack(struct net_device *dev, int size)
if (size < 256) if (size < 256)
return NULL; return NULL;
} }
skb->priority = TC_PRIO_CONTROL;
igmp_skb_size(skb) = size; igmp_skb_size(skb) = size;
rt = ip_route_output_ports(net, &fl4, NULL, IGMPV3_ALL_MCR, 0, rt = ip_route_output_ports(net, &fl4, NULL, IGMPV3_ALL_MCR, 0,
...@@ -670,6 +672,7 @@ static int igmp_send_report(struct in_device *in_dev, struct ip_mc_list *pmc, ...@@ -670,6 +672,7 @@ static int igmp_send_report(struct in_device *in_dev, struct ip_mc_list *pmc,
ip_rt_put(rt); ip_rt_put(rt);
return -1; return -1;
} }
skb->priority = TC_PRIO_CONTROL;
skb_dst_set(skb, &rt->dst); skb_dst_set(skb, &rt->dst);
......
...@@ -44,6 +44,7 @@ ...@@ -44,6 +44,7 @@
#include <linux/proc_fs.h> #include <linux/proc_fs.h>
#include <linux/seq_file.h> #include <linux/seq_file.h>
#include <linux/slab.h> #include <linux/slab.h>
#include <linux/pkt_sched.h>
#include <net/mld.h> #include <net/mld.h>
#include <linux/netfilter.h> #include <linux/netfilter.h>
...@@ -1376,6 +1377,7 @@ static struct sk_buff *mld_newpack(struct inet6_dev *idev, int size) ...@@ -1376,6 +1377,7 @@ static struct sk_buff *mld_newpack(struct inet6_dev *idev, int size)
if (!skb) if (!skb)
return NULL; return NULL;
skb->priority = TC_PRIO_CONTROL;
skb_reserve(skb, hlen); skb_reserve(skb, hlen);
if (__ipv6_get_lladdr(idev, &addr_buf, IFA_F_TENTATIVE)) { if (__ipv6_get_lladdr(idev, &addr_buf, IFA_F_TENTATIVE)) {
...@@ -1769,7 +1771,7 @@ static void igmp6_send(struct in6_addr *addr, struct net_device *dev, int type) ...@@ -1769,7 +1771,7 @@ static void igmp6_send(struct in6_addr *addr, struct net_device *dev, int type)
rcu_read_unlock(); rcu_read_unlock();
return; return;
} }
skb->priority = TC_PRIO_CONTROL;
skb_reserve(skb, hlen); skb_reserve(skb, hlen);
if (ipv6_get_lladdr(dev, &addr_buf, IFA_F_TENTATIVE)) { if (ipv6_get_lladdr(dev, &addr_buf, IFA_F_TENTATIVE)) {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment