Lines Matching refs:scp
696 if (sp->scp[IDX_LCP].state == STATE_OPENED) {
701 ++sp->scp[IDX_LCP].seq, m->m_pkthdr.len + 2,
746 if (sp->scp[IDX_IPCP].state == STATE_OPENED) {
770 if (sp->scp[IDX_IPV6CP].state == STATE_OPENED) {
847 sppp_wq_add(sp->wq_cp, &sp->scp[IDX_LCP].work_open);
953 if (sp->scp[IDX_IPCP].state != STATE_OPENED) {
980 if (sp->scp[IDX_IPV6CP].state != STATE_OPENED) {
1083 memset(sp->scp, 0, sizeof(sp->scp));
1258 sppp_wq_add(sp->wq_cp, &sp->scp[IDX_LCP].work_close);
1264 &sp->scp[IDX_LCP].work_open);
1296 if (sp->scp[IDX_LCP].state == STATE_OPENED &&
1456 sppp_wq_add(sp->wq_cp, &sp->scp[IDX_LCP].work_to);
1464 sppp_wq_add(sp->wq_cp, &sp->scp[IDX_IPCP].work_to);
1472 sppp_wq_add(sp->wq_cp, &sp->scp[IDX_IPV6CP].work_to);
1480 sppp_wq_add(sp->wq_cp, &sp->scp[IDX_PAP].work_to);
1488 sppp_wq_add(sp->wq_cp, &sp->scp[IDX_CHAP].work_to);
1494 struct sppp_cp *scp;
1504 scp = &sp->scp[cp->protoidx];
1505 scp->state = STATE_INITIAL;
1506 scp->fail_counter = 0;
1507 scp->seq = 0;
1508 scp->rseq = 0;
1510 SPPP_WQ_SET(&scp->work_up, cp->Up, cp);
1511 SPPP_WQ_SET(&scp->work_down, cp->Down, cp);
1512 SPPP_WQ_SET(&scp->work_open, cp->Open, cp);
1513 SPPP_WQ_SET(&scp->work_close, cp->Close, cp);
1514 SPPP_WQ_SET(&scp->work_to, cp->TO, cp);
1515 SPPP_WQ_SET(&scp->work_rcr, sppp_rcr_event, cp);
1516 SPPP_WQ_SET(&scp->work_rca, sppp_rca_event, cp);
1517 SPPP_WQ_SET(&scp->work_rcn, sppp_rcn_event, cp);
1518 SPPP_WQ_SET(&scp->work_rtr, sppp_rtr_event, cp);
1519 SPPP_WQ_SET(&scp->work_rta, sppp_rta_event, cp);
1520 SPPP_WQ_SET(&scp->work_rxj, sppp_rxj_event, cp);
1522 callout_init(&scp->ch, CALLOUT_MPSAFE);
1523 callout_setfunc(&scp->ch, to_cb[cp->protoidx], sp);
1529 struct sppp_cp *scp;
1530 scp = &sp->scp[cp->protoidx];
1532 sppp_wq_wait(sp->wq_cp, &scp->work_up);
1533 sppp_wq_wait(sp->wq_cp, &scp->work_down);
1534 sppp_wq_wait(sp->wq_cp, &scp->work_open);
1535 sppp_wq_wait(sp->wq_cp, &scp->work_close);
1536 sppp_wq_wait(sp->wq_cp, &scp->work_to);
1537 sppp_wq_wait(sp->wq_cp, &scp->work_rcr);
1538 sppp_wq_wait(sp->wq_cp, &scp->work_rca);
1539 sppp_wq_wait(sp->wq_cp, &scp->work_rcn);
1540 sppp_wq_wait(sp->wq_cp, &scp->work_rtr);
1541 sppp_wq_wait(sp->wq_cp, &scp->work_rta);
1542 sppp_wq_wait(sp->wq_cp, &scp->work_rxj);
1544 callout_halt(&scp->ch, NULL);
1545 callout_destroy(&scp->ch);
1547 m_freem(scp->mbuf_confreq);
1548 scp->mbuf_confreq = NULL;
1549 m_freem(scp->mbuf_confnak);
1550 scp->mbuf_confnak = NULL;
1561 struct sppp_cp *scp;
1573 scp = &sp->scp[cp->protoidx];
1585 cp->name, sppp_state_name(scp->state),
1605 scp->rcr_type = CP_RCR_NONE;
1606 scp->rconfid = h->ident;
1607 m_freem(scp->mbuf_confreq);
1608 scp->mbuf_confreq = m;
1610 sppp_wq_add(sp->wq_cp, &scp->work_rcr);
1613 if (h->ident != scp->confid) {
1615 cp->name, h->ident, scp->confid);
1619 sppp_wq_add(sp->wq_cp, &scp->work_rca);
1623 if (h->ident != scp->confid) {
1625 cp->name, h->ident, scp->confid);
1630 m_freem(scp->mbuf_confnak);
1631 scp->mbuf_confnak = m;
1633 sppp_wq_add(sp->wq_cp, &scp->work_rcn);
1636 scp->rseq = h->ident;
1637 sppp_wq_add(sp->wq_cp, &scp->work_rtr);
1640 if (h->ident != scp->confid &&
1641 h->ident != scp->seq) {
1644 cp->name, h->ident, scp->confid,
1645 h->ident, scp->seq);
1650 sppp_wq_add(sp->wq_cp, &scp->work_rta);
1657 sppp_wq_add(sp->wq_cp, &scp->work_rxj);
1684 upper ? sppp_state_name(sp->scp[upper->protoidx].state) : "?");
1692 if (sp->scp[upper->protoidx].state == STATE_REQ_SENT) {
1694 &sp->scp[upper->protoidx].work_close);
1698 sppp_wq_add(sp->wq_cp, &scp->work_rxj);
1709 if (scp->state != STATE_OPENED) {
1732 &sp->scp[IDX_LCP].work_close);
1734 &sp->scp[IDX_LCP].work_open);
1766 ++scp->seq, m->m_pkthdr.len, h);
1792 sppp_state_name(sp->scp[cp->protoidx].state));
1794 switch (sp->scp
1799 sp->scp[cp->protoidx].rst_counter = sp->lcp.max_configure;
1806 sppp_state_name(sp->scp[cp->protoidx].state));
1823 sppp_state_name(sp->scp[cp->protoidx].state));
1825 switch (sp->scp[cp->protoidx].state) {
1853 sppp_state_name(sp->scp[cp->protoidx].state));
1870 sppp_state_name(sp->scp[cp->protoidx].state));
1872 switch (sp->scp[cp->protoidx].state) {
1880 sp->scp[cp->protoidx].rst_counter = sp->lcp.max_configure;
1911 sppp_state_name(sp->scp[cp->protoidx].state));
1913 switch (sp->scp[cp->protoidx].state) {
1934 sp->scp[cp->protoidx].rst_counter = sp->lcp.max_terminate;
1937 ++sp->scp[cp->protoidx].seq, 0, 0);
1956 sppp_state_name(sp->scp[cp->protoidx].state),
1957 sp->scp[cp->protoidx].rst_counter);
1959 if (--sp->scp[cp->protoidx].rst_counter < 0)
1961 switch (sp->scp[cp->protoidx].state) {
1979 switch (sp->scp[cp->protoidx].state) {
1984 ++sp->scp[cp->protoidx].seq, 0, 0);
1986 callout_schedule(&sp->scp[cp->protoidx].ch, sp->lcp.timeout);
1996 callout_schedule(&sp->scp[cp->protoidx].ch, sp->lcp.timeout);
2013 sppp_wq_add(sp->wq_cp, &sp->scp[IDX_LCP].work_close);
2014 sppp_wq_add(sp->wq_cp, &sp->scp[IDX_LCP].work_open);
2018 switch (sp->scp[cp->protoidx].state) {
2054 sppp_state_name(sp->scp[cp->protoidx].state));
2060 switch (sp->scp[cp->protoidx].state) {
2095 sppp_state_name(sp->scp[cp->protoidx].state));
2105 struct sppp_cp *scp;
2116 scp = &sp->scp[cp->protoidx];
2119 m = scp->mbuf_confreq;
2122 scp->mbuf_confreq = NULL;
2138 type = scp->rcr_type;
2139 ident = scp->rconfid;
2160 switch (sp->scp[cp->protoidx].state) {
2165 sp->scp[cp->protoidx].rconfid, 0, 0);
2172 sp->scp[cp->protoidx].rst_counter = sp->lcp.max_configure;
2184 sp->scp[cp->protoidx].rst_counter = sp->lcp.max_configure;
2191 sppp_state_name(sp->scp[cp->protoidx].state));
2200 struct sppp_cp *scp;
2208 scp = &sp->scp[cp->protoidx];
2209 m = scp->mbuf_confnak;
2212 scp->mbuf_confnak = NULL;
2231 switch (scp->state) {
2236 scp->rconfid, 0, 0);
2241 scp->rst_counter = sp->lcp.max_configure;
2256 cp->name, sppp_state_name(scp->state));
2271 switch (sp->scp[cp->protoidx].state) {
2284 sp->scp[cp->protoidx].rst_counter = 0;
2290 sppp_state_name(sp->scp[cp->protoidx].state));
2299 sp->scp[cp->protoidx].rseq, 0, 0);
2311 switch (sp->scp[cp->protoidx].state) {
2335 cp->name, sppp_state_name(sp->scp[cp->protoidx].state));
2349 switch (sp->scp[cp->protoidx].state) {
2363 cp->name, sppp_state_name(sp->scp[cp->protoidx].state));
2378 sp->scp[cp->protoidx].state = newstate;
2379 callout_stop(&sp->scp[cp->protoidx].ch);
2392 callout_schedule(&sp->scp[cp->protoidx].ch, sp->lcp.timeout);
2451 if (sp->scp[pidx].state == STATE_INITIAL) {
2454 sppp_wq_add(sp->wq_cp, &sp->scp[pidx].work_open);
2481 if (sp->scp[pidx].state == STATE_STARTING &&
2491 scp[IDX_LCP].work_open);
2494 if (sp->scp[pidx].state != STATE_INITIAL)
2495 sppp_wq_add(sp->wq_cp, &sp->scp[pidx].work_close);
2498 sp->scp[pidx].fail_counter = 0;
2509 sp->scp[IDX_LCP].fail_counter = 0;
2745 &sp->scp[IDX_LCP].work_close);
2747 &sp->scp[IDX_LCP].work_open);
2875 if (++sp->scp[IDX_LCP].fail_counter >= sp->lcp.max_failure) {
2887 sp->scp[IDX_LCP].fail_counter = 0;
2987 sppp_wq_add(sp->wq_cp, &sp->scp[IDX_LCP].work_close);
3084 sppp_wq_add(sp->wq_cp, &sp->scp[IDX_LCP].work_close);
3098 struct sppp_cp *scp;
3147 scp = &sp->scp[(cps[i])->protoidx];
3150 sppp_wq_add(sp->wq_cp, &scp->work_up);
3160 sppp_wq_add(sp->wq_cp, &scp->work_open);
3165 sppp_wq_add(sp->wq_cp, &scp->work_open);
3177 struct sppp_cp *scp;
3209 scp = &sp->scp[(cps[i])->protoidx];
3212 sppp_wq_add(sp->wq_cp, &scp->work_down);
3215 sppp_wq_add(sp->wq_cp, &scp->work_close);
3221 sppp_wq_add(sp->wq_cp, &scp->work_close);
3250 switch (sp->scp[IDX_LCP].state) {
3299 sp->scp[IDX_LCP].confid = ++sp->scp[IDX_LCP].seq;
3300 sppp_cp_send(sp, PPP_LCP, CONF_REQ, sp->scp[IDX_LCP].confid, i, &opt);
3341 sppp_wq_add(sp->wq_cp, &sp->scp[IDX_LCP].work_close);
3351 sppp_wq_add(sp->wq_cp, &sp->scp[IDX_LCP].work_open);
3894 &sp->scp[IDX_IPCP].work_close);
3972 sp->scp[IDX_IPCP].confid = ++sp->scp[IDX_IPCP].seq;
3973 sppp_cp_send(sp, PPP_IPCP, CONF_REQ, sp->scp[IDX_IPCP].confid, i, &opt);
4499 sp->scp[IDX_IPV6CP].confid = ++sp->scp[IDX_IPV6CP].seq;
4500 sppp_cp_send(sp, PPP_IPV6CP, CONF_REQ, sp->scp[IDX_IPV6CP].confid, i, &opt);
4667 sp->scp[IDX_CHAP].rconfid = h->ident;
4682 if (h->ident != sp->scp[IDX_CHAP].rconfid) {
4685 sp->scp[IDX_CHAP].rconfid);
4709 sp->scp[IDX_CHAP].rcr_type = CP_RCR_ACK;
4710 sppp_wq_add(sp->wq_cp, &sp->scp[IDX_CHAP].work_rcr);
4712 sppp_wq_add(sp->wq_cp, &sp->scp[IDX_CHAP].work_rca);
4716 if (h->ident != sp->scp[IDX_CHAP].rconfid) {
4718 chap.name, h->ident, sp->scp[IDX_CHAP].rconfid);
4746 * so we don't have to enqueue sc->scp[IDX_CHAP].work_rcn
4777 if (h->ident != sp->scp[IDX_CHAP].confid) {
4780 h->ident, sp->scp[IDX_CHAP].confid);
4783 sp->scp[IDX_CHAP].rconfid = h->ident;
4798 sp->scp[IDX_CHAP].rcr_type = CP_RCR_NAK;
4799 sppp_wq_add(sp->wq_cp, &sp->scp[IDX_CHAP].work_rcr);
4808 sppp_state_name(sp->scp[IDX_CHAP].state),
4825 sp->scp[IDX_CHAP].rcr_type = CP_RCR_ACK;
4827 sp->scp[IDX_CHAP].rcr_type = CP_RCR_NAK;
4837 sp->scp[IDX_CHAP].rcr_type = CP_RCR_NAK;
4840 sppp_wq_add(sp->wq_cp, &sp->scp[IDX_CHAP].work_rcr);
4843 if (sp->scp[IDX_CHAP].rcr_type == CP_RCR_ACK &&
4846 sppp_wq_add(sp->wq_cp, &sp->scp[IDX_CHAP].work_rca);
4855 sppp_state_name(sp->scp[IDX_CHAP].state),
4901 sp->scp[IDX_CHAP].rst_counter = sp->lcp.max_configure;
4922 callout_schedule(&sp->scp[IDX_CHAP].ch, i * hz);
4958 sp->scp[IDX_CHAP].confid = ++sp->scp[IDX_CHAP].seq;
4959 sppp_auth_send(&chap, sp, CHAP_CHALLENGE, sp->scp[IDX_CHAP].confid,
4970 sppp_auth_send(&chap, sp, CHAP_RESPONSE, sp->scp[IDX_CHAP].rconfid,
4986 switch (sp->scp[IDX_CHAP].state) {
5087 sppp_state_name(sp->scp[IDX_PAP].state),
5095 sp->scp[IDX_PAP].rconfid = h->ident;
5101 sp->scp[IDX_PAP].rcr_type = CP_RCR_ACK;
5103 sp->scp[IDX_PAP].rcr_type = CP_RCR_NAK;
5106 sppp_wq_add(sp->wq_cp, &sp->scp[IDX_PAP].work_rcr);
5109 if (sp->scp[IDX_PAP].rcr_type == CP_RCR_ACK &&
5111 sppp_wq_add(sp->wq_cp, &sp->scp[IDX_PAP].work_rca);
5128 if (h->ident != sp->scp[IDX_PAP].confid) {
5130 pap.name, h->ident, sp->scp[IDX_PAP].rconfid);
5142 sp->scp[IDX_PAP].rcr_type = CP_RCR_ACK;
5143 sppp_wq_add(sp->wq_cp, &sp->scp[IDX_PAP].work_rcr);
5146 sppp_wq_add(sp->wq_cp, &sp->scp[IDX_PAP].work_rca);
5163 if (h->ident != sp->scp[IDX_PAP].confid) {
5165 pap.name, h->ident, sp->scp[IDX_PAP].rconfid);
5173 * so we don't have to enqueue sc->scp[IDX_PAP].work_rcn
5208 sp->scp[IDX_PAP].rst_counter = sp->lcp.max_configure;
5225 sp->scp[IDX_PAP].state != STATE_ACK_RCVD) {
5232 sp->scp[IDX_PAP].confid = ++sp->scp[IDX_PAP].seq;
5236 sppp_auth_send(&pap, sp, PAP_REQ, sp->scp[IDX_PAP].confid,
5383 state = sp->scp[cp->protoidx].state;
5385 if (sp->scp[cp->protoidx].rst_counter > 0) {
5401 callout_schedule(&sp->scp[cp->protoidx].ch, sp->lcp.timeout);
5409 sp->scp[cp->protoidx].rst_counter);
5410 sp->scp[cp->protoidx].rst_counter--;
5442 sppp_wq_add(sp->wq_cp, &sp->scp[IDX_LCP].work_close);
5476 sppp_wq_add(sp->wq_cp, &sp->scp[IDX_LCP].work_close);
5525 sppp_wq_add(sp->wq_cp, &sp->scp[IDX_LCP].work_close);
5537 sp->lcp.echoid = ++sp->scp[IDX_LCP].seq;
6183 status->state = sp->scp[IDX_LCP].state;
6197 status->state = sp->scp[IDX_IPCP].state;
6214 status->state = sp->scp[IDX_IPV6CP].state;
6248 sppp_wq_add(sp->wq_cp, &sp->scp[i].work_open);
6480 m_freem(sp->scp[cp->protoidx].mbuf_confreq);
6481 sp->scp[cp->protoidx].mbuf_confreq = NULL;
6482 m_freem(sp->scp[cp->protoidx].mbuf_confnak);
6483 sp->scp[cp->protoidx].mbuf_confnak = NULL;
6530 sppp_wq_add(sp->wq_cp, &sp->scp[IDX_LCP].work_up);
6537 sppp_wq_add(sp->wq_cp, &sp->scp[IDX_LCP].work_down);