I added this recently for some additional coverage so we hit link.down and link.unknown as well.
Rob Index: ifstated =================================================================== RCS file: /cvs/src/regress/usr.sbin/ifstated/ifstated,v retrieving revision 1.1 diff -u -p -r1.1 ifstated --- ifstated 14 Jul 2017 10:41:30 -0000 1.1 +++ ifstated 14 Jul 2017 11:59:37 -0000 @@ -100,7 +100,7 @@ state demoted { init { run "ifconfig" } - if \$net && \$carp + if \$net && ( ! carp${VHIDA}.link.down && ! carp${VHIDA}.link.unknown ) set-state primary } EOF