20 Sep, 2016

1 commit

  • This patch removes handling to remove short address for a neigbour entry
    if RS/RA/NS/NA doesn't contain a short address. If these messages
    doesn't has any short address option, the existing short address from
    ndisc cache will be used. The current behaviour will set that the
    neigbour doesn't has a short address anymore.

    Signed-off-by: Alexander Aring
    Signed-off-by: Marcel Holtmann

    Alexander Aring
     

08 Jul, 2016

3 commits


16 Jun, 2016

5 commits

  • This patch adds necessary handling for use the short address for
    802.15.4 6lowpan. It contains support for IPHC address compression
    and new matching algorithmn to decide which link layer address will be
    used for 802.15.4 frame.

    Reviewed-by: Stefan Schmidt
    Signed-off-by: Alexander Aring
    Signed-off-by: David S. Miller

    Alexander Aring
     
  • In case of sending RA messages we need some way to get the short address
    from an 802.15.4 6LoWPAN interface. This patch will add a temporary
    debugfs entry for experimental userspace api.

    Reviewed-by: Stefan Schmidt
    Signed-off-by: Alexander Aring
    Signed-off-by: David S. Miller

    Alexander Aring
     
  • This patch introduce different 6lowpan handling for receive and transmit
    NS/NA messages for the ipv6 neighbour discovery. The first use-case is
    for supporting 802.15.4 short addresses inside the option fields and
    handling for RFC6775 6CO option field as userspace option.

    Cc: David S. Miller
    Cc: Alexey Kuznetsov
    Cc: James Morris
    Cc: Hideaki YOSHIFUJI
    Cc: Patrick McHardy
    Reviewed-by: Stefan Schmidt
    Acked-by: YOSHIFUJI Hideaki
    Signed-off-by: Alexander Aring
    Signed-off-by: David S. Miller

    Alexander Aring
     
  • Since we use exported function from ipv6 kernel module we don't need to
    request the module anymore to have ipv6 functionality.

    Acked-by: Hannes Frederic Sowa
    Reviewed-by: Stefan Schmidt
    Signed-off-by: Alexander Aring
    Signed-off-by: David S. Miller

    Alexander Aring
     
  • This patch adds the autoconfiguration if a valid 802.15.4 short address
    is available for 802.15.4 6LoWPAN interfaces.

    Cc: David S. Miller
    Cc: Alexey Kuznetsov
    Cc: James Morris
    Cc: Hideaki YOSHIFUJI
    Cc: Patrick McHardy
    Acked-by: Hannes Frederic Sowa
    Reviewed-by: Stefan Schmidt
    Signed-off-by: Alexander Aring
    Signed-off-by: David S. Miller

    Alexander Aring
     

13 Apr, 2016

6 commits

  • In case of link-layer specific handling for 802.15.4 we need to cast to
    802.15.4 sepcific structures. Simple add this header when include the
    6lowpan header.

    Signed-off-by: Alexander Aring
    Reviewed-by: Stefan Schmidt
    Acked-by: Jukka Rissanen
    Signed-off-by: Marcel Holtmann

    Alexander Aring
     
  • This patch adds the lowpan_is_ll function, which can be used to make a
    special 6lowpan linklayer handling for a specific 6lowpan linklayer
    type.

    Signed-off-by: Alexander Aring
    Reviewed-by: Stefan Schmidt
    Acked-by: Jukka Rissanen
    Signed-off-by: Marcel Holtmann

    Alexander Aring
     
  • This function will be use in later functionality in other branches than
    generic 6lowpan, so we move it to the global 6lowpan header.

    Signed-off-by: Alexander Aring
    Reviewed-by: Stefan Schmidt
    Acked-by: Jukka Rissanen
    Signed-off-by: Marcel Holtmann

    Alexander Aring
     
  • This patch removes unnecessary zero data for a stack variable.

    Signed-off-by: Alexander Aring
    Acked-by: Jukka Rissanen
    Signed-off-by: Marcel Holtmann

    Alexander Aring
     
  • This patch adds a lowpan prefix to each functions which doesn't have
    such prefix currently.

    Reviewed-by: Stefan Schmidt
    Signed-off-by: Alexander Aring
    Acked-by: Jukka Rissanen
    Signed-off-by: Marcel Holtmann

    Alexander Aring
     
  • This patch changes the naming for interface private data for lowpan
    intefaces. The current private data scheme is:

    -------------------------------------------------
    | 6LoWPAN Generic | LinkLayer 6LoWPAN |
    -------------------------------------------------

    the current naming schemes are:

    - 6LoWPAN Generic:
    - lowpan_priv
    - LinkLayer 6LoWPAN:
    - BTLE
    - lowpan_dev
    - 802.15.4:
    - lowpan_dev_info

    the new naming scheme with this patch will be:

    - 6LoWPAN Generic:
    - lowpan_dev
    - LinkLayer 6LoWPAN:
    - BTLE
    - lowpan_btle_dev
    - 802.15.4:
    - lowpan_802154_dev

    Signed-off-by: Alexander Aring
    Reviewed-by: Stefan Schmidt
    Acked-by: Jukka Rissanen
    Signed-off-by: Marcel Holtmann

    Alexander Aring
     

