提交 ee686ca9 编写于 作者: A Andreas Jaggi 提交者: David S. Miller

gre: fix ToS/DiffServ inherit bug

Fixes two bugs:
- ToS/DiffServ inheritance was unintentionally activated when using impair fixed ToS values
- ECN bit was lost during ToS/DiffServ inheritance
Signed-off-by: NAndreas Jaggi <aj@open.ch>
Signed-off-by: NDavid S. Miller <davem@davemloft.net>
上级 c8159b2d
...@@ -735,10 +735,10 @@ static int ipgre_tunnel_xmit(struct sk_buff *skb, struct net_device *dev) ...@@ -735,10 +735,10 @@ static int ipgre_tunnel_xmit(struct sk_buff *skb, struct net_device *dev)
} }
tos = tiph->tos; tos = tiph->tos;
if (tos&1) { if (tos == 1) {
tos = 0;
if (skb->protocol == htons(ETH_P_IP)) if (skb->protocol == htons(ETH_P_IP))
tos = old_iph->tos; tos = old_iph->tos;
tos &= ~1;
} }
{ {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册