Lines Matching refs:cp

165 #define	CPDEBUG(x)	(IS_CP_KDEBUG(cp) ? CKDEBUG(x) : (void)0)
236 sppp_comp_t *cp;
244 cp = kmem_zalloc(sizeof (sppp_comp_t), KM_SLEEP);
245 q->q_ptr = WR(q)->q_ptr = (caddr_t)cp;
247 cp->cp_mru = PPP_MRU;
248 cp->cp_mtu = PPP_MTU;
250 mutex_init(&cp->cp_pair_lock, NULL, MUTEX_DRIVER, NULL);
251 vj_compress_init(&cp->cp_vj, -1);
252 cp->cp_nxslots = -1;
253 cp->cp_effort = -1;
272 sppp_comp_t *cp = q->q_ptr;
277 (IS_CP_HASUNIT(cp) ? cp->cp_unit : -1), cp->cp_flags,
279 mutex_destroy(&cp->cp_pair_lock);
280 if (cp->cp_kstats) {
281 ASSERT(IS_CP_HASUNIT(cp));
282 kstat_delete(cp->cp_kstats);
284 if (cp->cp_xstate != NULL) {
285 (*cp->cp_xcomp->comp_free)(cp->cp_xstate);
287 if (cp->cp_rstate != NULL) {
288 (*cp->cp_rcomp->decomp_free)(cp->cp_rstate);
290 kmem_free(cp, sizeof (sppp_comp_t));
318 sppp_comp_t *cp = q->q_ptr;
324 ((cp->cp_flags & (COMP_VJC|CCP_COMP_RUN)) &&
327 cp->cp_out_queued++;
333 cp->cp_out_handled++;
340 spppcomp_ioctl(q, mp, cp);
343 mutex_enter(&cp->cp_pair_lock);
345 mutex_exit(&cp->cp_pair_lock);
353 (IS_CP_HASUNIT(cp) ? cp->cp_unit : -1),
354 *mp->b_rptr, cp->cp_flags, CP_FLAGSSTR));
363 mutex_enter(&cp->cp_pair_lock);
365 vj_compress_init(&cp->cp_vj, cp->cp_nxslots);
366 mutex_exit(&cp->cp_pair_lock);
425 sppp_comp_t *cp = q->q_ptr;
435 mutex_enter(&cp->cp_pair_lock);
436 cp->cp_omsg_pull++;
437 mutex_exit(&cp->cp_pair_lock);
450 if (proto == PPP_IP && IS_COMP_VJC(cp) &&
494 &cp->cp_vj, IS_COMP_VJCCID(cp), &vjhdr);
507 mutex_enter(&cp->cp_pair_lock);
508 cp->cp_omsg_dcopy++;
509 mutex_exit(&cp->cp_pair_lock);
594 mutex_enter(&cp->cp_pair_lock);
595 comp_ccp(q, mp, cp, B_FALSE);
596 mutex_exit(&cp->cp_pair_lock);
597 } else if (proto != PPP_LCP && IS_CCP_COMP_RUN(cp) &&
598 IS_CCP_ISUP(cp) && cp->cp_xstate != NULL) {
602 len = (*cp->cp_xcomp->compress)(cp->cp_xstate, &cmp, mp, len,
603 cp->cp_mtu + PPP_HDRLEN);
618 mutex_enter(&cp->cp_pair_lock);
619 cp->cp_stats.ppp_oerrors++;
620 mutex_exit(&cp->cp_pair_lock);
631 if ((cp->cp_flags & (COMP_AC|COMP_PROT)) && DB_REF(mp) > 1) {
633 mutex_enter(&cp->cp_pair_lock);
634 cp->cp_omsg_dcopy++;
635 mutex_exit(&cp->cp_pair_lock);
646 if (IS_COMP_AC(cp) && (proto != PPP_LCP)) {
652 if (proto < 0x100 && IS_COMP_PROT(cp)) {
655 } else if ((proto < 0x100) && IS_COMP_PROT(cp)) {
663 mutex_enter(&cp->cp_pair_lock);
664 cp->cp_stats.ppp_opackets++;
665 cp->cp_stats.ppp_obytes += msgsize(mp);
666 mutex_exit(&cp->cp_pair_lock);
669 (IS_CP_HASUNIT(cp) ? cp->cp_unit : -1), msgsize(mp),
670 cp->cp_flags, CP_FLAGSSTR));
674 mutex_enter(&cp->cp_pair_lock);
675 cp->cp_stats.ppp_oerrors++;
676 mutex_exit(&cp->cp_pair_lock);
696 sppp_comp_t *cp = q->q_ptr;
724 cp->cp_flags = (cp->cp_flags & ~mask) | (flags & mask);
727 cp->cp_flags &= ~CCP_ISUP & ~CCP_COMP_RUN &
729 if (cp->cp_xstate != NULL) {
730 (*cp->cp_xcomp->comp_free)(cp->cp_xstate);
731 cp->cp_xstate = NULL;
733 if (cp->cp_rstate != NULL) {
734 (*cp->cp_rcomp->decomp_free)(cp->cp_rstate);
735 cp->cp_rstate = NULL;
741 (IS_CP_HASUNIT(cp) ? cp->cp_unit : -1),
743 CP_FLAGSSTR, cp->cp_flags, CP_FLAGSSTR));
746 if (!IS_CP_LASTMOD(cp)) {
750 *(uint32_t *)mp->b_cont->b_rptr = cp->cp_flags;
769 /* mutex_enter(&cp->cp_pair_lock); */
770 cp->cp_vj_last_ierrors = cp->cp_stats.ppp_ierrors;
771 /* mutex_exit(&cp->cp_pair_lock); */
772 vj_compress_init(&cp->cp_vj, nxslots);
773 cp->cp_nxslots = nxslots;
777 (IS_CP_HASUNIT(cp) ? cp->cp_unit : -1), nxslots,
778 nrslots, cp->cp_flags, CP_FLAGSSTR));
817 if ((xtemp = cp->cp_xstate) != NULL) {
818 cp->cp_flags &= ~CCP_ISUP &
820 cp->cp_xstate = NULL;
821 (*cp->cp_xcomp->comp_free)(xtemp);
823 cp->cp_xcomp = *comp;
824 cp->cp_xstate = (*comp)->comp_alloc(opt_data,
827 if (cp->cp_xstate == NULL) {
833 (IS_CP_HASUNIT(cp) ? cp->cp_unit : -1),
835 cp->cp_flags,
838 if ((xtemp = cp->cp_rstate) != NULL) {
839 cp->cp_flags &= ~CCP_ISUP &
841 cp->cp_rstate = NULL;
842 (*cp->cp_rcomp->decomp_free)(xtemp);
844 cp->cp_rcomp = *comp;
845 cp->cp_rstate =
848 if (cp->cp_rstate == NULL) {
854 (IS_CP_HASUNIT(cp) ? cp->cp_unit : -1),
856 cp->cp_flags,
860 rc = (*(*comp)->set_effort)(cp->
861 cp_xcomp == *comp ? cp->cp_xstate : NULL,
862 cp->cp_rcomp == *comp ? cp->cp_rstate :
863 NULL, cp->cp_effort);
867 cp->cp_unit, cp->cp_effort));
885 cp->cp_flags |= CP_KDEBUG;
888 (IS_CP_HASUNIT(cp) ? cp->cp_unit : -1),
889 cp->cp_flags, CP_FLAGSSTR));
894 cp->cp_flags |= CP_LASTMOD;
896 (IS_CP_HASUNIT(cp) ? cp->cp_unit : -1),
897 cp->cp_flags, CP_FLAGSSTR));
905 cp->cp_effort = val;
908 if ((ccomp = cp->cp_xcomp) != NULL &&
910 rc = (*ccomp->set_effort)(cp->cp_xstate,
911 ccomp == cp->cp_rcomp ? cp->cp_rstate : NULL, val);
915 if ((ccomp = cp->cp_rcomp) != NULL && ccomp != cp->cp_xcomp &&
917 rc = (*ccomp->set_effort)(NULL, cp->cp_rstate, val);
935 spppcomp_getcstat(queue_t *q, mblk_t *mp, sppp_comp_t *cp)
940 ASSERT(cp != NULL);
955 if (cp->cp_xstate != NULL) {
956 (*cp->cp_xcomp->comp_stat)(cp->cp_xstate, &csp->c);
958 if (cp->cp_rstate != NULL) {
959 (*cp->cp_rcomp->decomp_stat)(cp->cp_rstate, &csp->d);
976 spppcomp_ioctl(queue_t *q, mblk_t *mp, sppp_comp_t *cp)
981 ASSERT(cp != NULL);
992 mutex_enter(&cp->cp_pair_lock);
994 mutex_exit(&cp->cp_pair_lock);
1006 spppcomp_getcstat(q, mp, cp);
1010 if (!IS_CP_LASTMOD(cp)) {
1046 sppp_comp_t *cp = q->q_ptr;
1057 cp->cp_mtu = ((ushort_t *)mp->b_rptr)[1];
1060 (IS_CP_HASUNIT(cp) ? cp->cp_unit : -1),
1061 cp->cp_mtu, cp->cp_flags, CP_FLAGSSTR));
1067 cp->cp_mru = ((ushort_t *)mp->b_rptr)[1];
1070 (IS_CP_HASUNIT(cp) ? cp->cp_unit : -1),
1071 cp->cp_mru, cp->cp_flags, CP_FLAGSSTR));
1078 if (IS_CP_HASUNIT(cp)) {
1081 ASSERT(cp->cp_kstats == NULL);
1082 cp->cp_unit = ((uint32_t *)mp->b_rptr)[1];
1085 (void) sprintf(unit, "%s" "%d", COMP_MOD_NAME, cp->cp_unit);
1086 ksp = kstat_create(COMP_MOD_NAME, cp->cp_unit, unit, "net",
1091 cp->cp_flags |= CP_HASUNIT;
1092 cp->cp_kstats = ksp;
1108 ksp->ks_private = (void *)cp;
1112 cp->cp_unit, cp->cp_flags, CP_FLAGSSTR));
1125 if (IS_CP_LASTMOD(cp))
1150 sppp_comp_t *cp = q->q_ptr;
1166 if (curtime - cp->cp_lastfinish < spppcomp_min_arrival)
1167 cp->cp_fastin++;
1169 cp->cp_fastin >>= 1; /* a guess */
1177 if ((!(cp->cp_flags & (CCP_DECOMP_RUN | DECOMP_VJC)) ||
1178 cp->cp_fastin < MAX_FAST_ARRIVALS) &&
1181 cp->cp_in_handled++;
1186 cp->cp_lastfinish = gethrtime();
1190 cp->cp_fastin = 0;
1192 cp->cp_in_queued++;
1219 psp->vj = cp->cp_vj.stats;
1222 (IS_CP_HASUNIT(cp) ? cp->cp_unit : -1),
1223 cp->cp_flags, CP_FLAGSSTR));
1229 mutex_enter(&cp->cp_pair_lock);
1231 cp->cp_stats.ppp_ierrors++;
1232 cp->cp_ierr_low++;
1234 cp->cp_stats.ppp_oerrors++;
1235 cp->cp_oerr_low++;
1237 mutex_exit(&cp->cp_pair_lock);
1243 (IS_CP_HASUNIT(cp) ? cp->cp_unit : -1),
1244 *mp->b_rptr, cp->cp_flags, CP_FLAGSSTR));
1253 mutex_enter(&cp->cp_pair_lock);
1255 cp->cp_vj_last_ierrors = cp->cp_stats.ppp_ierrors;
1256 vj_uncompress_err(&cp->cp_vj);
1257 mutex_exit(&cp->cp_pair_lock);
1325 sppp_comp_t *cp = q->q_ptr;
1329 mutex_enter(&cp->cp_pair_lock);
1330 cp->cp_stats.ppp_ibytes += len;
1331 cp->cp_stats.ppp_ipackets++;
1332 mutex_exit(&cp->cp_pair_lock);
1351 if (hlen < (IS_DECOMP_AC(cp) ? 0 : 2) + (IS_DECOMP_PROT(cp) ? 1 : 2)) {
1407 mutex_enter(&cp->cp_pair_lock);
1408 cp->cp_imsg_ccp_pull++;
1409 mutex_exit(&cp->cp_pair_lock);
1418 mutex_enter(&cp->cp_pair_lock);
1419 comp_ccp(q, mp, cp, B_TRUE);
1420 mutex_exit(&cp->cp_pair_lock);
1421 } else if ((cp->cp_flags & (CCP_ISUP | CCP_DECOMP_RUN | CCP_ERR)) ==
1422 (CCP_ISUP | CCP_DECOMP_RUN) && cp->cp_rstate != NULL) {
1426 rv = (*cp->cp_rcomp->decompress)(cp->cp_rstate, &mp);
1431 cp->cp_flags |= CCP_ERROR;
1432 mutex_enter(&cp->cp_pair_lock);
1433 ++cp->cp_stats.ppp_ierrors;
1434 mutex_exit(&cp->cp_pair_lock);
1438 cp->cp_flags |= CCP_FATALERROR;
1439 mutex_enter(&cp->cp_pair_lock);
1440 ++cp->cp_stats.ppp_ierrors;
1441 mutex_exit(&cp->cp_pair_lock);
1458 rv = (*cp->cp_rcomp->incomp)(cp->cp_rstate, mp);
1460 cp->cp_flags |= CCP_FATALERROR;
1461 mutex_enter(&cp->cp_pair_lock);
1462 ++cp->cp_stats.ppp_ierrors;
1463 mutex_exit(&cp->cp_pair_lock);
1476 if (!IS_DECOMP_VJC(cp) || (len <= 0)) {
1502 mutex_enter(&cp->cp_pair_lock);
1503 cp->cp_imsg_vj_pull++;
1504 mutex_exit(&cp->cp_pair_lock);
1528 errcnt = cp->cp_stats.ppp_ierrors;
1529 if (errcnt != cp->cp_vj_last_ierrors) {
1530 cp->cp_vj_last_ierrors = errcnt;
1531 vj_uncompress_err(&cp->cp_vj);
1535 &cp->cp_vj, &iphdr, &iphlen);
1541 mutex_enter(&cp->cp_pair_lock);
1542 ++cp->cp_vj_last_ierrors;
1543 mutex_exit(&cp->cp_pair_lock);
1580 mutex_enter(&cp->cp_pair_lock);
1581 cp->cp_vj_last_ierrors = cp->cp_stats.ppp_ierrors;
1582 mutex_exit(&cp->cp_pair_lock);
1583 if (!vj_uncompress_uncomp(dp, hlen, &cp->cp_vj)) {
1587 mutex_enter(&cp->cp_pair_lock);
1588 ++cp->cp_vj_last_ierrors;
1589 mutex_exit(&cp->cp_pair_lock);
1599 (IS_CP_HASUNIT(cp) ? cp->cp_unit : -1), msgsize(mp),
1600 cp->cp_flags, CP_FLAGSSTR));
1607 mutex_enter(&cp->cp_pair_lock);
1608 cp->cp_stats.ppp_ierrors++;
1609 mutex_exit(&cp->cp_pair_lock);
1626 comp_ccp(queue_t *q, mblk_t *mp, sppp_comp_t *cp, boolean_t rcvd)
1645 (IS_CP_HASUNIT(cp) ? cp->cp_unit : -1), CCP_CODE(dp),
1646 cp->cp_flags, CP_FLAGSSTR));
1651 cp->cp_flags &= ~CCP_ISUP;
1654 if ((cp->cp_flags & (CCP_ISOPEN | CCP_ISUP)) == CCP_ISOPEN &&
1661 rc = (*cp->cp_xcomp->comp_init)(cp->cp_xstate,
1663 cp->cp_unit, 0,
1664 IS_CP_KDEBUG(cp) | ALG_DEBUG);
1666 if (cp->cp_xstate != NULL && rc != 0) {
1667 cp->cp_flags |= CCP_COMP_RUN;
1670 rc = (*cp->cp_rcomp->decomp_init)(cp->
1672 clen - CCP_HDRLEN, cp->cp_unit, 0,
1673 cp->cp_mru,
1674 IS_CP_KDEBUG(cp) | ALG_DEBUG);
1676 if (cp->cp_rstate != NULL && rc != 0) {
1677 cp->cp_flags &= ~CCP_ERR;
1678 cp->cp_flags |= CCP_DECOMP_RUN;
1684 if (IS_CCP_ISUP(cp)) {
1686 if (cp->cp_xstate != NULL &&
1687 IS_CCP_COMP_RUN(cp)) {
1688 (*cp->cp_xcomp->comp_reset)(cp->
1692 if (cp->cp_rstate != NULL &&
1693 IS_CCP_DECOMP_RUN(cp)) {
1694 (*cp->cp_rcomp->decomp_reset)(cp->
1696 cp->cp_flags &= ~CCP_ERROR;
1713 sppp_comp_t *cp = ksp->ks_private;
1726 mutex_enter(&cp->cp_pair_lock);
1728 if (cp->cp_xstate != NULL) {
1729 (*cp->cp_xcomp->comp_stat)(cp->cp_xstate, &csp.c);
1731 if (cp->cp_rstate != NULL) {
1732 (*cp->cp_rcomp->decomp_stat)(cp->cp_rstate, &csp.d);
1735 sp = &cp->cp_vj.stats;
1746 psp = &cp->cp_stats;
1751 cpkp->out_errors_low.value.ui32 = cp->cp_oerr_low;
1762 cpkp->in_errors_low.value.ui32 = cp->cp_ierr_low;
1770 cpkp->in_msg_ccp_pulledup.value.ui32 = cp->cp_imsg_ccp_pull;
1771 cpkp->in_msg_vj_pulledup.value.ui32 = cp->cp_imsg_vj_pull;
1772 cpkp->out_msg_pulledup.value.ui32 = cp->cp_omsg_pull;
1773 cpkp->out_msg_copied.value.ui32 = cp->cp_omsg_dcopy;
1774 cpkp->out_queued.value.ui32 = cp->cp_out_queued;
1775 cpkp->out_handled.value.ui32 = cp->cp_out_handled;
1776 cpkp->in_queued.value.ui32 = cp->cp_in_queued;
1777 cpkp->in_handled.value.ui32 = cp->cp_in_handled;
1779 mutex_exit(&cp->cp_pair_lock);