KNI example has a couple of bugs that can cause surprises if using failsafe (or bonding). The portmask argument to kni does not check that device is not a sub device (already owned) and allows any device.
While your at it, the portmask for kni is only 32 bits which is not big enough on some systems.