IPv6 over SSTP

Hello!
Haven’t found any related information, because all questions related are mostly about PD through tunnels, but my is different. I have an SSTP tunnel between two MikroTiks. In PPP->Protocols there’s an IPv6 option. When enabled, I have a LL-address on both sides of tunnel. They can be pinged fine. But my question is, how does this feature work?

  1. Is this some sort of IPv6 encapsulation in IPv4 tunnel, or does it somehow discover that there’s an IPv6 connectivity available on both ends and use it?
  2. If first, does it make sense to establish a separate v6 tunnel for v6 traffic? If second, how does it decide which address to use (when multiple global v6’s assigned to a single interface) and can this be explicitly set?
  1. the SSTP control and transport packets use the IP protocol you have chosen implicitly by setting an IPv4 or IPv6 connect-to address. Inside the transport packets, the PPP does its usual job, so there are more or less independent tunnels for each type of payload (IPv4, IPv6, BCP, MPLS, …).

  2. this question is relevant regardless which version of IP protocol is used as the transport one. Unlike with other PPP protocols, in the SSTP configuration you cannot specify a local address to use, but in ROS 7, you can use an ugly trick - specify some unusual server port, use a mangle rule that matches on the server address and this port to assign a routing mark in chain output, and then use an action=dst-nat rule in chain output in table nat to translate the unusual port to the one on which the server actually listens.

Thanks for explanation, now it’s all clear for me!