Date:2011-05-08 19:08:06 (12 years 10 months ago)
Author:thepeople
Commit:318f8f9eeb3d6379d7cb5c709aea47f754da6119
Message:[PATCH] ipv6: restore correct ECN handling on TCP xmit Thanks Dave Taht

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@26858 3c298f89-4303-0410-b956-a3cf2f4a3e73
Files: target/linux/generic/patches-2.6.37/110_fix_ecn_marking_ipv6.patch (1 diff)
target/linux/generic/patches-2.6.38/110_fix_ecn_marking_ipv6.patch (1 diff)

Change Details

target/linux/generic/patches-2.6.37/110_fix_ecn_marking_ipv6.patch
1--- a/include/net/inet_ecn.h
2@@ -38,9 +38,19 @@ static inline __u8 INET_ECN_encapsulate(__u8 outer, __u8 inner)
3     return outer;
4 }
5
6-#define INET_ECN_xmit(sk) do { inet_sk(sk)->tos |= INET_ECN_ECT_0; } while (0)
7-#define INET_ECN_dontxmit(sk) \
8- do { inet_sk(sk)->tos &= ~INET_ECN_MASK; } while (0)
9+static inline void INET_ECN_xmit(struct sock *sk)
10+{
11+ inet_sk(sk)->tos |= INET_ECN_ECT_0;
12+ if (inet6_sk(sk) != NULL)
13+ inet6_sk(sk)->tclass |= INET_ECN_ECT_0;
14+}
15+
16+static inline void INET_ECN_dontxmit(struct sock *sk)
17+{
18+ inet_sk(sk)->tos &= ~INET_ECN_MASK;
19+ if (inet6_sk(sk) != NULL)
20+ inet6_sk(sk)->tclass &= ~INET_ECN_MASK;
21+}
22
23 #define IP6_ECN_flow_init(label) do { \
24       (label) &= ~htonl(INET_ECN_MASK << 20); \
target/linux/generic/patches-2.6.38/110_fix_ecn_marking_ipv6.patch
1--- a/include/net/inet_ecn.h
2@@ -38,9 +38,19 @@ static inline __u8 INET_ECN_encapsulate(__u8 outer, __u8 inner)
3     return outer;
4 }
5
6-#define INET_ECN_xmit(sk) do { inet_sk(sk)->tos |= INET_ECN_ECT_0; } while (0)
7-#define INET_ECN_dontxmit(sk) \
8- do { inet_sk(sk)->tos &= ~INET_ECN_MASK; } while (0)
9+static inline void INET_ECN_xmit(struct sock *sk)
10+{
11+ inet_sk(sk)->tos |= INET_ECN_ECT_0;
12+ if (inet6_sk(sk) != NULL)
13+ inet6_sk(sk)->tclass |= INET_ECN_ECT_0;
14+}
15+
16+static inline void INET_ECN_dontxmit(struct sock *sk)
17+{
18+ inet_sk(sk)->tos &= ~INET_ECN_MASK;
19+ if (inet6_sk(sk) != NULL)
20+ inet6_sk(sk)->tclass &= ~INET_ECN_MASK;
21+}
22
23 #define IP6_ECN_flow_init(label) do { \
24       (label) &= ~htonl(INET_ECN_MASK << 20); \

Archive Download the corresponding diff file



interactive