ipv4: IP defragmentation must be ECN aware
authorEric Dumazet <eric.dumazet@gmail.com>
Wed, 5 Jan 2011 07:52:55 +0000 (07:52 +0000)
committerDavid S. Miller <davem@davemloft.net>
Thu, 6 Jan 2011 19:21:30 +0000 (11:21 -0800)
commit6623e3b24a5ebb07e81648c478d286a1329ab891
treee3e558391cbad217925baab7f926ec7250a810d9
parent9c86c0f4ba49b39f909d7f18731b91e563e07065
ipv4: IP defragmentation must be ECN aware

RFC3168 (The Addition of Explicit Congestion Notification to IP)
states :

5.3.  Fragmentation

   ECN-capable packets MAY have the DF (Don't Fragment) bit set.
   Reassembly of a fragmented packet MUST NOT lose indications of
   congestion.  In other words, if any fragment of an IP packet to be
   reassembled has the CE codepoint set, then one of two actions MUST be
   taken:

      * Set the CE codepoint on the reassembled packet.  However, this
        MUST NOT occur if any of the other fragments contributing to
        this reassembly carries the Not-ECT codepoint.

      * The packet is dropped, instead of being reassembled, for any
        other reason.

This patch implements this requirement for IPv4, choosing the first
action :

If one fragment had NO-ECT codepoint
        reassembled frame has NO-ECT
ElIf one fragment had CE codepoint
        reassembled frame has CE

Signed-off-by: Eric Dumazet <eric.dumazet@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/ipv4/ip_fragment.c