Unconfiguring a member interface from trunk(4) or simply destroying the trunk pulls the member down for no reason, both comment and code are there since import, but I see no justification for doing so.
aggr(4) does not pull its member down upon removal either. I came across this after $ doas ifconfig trunk0 destroy $ doas sh /etc/netstart trunk0 yielded no network and I had to manually pull up members. Feedback? OK? Index: if_trunk.c =================================================================== RCS file: /cvs/src/sys/net/if_trunk.c,v retrieving revision 1.149 diff -u -p -r1.149 if_trunk.c --- if_trunk.c 28 Jul 2020 09:52:32 -0000 1.149 +++ if_trunk.c 12 Sep 2020 15:41:14 -0000 @@ -423,10 +423,6 @@ trunk_port_destroy(struct trunk_port *tp /* Remove multicast addresses from this port */ trunk_ether_cmdmulti(tp, SIOCDELMULTI); - /* Port has to be down */ - if (ifp->if_flags & IFF_UP) - if_down(ifp); - ifpromisc(ifp, 0); if (tr->tr_port_destroy != NULL)