+ret_optlen:
+ if (TRUE == *p_mptcp_acknow ) {
+ VERIFY(old_mpt_flags != 0);
+ u_int32_t new_mpt_flags = tp->t_mpflags &
+ (TMPF_SND_MPPRIO | TMPF_SND_REM_ADDR | TMPF_SND_MPFAIL);
+
+ /*
+ * If none of the above mpflags were acted on by
+ * this routine, reset these flags and set p_mptcp_acknow
+ * to false.
+ * XXX The reset value of p_mptcp_acknow can be used
+ * to communicate tcp_output to NOT send a pure ack without any
+ * MPTCP options as it will be treated as a dup ack.
+ * Since the instances of mptcp_setup_opts not acting on
+ * these options are mostly corner cases and sending a dup
+ * ack here would only have an impact if the system
+ * has sent consecutive dup acks before this false one,
+ * we haven't modified the logic in tcp_output to avoid
+ * that.
+ */
+ if (old_mpt_flags == new_mpt_flags) {
+ tp->t_mpflags &= ~(TMPF_SND_MPPRIO
+ | TMPF_SND_REM_ADDR | TMPF_SND_MPFAIL);
+ *p_mptcp_acknow = FALSE;
+ }
+ }
+
+ return optlen;