Lines Matching defs:sps

113  * and multiple sps streams (upper streams) may share a ppa by performing
151 spppstr_t *sps;
165 * The sps list is sorted using the minor number as the key. The
170 for (nextmn = &sps_list; (sps = *nextmn) != NULL;
171 nextmn = &sps->sps_nextmn) {
172 if (sps->sps_mn_id != mn) {
177 sps = (spppstr_t *)kmem_zalloc(sizeof (spppstr_t), KM_SLEEP);
178 ASSERT(sps != NULL); /* KM_SLEEP must never return NULL */
179 sps->sps_nextmn = *nextmn; /* insert stream in global list */
180 *nextmn = sps;
181 sps->sps_mn_id = mn; /* save minor id for this stream */
182 sps->sps_rq = q; /* save read queue pointer */
183 sps->sps_sap = -1; /* no sap bound to stream */
184 sps->sps_dlstate = DL_UNATTACHED; /* dlpi state is unattached */
185 sps->sps_npmode = NPMODE_DROP; /* drop all packets initially */
186 sps->sps_zoneid = crgetzoneid(credp);
187 q->q_ptr = WR(q)->q_ptr = (caddr_t)sps;
324 spppstr_t *sps;
331 sps = (spppstr_t *)q->q_ptr;
334 ppa = sps->sps_ppa;
336 ASSERT(!IS_SPS_CONTROL(sps));
339 if (IS_SPS_CONTROL(sps)) {
343 ASSERT(ppa->ppa_ctl == sps);
391 ASSERT(ppa->ppa_ctl != sps);
393 if (sps->sps_sap == PPP_IP) {
396 } else if (sps->sps_sap == PPP_IPV6) {
402 (sps->sps_npmode == NPMODE_PASS ||
403 sps->sps_npmode == NPMODE_QUEUE)) {
416 if (sib == sps) {
417 ppa->ppa_streams = sps->sps_nextsib;
420 if (sib->sps_nextsib == sps) {
421 sib->sps_nextsib = sps->sps_nextsib;
427 sps->sps_nextsib = NULL;
428 freemsg(sps->sps_hangup);
429 sps->sps_hangup = NULL;
438 if (IS_SPS_PROMISC(sps)) {
452 if (*nextmn == sps) {
453 *nextmn = sps->sps_nextmn;
457 kmem_free(sps, sizeof (spppstr_t));
464 spppstr_t *sps;
478 sps = (spppstr_t *)q->q_ptr;
479 ppa = sps->sps_ppa;
484 if (!IS_SPS_CONTROL(sps)) {
493 ASSERT(sps->sps_npmode == NPMODE_PASS);
523 ASSERT(!IS_SPS_CONTROL(sps));
584 if (IS_SPS_IOCQ(sps)) {
598 sps->sps_ioc_id = iop->ioc_id;
599 sps->sps_flags |= SPS_IOCQ;
639 if (IS_SPS_IOCQ(sps)) {
653 sps->sps_ioc_id = iop->ioc_id;
654 sps->sps_flags |= SPS_IOCQ;
702 spppstr_t *sps;
709 sps = (spppstr_t *)q->q_ptr;
710 ppa = sps->sps_ppa;
715 if (IS_SPS_CONTROL(sps)) {
739 (void) sppp_mproto(q, mp, sps);
744 if ((nextq = sppp_send(q, &mp, sps)) != NULL)
797 if (IS_SPS_IOCQ(sps)) {
811 sps->sps_ioc_id = iop->ioc_id;
812 sps->sps_flags |= SPS_IOCQ;
855 spppstr_t *sps;
862 sps = (spppstr_t *)q->q_ptr;
866 ppa = sps->sps_ppa;
878 if (IS_SPS_IOCQ(sps)) {
885 sps->sps_ioc_id = iop->ioc_id;
886 sps->sps_flags |= SPS_IOCQ;
891 sppp_outpkt(q, &mp, msgdsize(mp), sps)) == NULL) {
904 sppp_remove_ppa(spppstr_t *sps)
907 sppa_t *ppa = sps->sps_ppa;
915 if (nextsib == sps) {
916 ppa->ppa_streams = sps->sps_nextsib;
919 if (nextsib->sps_nextsib == sps) {
921 sps->sps_nextsib;
936 if (IS_SPS_PROMISC(sps)) {
942 sps->sps_nextsib = NULL;
943 sps->sps_ppa = NULL;
944 freemsg(sps->sps_hangup);
945 sps->sps_hangup = NULL;
974 spppstr_t *sps;
989 sps = (spppstr_t *)q->q_ptr;
990 ppa = sps->sps_ppa;
994 if (IS_SPS_CONTROL(sps)) {
997 sps->sps_flags |= SPS_RAWDATA;
1001 if (IS_SPS_CONTROL(sps)) {
1022 *(uchar_t *)nmp->b_wptr++ = sps->sps_sap >> 8;
1023 *(uchar_t *)nmp->b_wptr++ = sps->sps_sap & 0xff;
1027 sps->sps_flags |= SPS_FASTPATH;
1032 if (IS_SPS_CONTROL(sps) || IS_SPS_PIOATTACH(sps) ||
1033 (sps->sps_dlstate != DL_UNATTACHED) ||
1043 sppp_remove_ppa(sps);
1067 if ((sps->sps_hangup = allocb(1, BPRI_MED)) == NULL) {
1079 sps->sps_flags |= SPS_PIOATTACH;
1080 sps->sps_ppa = ppa;
1087 sps->sps_nextsib = ppa->ppa_streams;
1088 ppa->ppa_streams = sps;
1143 sps->sps_flags |= SPS_KDEBUG;
1161 if (IS_SPS_IOCQ(sps)) {
1175 sps->sps_ioc_id = iop->ioc_id;
1176 sps->sps_flags |= SPS_IOCQ;
1182 if (!IS_SPS_PIOATTACH(sps)) {
1193 ASSERT(ppa->ppa_ctl != sps);
1194 ASSERT(sps->sps_dlstate == DL_UNATTACHED);
1201 sps->sps_flags &= ~SPS_PIOATTACH;
1205 if (!IS_SPS_CONTROL(sps)) {
1213 if (!IS_SPS_CONTROL(sps) ||
1243 if (!IS_SPS_CONTROL(sps) ||
1270 if (!IS_SPS_CONTROL(sps)) {
1304 spppstr_t *sps = q->q_ptr;
1315 sps = (spppstr_t *)q->q_ptr;
1316 ppa = sps->sps_ppa;
1320 if (!IS_SPS_CONTROL(sps)) {
1327 ASSERT(sps->sps_npmode == NPMODE_PASS);
1340 if (WR(sps->sps_rq)->q_first != NULL)
1341 qenable(WR(sps->sps_rq));
1369 if (IS_SPS_KDEBUG(sps)) {
1371 "/%d: I_LINK lwq=0x%p sps=0x%p flags=0x%b ppa=0x%p "
1372 "flags=0x%b\n", sps->sps_mn_id,
1373 (void *)ppa->ppa_lower_wq, (void *)sps,
1374 sps->sps_flags, SPS_FLAGS_STR,
1381 ASSERT(IS_SPS_CONTROL(sps));
1387 if (IS_SPS_KDEBUG(sps)) {
1389 "/%d: I_UNLINK lwq=0x%p sps=0x%p flags=0x%b "
1390 "ppa=0x%p flags=0x%b\n", sps->sps_mn_id,
1391 (void *)lwq, (void *)sps, sps->sps_flags,
1409 if (WR(sps->sps_rq)->q_first != NULL)
1410 qenable(WR(sps->sps_rq));
1432 } else if (IS_SPS_CONTROL(sps) || IS_SPS_PIOATTACH(sps) ||
1433 (ppa != NULL) || (sps->sps_dlstate != DL_UNATTACHED)) {
1485 sps->sps_ppa = ppa; /* chain the ppa structure */
1486 sps->sps_npmode = NPMODE_PASS; /* network packets may travel */
1487 sps->sps_flags |= SPS_CONTROL; /* this is the control stream */
1490 ppa->ppa_ctl = sps; /* back ptr to upper stream */
1498 if (IS_SPS_KDEBUG(sps)) {
1500 "/%d: PPPIO_NEWPPA ppa_id=%d sps=0x%p flags=0x%b "
1501 "ppa=0x%p flags=0x%b\n", sps->sps_mn_id, ppa_id,
1502 (void *)sps, sps->sps_flags, SPS_FLAGS_STR,
1532 sppp_send(queue_t *q, mblk_t **mpp, spppstr_t *sps)
1545 ASSERT(sps != NULL);
1546 ASSERT(q->q_ptr == sps);
1553 ppa = sps->sps_ppa;
1555 ASSERT(!IS_SPS_CONTROL(sps));
1557 } else if (!IS_SPS_CONTROL(sps) && !IS_SPS_FASTPATH(sps)) {
1583 if (IS_SPS_KDEBUG(sps)) {
1585 "/%d: M_DATA send (%d bytes) sps=0x%p flags=0x%b "
1586 "ppa=0x%p flags=0x%b\n", sps->sps_mn_id, msize,
1587 (void *)sps, sps->sps_flags, SPS_FLAGS_STR,
1598 is_promisc = sps->sps_ppa->ppa_promicnt;
1601 sppp_dlprsendup(ppa->ppa_streams, mp, sps->sps_sap, B_TRUE);
1609 if (!IS_SPS_CONTROL(sps) && IS_PPA_TIMESTAMP(ppa)) {
1618 (nextq = sppp_outpkt(q, mpp, msize, sps)) == NULL) {
1652 sppp_outpkt(queue_t *q, mblk_t **mpp, int msize, spppstr_t *sps)
1663 ASSERT(sps != NULL);
1665 ppa = sps->sps_ppa;
1666 npmode = sps->sps_npmode;
1669 ASSERT(!IS_SPS_CONTROL(sps));
1677 ASSERT(!IS_SPS_CONTROL(sps));
1725 if (!IS_SPS_CONTROL(sps)) {
1726 sps->sps_npmode = NPMODE_DROP;
1739 if (IS_SPS_CONTROL(sps)) {
1804 spppstr_t *sps;
1811 sps = ppa->ppa_ctl;
1814 sppp_recv_nondata(q, mp, sps);
1815 } else if (sps == NULL) {
1817 } else if ((q = sppp_recv(q, &mp, sps)) != NULL) {
2072 "/%d: M_DATA recv (%d bytes) sps=0x%p "
2091 "/%d: M_DATA recv (%d bytes) sps=0x%p flags=0x%b "