Bug 1441

Summary: IPv4 header length field is ignored in Ipv4Header
Product: ns-3 Reporter: Thomas Geithner <thomas.geithner>
Component: internetAssignee: George Riley <riley>
Status: RESOLVED FIXED    
Severity: normal CC: ns-bugs, tomh
Priority: P5    
Version: ns-3.13   
Hardware: All   
OS: All   
Attachments: patch for IPv4 header length handling

Description Thomas Geithner 2012-05-30 10:01:19 UTC
Created attachment 1407 [details]
patch for IPv4 header length handling

The IPv4 header length field is ignored which causes errors in emulation mode (TAP NetDevice) when the packet contains an options field and is parsed in ns-3 (patch that solves the problem is attached).

Example: IGMP packet generated by a Linux host (header length = 24):

...
Internet Protocol Version 4, Src: 0.0.0.0 (0.0.0.0), Dst: 224.0.0.1 (224.0.0.1)
    Version: 4
    Header length: 24 bytes
    Differentiated Services Field: 0xc0 (DSCP 0x30: Class Selector 6; ECN: 0x00: Not-ECT (Not ECN-Capable Transport))
        1100 00.. = Differentiated Services Codepoint: Class Selector 6 (0x30)
        .... ..00 = Explicit Congestion Notification: Not-ECT (Not ECN-Capable Transport) (0x00)
    Total Length: 32
    Identification: 0x0000 (0)
    Flags: 0x02 (Don't Fragment)
        0... .... = Reserved bit: Not set
        .1.. .... = Don't fragment: Set
        ..0. .... = More fragments: Not set
    Fragment offset: 0
    Time to live: 1
    Protocol: IGMP (2)
    Header checksum: 0x0417 [correct]
        [Good: True]
        [Bad: False]
    Source: 0.0.0.0 (0.0.0.0)
    Destination: 224.0.0.1 (224.0.0.1)
    Options: (4 bytes)
        Router Alert: Every router examines packet
Internet Group Management Protocol
    [IGMP Version: 2]
    Type: Membership Query (0x11)
    Max Response Time: 10,0 sec (0x64)
    Header checksum: 0xee9b [correct]
    Multicast Address: 0.0.0.0 (0.0.0.0)
Comment 1 Tom Henderson 2012-05-30 12:52:19 UTC
fixed in changeset: b425987e55df