I noticed IPv6 only sets skb->priority in raw.c but not in ip6_output.c, which seems to be a mistake.
[IPV6]: Set skb->priority in ip6_output.c Set skb->priority = sk->sk_priority as in raw.c and IPv4. Signed-off-by: Patrick McHardy <[EMAIL PROTECTED]> --- commit 6c35e681553b3faf9c98d0b983c3e9f51d17fcaf tree 6793ee9dcc8b7a71b17e3faa4d0e63d3adc3cd4b parent 663f377ad5eeac785bb490e1274fd9bab000995b author Patrick McHardy <[EMAIL PROTECTED]> Mon, 09 Jan 2006 00:59:02 +0100 committer Patrick McHardy <[EMAIL PROTECTED]> Mon, 09 Jan 2006 00:59:02 +0100 net/ipv6/ip6_output.c | 4 ++++ 1 files changed, 4 insertions(+), 0 deletions(-) diff --git a/net/ipv6/ip6_output.c b/net/ipv6/ip6_output.c index b4c4beb..efa3e72 100644 --- a/net/ipv6/ip6_output.c +++ b/net/ipv6/ip6_output.c @@ -226,6 +226,8 @@ int ip6_xmit(struct sock *sk, struct sk_ ipv6_addr_copy(&hdr->saddr, &fl->fl6_src); ipv6_addr_copy(&hdr->daddr, first_hop); + skb->priority = sk->sk_priority; + mtu = dst_mtu(dst); if ((skb->len <= mtu) || ipfragok) { IP6_INC_STATS(IPSTATS_MIB_OUTREQUESTS); @@ -1182,6 +1184,8 @@ int ip6_push_pending_frames(struct sock ipv6_addr_copy(&hdr->saddr, &fl->fl6_src); ipv6_addr_copy(&hdr->daddr, final_dst); + skb->priority = sk->sk_priority; + skb->dst = dst_clone(&rt->u.dst); IP6_INC_STATS(IPSTATS_MIB_OUTREQUESTS); err = NF_HOOK(PF_INET6, NF_IP6_LOCAL_OUT, skb, NULL, skb->dst->dev, dst_output);