+ return (state & (STP_LEARNING | STP_FORWARDING)) != 0;
+}
+
+/* Returns true if 'state' is one in which bpdus should be forwarded on a
+ * port, false otherwise.
+ *
+ * Returns true if 'state' is STP_DISABLED, since in that case the port does
+ * not generate the bpdu and should just forward it (e.g. patch port on pif
+ * bridge). */
+bool
+stp_should_forward_bpdu(enum stp_state state)
+{
+ return (state &
+ ( STP_DISABLED | STP_LISTENING | STP_LEARNING
+ | STP_FORWARDING)) != 0;