IDX_CHAP
sppp_wq_add(sp->wq_cp, &sp->scp[IDX_CHAP].work_to);
[IDX_CHAP] = sppp_cp_to_chap,
sp->scp[IDX_CHAP].rconfid = h->ident;
if (h->ident != sp->scp[IDX_CHAP].rconfid) {
sp->scp[IDX_CHAP].rconfid);
sp->scp[IDX_CHAP].rcr_type = CP_RCR_ACK;
sppp_wq_add(sp->wq_cp, &sp->scp[IDX_CHAP].work_rcr);
sppp_wq_add(sp->wq_cp, &sp->scp[IDX_CHAP].work_rca);
if (h->ident != sp->scp[IDX_CHAP].rconfid) {
chap.name, h->ident, sp->scp[IDX_CHAP].rconfid);
if (h->ident != sp->scp[IDX_CHAP].confid) {
h->ident, sp->scp[IDX_CHAP].confid);
sp->scp[IDX_CHAP].rconfid = h->ident;
sp->scp[IDX_CHAP].rcr_type = CP_RCR_NAK;
sppp_wq_add(sp->wq_cp, &sp->scp[IDX_CHAP].work_rcr);
sppp_state_name(sp->scp[IDX_CHAP].state),
sp->scp[IDX_CHAP].rcr_type = CP_RCR_ACK;
sp->scp[IDX_CHAP].rcr_type = CP_RCR_NAK;
sp->scp[IDX_CHAP].rcr_type = CP_RCR_NAK;
sppp_wq_add(sp->wq_cp, &sp->scp[IDX_CHAP].work_rcr);
if (sp->scp[IDX_CHAP].rcr_type == CP_RCR_ACK &&
sppp_wq_add(sp->wq_cp, &sp->scp[IDX_CHAP].work_rca);
sppp_state_name(sp->scp[IDX_CHAP].state),
sp->scp[IDX_CHAP].rst_counter = sp->lcp.max_configure;
callout_schedule(&sp->scp[IDX_CHAP].ch, i * hz);
sp->scp[IDX_CHAP].confid = ++sp->scp[IDX_CHAP].seq;
sppp_auth_send(&chap, sp, CHAP_CHALLENGE, sp->scp[IDX_CHAP].confid,
sppp_auth_send(&chap, sp, CHAP_RESPONSE, sp->scp[IDX_CHAP].rconfid,
switch (sp->scp[IDX_CHAP].state) {
PPP_CHAP, IDX_CHAP, CP_AUTH, "chap",
#define IDX_COUNT (IDX_CHAP + 1) /* bump this when adding cp's! */