09 Apr, 2016

1 commit

  • This patch fixes handling in case of link-local address compression. A
    IPv6 link-local address is defined as fe80::/10 prefix which is also
    what ipv6_addr_type checks for link-local addresses.

    But IPHC compression for link-local addresses are for fe80::/64 types
    only. This patch adds additional checks for zero padded bits in case of
    link-local address compression to match on a fe80::/64 address only.

    Signed-off-by: Alexander Aring
    Acked-by: Jukka Rissanen
    Reviewed-by: Stefan Schmidt
    Signed-off-by: Marcel Holtmann

    Alexander Aring
     

11 Mar, 2016

2 commits


26 Feb, 2016

1 commit

  • This patch fixes the return value in a case which should never occur.
    Instead returning "-EINVAL" we return LOWPAN_IPHC_DAM_00 which is
    invalid on context based addresses. Also change the WARN_ON_ONCE to
    WARN_ONCE which was suggested by Dan Carpenter.

    Reported-by: Dan Carpenter
    Signed-off-by: Alexander Aring
    Signed-off-by: Marcel Holtmann

    Alexander Aring
     

24 Feb, 2016

3 commits

  • Bool variable 'fail' is always non-negative, it indicates an error if it
    is true.

    The problem has been detected using coccinelle script
    scripts/coccinelle/tests/unsigned_lesser_than_zero.cocci

    Signed-off-by: Andrzej Hajda
    Acked-by: Alexander Aring
    Signed-off-by: Marcel Holtmann

    Andrzej Hajda
     
  • In case of multicast address we need to set always the LOWPAN_IPHC_M bit
    and if a destination context identifier was found for a multicast
    address then we need to set the LOWPAN_IPHC_DAC as well.

    Signed-off-by: Alexander Aring
    Signed-off-by: Marcel Holtmann

    Alexander Aring
     
  • This patch introduce support for IPHC stateful address compression. It
    will offer the context table via one debugfs entry.
    This debugfs has and directory for each cid entry for the context table.
    Inside each cid directory there exists the following files:

    - "active": If the entry is added or deleted. The context table is
    original a list implementation, this flag will indicate if the
    context is part of list or not.
    - "prefix": The ipv6 prefix.
    - "prefix_length": The prefix length for the prefix.
    - "compression": The compression flag according RFC6775.

    This part should be moved into sysfs after some testing time.

    Also the debugfs entry contains a "show" file which is a pretty-printout
    for the current context table information.

    Reviewed-by: Stefan Schmidt
    Signed-off-by: Alexander Aring
    Signed-off-by: Marcel Holtmann

    Alexander Aring
     

20 Dec, 2015

1 commit

  • This patches moves the debugfs interface related register after
    netdevice register. The function lowpan_dev_debugfs_init will use
    "dev->name" which can be before register_netdevice a format string.
    The function register_netdevice will evaluate the format string if
    necessary and replace "dev->name" to the real interface name.

    Reported-by: Lukasz Duda
    Signed-off-by: Alexander Aring
    Acked-by: Lukasz Duda
    Signed-off-by: Marcel Holtmann

    Alexander Aring
     

