Lines Matching refs:mpo
1426 mptcp_setopt_apply(struct mptses *mpte, struct mptopt *mpo)
1434 if (!(mpo->mpo_flags & MPOF_SUBFLOW_OK)) {
1444 if (mpo->mpo_level == SOL_SOCKET &&
1445 (mpo->mpo_name == SO_NOSIGPIPE || mpo->mpo_name == SO_NOADDRERR)) {
1461 mpo->mpo_flags |= MPOF_INTERIM;
1468 smpo.mpo_level = mpo->mpo_level;
1469 smpo.mpo_name = mpo->mpo_name;
1499 error = mptcp_subflow_sosetopt(mpte, so, mpo);
1549 struct mptopt smpo, *mpo = NULL;
1612 if ((mpo = mptcp_sopt_find(mpte, sopt)) == NULL)
1613 mpo = mptcp_sopt_alloc(M_WAITOK);
1615 if (mpo == NULL) {
1623 (mpo->mpo_flags & MPOF_ATTACHED) ?
1627 mpo->mpo_intval = optval;
1628 if (!(mpo->mpo_flags & MPOF_ATTACHED)) {
1629 mpo->mpo_level = level;
1630 mpo->mpo_name = optname;
1631 mptcp_sopt_insert(mpte, mpo);
1633 VERIFY(mpo->mpo_flags & MPOF_ATTACHED);
1635 mpo->mpo_flags |= MPOF_SUBFLOW_OK;
1639 mpo = &smpo;
1640 mpo->mpo_flags |= MPOF_SUBFLOW_OK;
1641 mpo->mpo_level = level;
1642 mpo->mpo_name = optname;
1643 mpo->mpo_intval = optval;
1645 VERIFY(mpo == NULL || error == 0);
1649 error = mptcp_setopt_apply(mpte, mpo);
1650 if (error != 0 && (mpo->mpo_flags & MPOF_ATTACHED)) {
1651 VERIFY(mpo != &smpo);
1652 mptcp_sopt_remove(mpte, mpo);
1653 mptcp_sopt_free(mpo);
1655 if (mpo == &smpo)
1656 mpo->mpo_flags &= ~MPOF_INTERIM;
1659 if (error == 0 && mpo != NULL) {
1663 sizeof (buf)), optval, (mpo->mpo_flags & MPOF_INTERIM) ?
1721 struct mptopt *mpo;
1723 if ((mpo = mptcp_sopt_find(mpte, sopt)) != NULL)
1724 optval = mpo->mpo_intval;