Help with new features in v7.23(from-pool-policy)

The new manual has description for the possible values:

address | RouterOS Manual

You only see the effect when you try to assign the same subnet-id to multiple interfaces from the same pool. Here are some tests:

/ipv6 pool
add name=ula-pool prefix=fde8:b95b:6696:100::/56 prefix-length=64

 /ipv6 address 
add interface=vlan20 address=::3:0:0:0:1/64 from-pool=ula-pool from-pool-policy=recommended 
add interface=vlan30 address=::3:0:0:0:1/64 from-pool=ula-pool from-pool-policy=recommended 
add interface=vlan40 address=::3:0:0:0:1/64 from-pool=ula-pool from-pool-policy=recommended 

Result with recommended:

As you can see, RouteOS tries to use the specified subnet-id (3 in the example) when possible (applied to vlan20) but when the subnet is already used (pool already allocated it to vlan20) the two other interfaces get the next available subnet-id from the pool (0 for vlan30 and 1 for vlan40).

Now the similar test, but with strict instead:

 /ipv6 address 
add interface=vlan20 address=::3:0:0:0:1/64 from-pool=ula-pool from-pool-policy=strict
add interface=vlan30 address=::3:0:0:0:1/64 from-pool=ula-pool from-pool-policy=strict
add interface=vlan40 address=::3:0:0:0:1/64 from-pool=ula-pool from-pool-policy=strict

Result:

With strict RouterOS is not allowed to change the subnet-id from the specifed one, as a result, only vlan20 get a valid address assigned. The two other interfaces cannot obtain a prefix from the pool, because they explicitly ask for subnet-id 3 and that one is no longer available in the pool.

If we now run:

/ipv6 address
set [find interface=vlan30 !dynamic] from-pool-policy=recommended
set [find interface=vlan40 !dynamic] from-pool-policy=recommended

Although we have not edited the address field, RouterOS will still automatically correct the subnet-id in the stored setting:

The setting is introduced because with this change from 7.21:

from 7.21-7.22 the subnet-id 0 was used as a special subnet-id that says: use the next available prefix from the pool (similar to recommended in 7.23), while all other non-zero subnet-ids had the same meaning as strict. As a result, it was not possible to pin an interface to the subnet-id 0 (the address entry will jump around).

7.23 with the new from-pool-policy parameter allows you to pin a subnet-id 0 to an interface by setting the subnet and using from-pool-policy=strict.