10 Dec, 2015

9 commits


21 Oct, 2015

8 commits

  • This patch moves the mcast compression algorithmn to an own function
    like all other compression/decompression methods in iphc.

    Signed-off-by: Alexander Aring
    Signed-off-by: Marcel Holtmann

    Alexander Aring
     
  • This patch reworks the handling of compression/decompression of traffic
    class and flow label handling. The current method is hard to understand,
    also doesn't checks if we can read the buffer from skb length.

    I tried to put the shifting operations into static inline functions and
    comment each steps which I did there to make it hopefully somewhat more
    readable. The big mess to deal with that is the that the ipv6 header
    bring the order "DSCP + ECN" but iphc uses "ECN + DSCP". Additional the
    DCSP + ECN bits are splitted in ipv6_hdr inside the priority and
    flow_lbl[0] fields.

    I tested these compressions by using fakelb 802.15.4 driver and
    manipulate the tc and flow label fields manually in function
    "__ip6_local_out" before the skb will be send to lower layers. Then I
    looked up the tc and flow label fields in wireshark on a wpan and lowpan
    interface.

    Signed-off-by: Alexander Aring
    Signed-off-by: Marcel Holtmann

    Alexander Aring
     
  • This patch has the main goal to delete shift operations. Instead we
    doing masks and equals afterwards. E.g. for the SAM evaluation we
    masking only the SAM value which fits in iphc1 byte, then comparing with
    all possible SAM values over a switch case statement. We will not
    shifting the SAM value to somewhat readable anymore.
    Additional this patch slighty change the naming style like RFC 6282,
    e.g. TTL to HLIM and we will drop an errno now if CID flag is set,
    because we don't support it.

    Signed-off-by: Alexander Aring
    Signed-off-by: Marcel Holtmann

    Alexander Aring
     
  • This patch removes the IPHC related defines for doing bit manipulation
    from global 6lowpan header to the iphc file which should the only one
    implementation which use these defines.

    Also move next header compression defines to their nhc implementation.

    Signed-off-by: Alexander Aring
    Signed-off-by: Marcel Holtmann

    Alexander Aring
     
  • This patch moves the iphc setting of next header commpression bit inside
    iphc functionality. Setting of IPHC bits should be happen at iphc.c file
    only.

    Signed-off-by: Alexander Aring
    Signed-off-by: Marcel Holtmann

    Alexander Aring
     
  • This patch removes the lowpan_fetch_skb_u8 function for getting the iphc
    bytes. Instead we using the generic which has a len parameter to tell
    the amount of bytes to fetch.

    Signed-off-by: Alexander Aring
    Acked-by: Jukka Rissanen
    Signed-off-by: Marcel Holtmann

    Alexander Aring
     
  • This patch changes the lowpan_header_decompress function by removing
    inklayer related information from parameters. This is currently for
    supporting short and extended address for iphc handling in 802154.
    We don't support short address handling anyway right now, but there
    exists already code for handling short addresses in
    lowpan_header_decompress.

    The address parameters are also changed to a void pointer, so 6LoWPAN
    linklayer specific code can put complex structures as these parameters
    and cast it again inside the generic code by evaluating linklayer type
    before. The order is also changed by destination address at first and
    then source address, which is the same like all others functions where
    destination is always the first, memcpy, dev_hard_header,
    lowpan_header_compress, etc.

    This patch also moves the fetching of iphc values from 6LoWPAN linklayer
    specific code into the generic branch.

    Signed-off-by: Alexander Aring
    Acked-by: Jukka Rissanen
    Signed-off-by: Marcel Holtmann

    Alexander Aring
     
  • This patch changes the lowpan_header_compress function by removing
    unused parameters like "len" and drop static value parameters of
    protocol type. Instead we really check the protocol type inside inside
    the skb structure. Also we drop the use of IEEE802154_ADDR_LEN which is
    link-layer specific. Instead we using EUI64_ADDR_LEN which should always
    the default case for now.

    Signed-off-by: Alexander Aring
    Acked-by: Jukka Rissanen
    Signed-off-by: Marcel Holtmann

    Alexander Aring