Bug ID 1664
Summary rte_ipv6_addr_is_v4mapped wrong logic
Product DPDK
Version unspecified
Hardware All
OS All
Status UNCONFIRMED
Severity normal
Priority Normal
Component ethdev
Assignee dev@dpdk.org
Reporter sunnylandh@gmail.com
Target Milestone ---

rte_ipv6_addr_is_v4mapped() is implemented by comparing the first 32 bits of an
IPv6 address with the ::ffff:0.0.0.0/96 prefix.
https://git.dpdk.org/dpdk/tree/lib/net/rte_ip6.h?id=fba9875559906e04eaeb74532f4cfd51194259a2#n313

The following snippet prints "1", but the loopback address is not a v4mapped
address.

#include <stdio.h>
#include <rte_ip6.h>

int main() {
  struct rte_ipv6_addr a = RTE_IPV6_ADDR_LOOPBACK;
  printf("%d\n", rte_ipv6_addr_is_v4mapped(&a));
}

The function should compare the first 96 bits instead.

rte_ipv6_addr_is_v4compat() has the same mistake.
          


You are receiving this mail because: