19 Apr, 2020

1 commit

  • This patch makes it impossible that cmpri or cmpre values are set to the
    value 16 which is not possible, because these are 4 bit values. We
    currently run in an overflow when assigning the value 16 to it.

    According to the standard a value of 16 can be interpreted as a full
    elided address which isn't possible to set as compression value. A reason
    why this cannot be set is that the current ipv6 header destination address
    should never show up inside the segments of the rpl header. In this case we
    run in a overflow and the address will have no compression at all. Means
    cmpri or compre is set to 0.

    As we handle cmpri and cmpre sometimes as unsigned char or 4 bit value
    inside the rpl header the current behaviour ends in an invalid header
    format. This patch simple use the best compression method if we ever run
    into the case that the destination address is showed up inside the rpl
    segments. We avoid the overflow handling and the rpl header is still valid,
    even when we have the destination address inside the rpl segments.

    Signed-off-by: Alexander Aring
    Signed-off-by: David S. Miller

    Alexander Aring
     

07 Apr, 2020

1 commit

  • This patch fix the loop iteration by not walking over the last
    iteration. The cmpri compressing value exempt the last segment. As the
    code shows the last iteration will be overwritten by cmpre value
    handling which is for the last segment.

    I think this doesn't end in any bufferoverflows because we work on worst
    case temporary buffer sizes but it ends in not best compression settings
    in some cases.

    Fixes: 8610c7c6e3bd ("net: ipv6: add support for rpl sr exthdr")
    Signed-off-by: Alexander Aring
    Signed-off-by: David S. Miller

    Alexander Aring
     

30 Mar, 2020

1 commit

  • This patch adds rpl source routing receive handling. Everything works
    only if sysconf "rpl_seg_enabled" and source routing is enabled. Mostly
    the same behaviour as IPv6 segmentation routing. To handle compression
    and uncompression a rpl.c file is created which contains the necessary
    functionality. The receive handling will also care about IPv6
    encapsulated so far it's specified as possible nexthdr in RFC 6554.

    Signed-off-by: Alexander Aring
    Signed-off-by: David S. Miller

    Alexander Aring