diff options
author | Vlad Yasevich <vladislav.yasevich@hp.com> | 2008-06-04 15:40:15 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2008-06-04 15:40:15 -0400 |
commit | b9031d9d87b24e24cd32ea15b5f4220a1e8da909 (patch) | |
tree | 9033b439bfead85c115f9952fc060424788e8759 /net/sctp/protocol.c | |
parent | 8b750ce54bd8ab5f75d519ee450e1b0c5226ebe9 (diff) |
sctp: Fix ECN markings for IPv6
Commit e9df2e8fd8fbc95c57dbd1d33dada66c4627b44c ("[IPV6]: Use
appropriate sock tclass setting for routing lookup.") also changed the
way that ECN capable transports mark this capability in IPv6. As a
result, SCTP was not marking ECN capablity because the traffic class
was never set. This patch brings back the markings for IPv6 traffic.
Signed-off-by: Vlad Yasevich <vladislav.yasevich@hp.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/sctp/protocol.c')
-rw-r--r-- | net/sctp/protocol.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/net/sctp/protocol.c b/net/sctp/protocol.c index 56bdaf7fc425..b435a193c5df 100644 --- a/net/sctp/protocol.c +++ b/net/sctp/protocol.c | |||
@@ -617,6 +617,11 @@ static void sctp_v4_seq_dump_addr(struct seq_file *seq, union sctp_addr *addr) | |||
617 | seq_printf(seq, "%d.%d.%d.%d ", NIPQUAD(addr->v4.sin_addr)); | 617 | seq_printf(seq, "%d.%d.%d.%d ", NIPQUAD(addr->v4.sin_addr)); |
618 | } | 618 | } |
619 | 619 | ||
620 | static void sctp_v4_ecn_capable(struct sock *sk) | ||
621 | { | ||
622 | INET_ECN_xmit(sk); | ||
623 | } | ||
624 | |||
620 | /* Event handler for inet address addition/deletion events. | 625 | /* Event handler for inet address addition/deletion events. |
621 | * The sctp_local_addr_list needs to be protocted by a spin lock since | 626 | * The sctp_local_addr_list needs to be protocted by a spin lock since |
622 | * multiple notifiers (say IPv4 and IPv6) may be running at the same | 627 | * multiple notifiers (say IPv4 and IPv6) may be running at the same |
@@ -935,6 +940,7 @@ static struct sctp_af sctp_af_inet = { | |||
935 | .skb_iif = sctp_v4_skb_iif, | 940 | .skb_iif = sctp_v4_skb_iif, |
936 | .is_ce = sctp_v4_is_ce, | 941 | .is_ce = sctp_v4_is_ce, |
937 | .seq_dump_addr = sctp_v4_seq_dump_addr, | 942 | .seq_dump_addr = sctp_v4_seq_dump_addr, |
943 | .ecn_capable = sctp_v4_ecn_capable, | ||
938 | .net_header_len = sizeof(struct iphdr), | 944 | .net_header_len = sizeof(struct iphdr), |
939 | .sockaddr_len = sizeof(struct sockaddr_in), | 945 | .sockaddr_len = sizeof(struct sockaddr_in), |
940 | #ifdef CONFIG_COMPAT | 946 | #ifdef CONFIG_COMPAT |