Here's my view. Oakley doesn't set IPSEC SPI keys per se --- ISAKMP does this. And ISAKMP will need to define how it derives each SPI key from the Oakley keying material. Prepending a counter to the keying material and hashing would seem the obvious answer ... a "0" for one direction, "1" for the other, higher numbers for deriving keys for a "block of SPIs".