• J
    Bluetooth: 6LoWPAN: Fix MAC address universal/local bit handling · 62bbd5b3
    Jukka Rissanen 提交于
    The universal/local bit handling was incorrectly done in the code.
    
    So when setting EUI address from BD address we do this:
    - If BD address type is PUBLIC, then we clear the universal bit
      in EUI address. If the address type is RANDOM, then the universal
      bit is set (BT 6lowpan draft chapter 3.2.2)
    - After this we invert the universal/local bit according to RFC 2464
    
    When figuring out BD address we do the reverse:
    - Take EUI address from stateless IPv6 address, invert the
      universal/local bit according to RFC 2464
    - If universal bit is 1 in this modified EUI address, then address
      type is set to RANDOM, otherwise it is PUBLIC
    
    Note that 6lowpan_iphc.[ch] does the final toggling of U/L bit
    before sending or receiving the network packet.
    Signed-off-by: NJukka Rissanen <jukka.rissanen@linux.intel.com>
    Signed-off-by: NMarcel Holtmann <marcel@holtmann.org>
    Cc: stable@vger.kernel.org
    62bbd5b3
6lowpan.c 19.4 KB