docs: def neighsol(addr, src, iface, timeout=1, chainCC=0):
      """Sends and receive an ICMPv6 Neighbor Solicitation message
  
      This function sends an ICMPv6 Neighbor Solicitation message
      to get the MAC address of the neighbor with specified IPv6 address address.
  
      'src' address is used as source of the message. Message is sent on iface.
      By default, timeout waiting for an answer is 1 second.
  
      If no answer is gathered, None is returned. Else, the answer is
      returned (ethernet frame).
      """
  
      nsma = in6_getnsma(inet_pton(socket.AF_INET6, addr))
      d = inet_ntop(socket.AF_INET6, nsma)
      dm = in6_getnsmac(nsma)
      p = Ether(dst=dm) / IPv6(dst=d, src=src, hlim=255)
      p /= ICMPv6ND_NS(tgt=addr)
      p /= ICMPv6NDOptSrcLLAddr(lladdr=get_if_hwaddr(iface))
      res = srp1(p, type=ETH_P_IPV6, iface=iface, timeout=1, verbose=0,
                 chainCC=chainCC)
  
      return res