Lines Matching refs:sip
254 #define BUMP_InNUcast(sip, ehp) \
256 (sip)->si_kstat.si_brdcstrcv++; \
258 (sip)->si_kstat.si_multircv++; \
260 #define BUMP_OutNUcast(sip, ehp) \
262 (sip)->si_kstat.si_brdcstxmt++; \
264 (sip)->si_kstat.si_multixmt++; \
336 idndl_localetheraddr(struct idn *sip, struct ether_addr *eap)
342 ASSERT(sip && sip->si_dip && eap);
344 instance = ddi_get_instance(sip->si_dip);
419 struct idn *sip;
444 sip = NULL;
448 * find anybody the first running sip and use it.
452 sip = NULL;
456 sip = IDN_INST2SIP(instance);
459 return (sip);
481 struct idn *sip;
484 sip = (struct idn *)ksp->ks_private;
491 bzero(&sip->si_kstat, sizeof (sip->si_kstat));
493 sip->si_kstat.si_ipackets = skp->sk_ipackets.value.ul;
494 sip->si_kstat.si_ierrors = skp->sk_ierrors.value.ul;
495 sip->si_kstat.si_opackets = skp->sk_opackets.value.ul;
496 sip->si_kstat.si_oerrors = skp->sk_oerrors.value.ul;
497 sip->si_kstat.si_txcoll = skp->sk_txcoll.value.ul;
498 sip->si_kstat.si_rxcoll = skp->sk_rxcoll.value.ul;
499 sip->si_kstat.si_crc = skp->sk_crc.value.ul;
500 sip->si_kstat.si_buff = skp->sk_buff.value.ul;
501 sip->si_kstat.si_nolink = skp->sk_nolink.value.ul;
502 sip->si_kstat.si_linkdown = skp->sk_linkdown.value.ul;
503 sip->si_kstat.si_inits = skp->sk_inits.value.ul;
504 sip->si_kstat.si_nocanput = skp->sk_nocanput.value.ul;
505 sip->si_kstat.si_allocbfail = skp->sk_allocbfail.value.ul;
506 sip->si_kstat.si_notbufs = skp->sk_notbufs.value.ul;
507 sip->si_kstat.si_reclaim = skp->sk_reclaim.value.ul;
508 sip->si_kstat.si_smraddr = skp->sk_smraddr.value.ul;
509 sip->si_kstat.si_txmax = skp->sk_txmax.value.ul;
510 sip->si_kstat.si_txfull = skp->sk_txfull.value.ul;
511 sip->si_kstat.si_xdcall = skp->sk_xdcall.value.ul;
512 sip->si_kstat.si_sigsvr = skp->sk_sigsvr.value.ul;
513 sip->si_kstat.si_mboxcrc = skp->sk_mboxcrc.value.ul;
517 sip->si_kstat.si_rcvbytes = skp->sk_rcvbytes.value.ul;
518 sip->si_kstat.si_xmtbytes = skp->sk_xmtbytes.value.ul;
519 sip->si_kstat.si_multircv = skp->sk_multircv.value.ul;
520 sip->si_kstat.si_multixmt = skp->sk_multixmt.value.ul;
521 sip->si_kstat.si_brdcstrcv = skp->sk_brdcstrcv.value.ul;
522 sip->si_kstat.si_brdcstxmt = skp->sk_brdcstxmt.value.ul;
523 sip->si_kstat.si_norcvbuf = skp->sk_norcvbuf.value.ul;
524 sip->si_kstat.si_noxmtbuf = skp->sk_noxmtbuf.value.ul;
528 sip->si_kstat.si_ipackets64 = skp->sk_ipackets64.value.ull;
529 sip->si_kstat.si_opackets64 = skp->sk_opackets64.value.ull;
530 sip->si_kstat.si_rbytes64 = skp->sk_rbytes64.value.ull;
531 sip->si_kstat.si_obytes64 = skp->sk_obytes64.value.ull;
535 sip->si_kstat.si_fcs_errors = skp->sk_fcs_errors.value.ul;
536 sip->si_kstat.si_macxmt_errors =
538 sip->si_kstat.si_toolong_errors =
540 sip->si_kstat.si_macrcv_errors =
546 skp->sk_ipackets.value.ul = sip->si_kstat.si_ipackets;
547 skp->sk_ierrors.value.ul = sip->si_kstat.si_ierrors;
548 skp->sk_opackets.value.ul = sip->si_kstat.si_opackets;
549 skp->sk_oerrors.value.ul = sip->si_kstat.si_oerrors;
550 skp->sk_txcoll.value.ul = sip->si_kstat.si_txcoll;
551 skp->sk_rxcoll.value.ul = sip->si_kstat.si_rxcoll;
552 skp->sk_crc.value.ul = sip->si_kstat.si_crc;
553 skp->sk_buff.value.ul = sip->si_kstat.si_buff;
554 skp->sk_nolink.value.ul = sip->si_kstat.si_nolink;
555 skp->sk_linkdown.value.ul = sip->si_kstat.si_linkdown;
556 skp->sk_inits.value.ul = sip->si_kstat.si_inits;
557 skp->sk_nocanput.value.ul = sip->si_kstat.si_nocanput;
558 skp->sk_allocbfail.value.ul = sip->si_kstat.si_allocbfail;
559 skp->sk_notbufs.value.ul = sip->si_kstat.si_notbufs;
560 skp->sk_reclaim.value.ul = sip->si_kstat.si_reclaim;
561 skp->sk_smraddr.value.ul = sip->si_kstat.si_smraddr;
562 skp->sk_txfull.value.ul = sip->si_kstat.si_txfull;
563 skp->sk_txmax.value.ul = sip->si_kstat.si_txmax;
564 skp->sk_xdcall.value.ul = sip->si_kstat.si_xdcall;
565 skp->sk_sigsvr.value.ul = sip->si_kstat.si_sigsvr;
566 skp->sk_mboxcrc.value.ul = sip->si_kstat.si_mboxcrc;
570 skp->sk_rcvbytes.value.ul = sip->si_kstat.si_rcvbytes;
571 skp->sk_xmtbytes.value.ul = sip->si_kstat.si_xmtbytes;
572 skp->sk_multircv.value.ul = sip->si_kstat.si_multircv;
573 skp->sk_multixmt.value.ul = sip->si_kstat.si_multixmt;
574 skp->sk_brdcstrcv.value.ul = sip->si_kstat.si_brdcstrcv;
575 skp->sk_brdcstxmt.value.ul = sip->si_kstat.si_brdcstxmt;
576 skp->sk_norcvbuf.value.ul = sip->si_kstat.si_norcvbuf;
577 skp->sk_noxmtbuf.value.ul = sip->si_kstat.si_noxmtbuf;
581 skp->sk_ipackets64.value.ull = sip->si_kstat.si_ipackets64;
582 skp->sk_opackets64.value.ull = sip->si_kstat.si_opackets64;
583 skp->sk_rbytes64.value.ull = sip->si_kstat.si_rbytes64;
584 skp->sk_obytes64.value.ull = sip->si_kstat.si_obytes64;
588 skp->sk_fcs_errors.value.ul = sip->si_kstat.si_fcs_errors;
589 skp->sk_macxmt_errors.value.ul = sip->si_kstat.si_macxmt_errors;
590 skp->sk_toolong_errors.value.ul = sip->si_kstat.si_toolong_errors;
591 skp->sk_macrcv_errors.value.ul = sip->si_kstat.si_macrcv_errors;
597 idndl_statinit(struct idn *sip)
603 if ((ksp = kstat_create(IDNNAME, ddi_get_instance(sip->si_dip),
608 if ((ksp = kstat_create(IDNNAME, ddi_get_instance(sip->si_dip),
613 serror(sip->si_dip, 450, "kstat_create failed");
617 sip->si_ksp = ksp;
704 ksp->ks_private = (void *)sip;
862 struct idn *sip;
869 sip = stp->ss_sip;
870 if (sip == NULL) {
871 PR_DLPI("%s: NULL sip (ret EINVAL)\n", proc);
902 IDN_KSTAT_INC(sip, si_allocbfail);
913 ether_copy(&sip->si_ouraddr, &headerp->ether_shost);
938 struct idn *sip;
966 for (sip = idn.sip; sip; sip = sip->si_nextp) {
967 if (ppa == ddi_get_instance(sip->si_dip))
971 ASSERT(sip != NULL); /* qassociate() succeeded */
976 if ((sip->si_flags & IDNRUNNING) == 0) {
977 if (idndl_init(sip)) {
988 stp->ss_sip = sip;
1023 struct idn *sip;
1028 sip = stp->ss_sip;
1063 if (tstp->ss_sip == sip)
1068 idndl_uninit(sip);
1070 (void) idndl_init(sip);
1074 idndl_setipq(sip);
1082 struct idn *sip;
1107 sip = stp->ss_sip;
1111 ASSERT(sip);
1130 ether_copy(&sip->si_ouraddr, &idnaddr.dl_phys);
1136 (int)sip->si_ouraddr.ether_addr_octet[IDNETHER_CHANNEL];
1147 idndl_setipq(sip);
1171 struct idn *sip;
1174 sip = stp->ss_sip;
1176 (int)sip->si_ouraddr.ether_addr_octet[IDNETHER_CHANNEL];
1446 struct idn *sip;
1458 sip = stp->ss_sip;
1460 if (sip == NULL) {
1467 idndl_localetheraddr(sip, &addr);
1471 ether_copy(&sip->si_ouraddr, &addr);
1491 struct idn *sip;
1525 if ((sip = stp->ss_sip) == NULL) {
1535 ether_copy(addrp, &sip->si_ouraddr);
1546 register struct idn *sip;
1555 sip = stp->ss_sip;
1596 ether_copy(&sip->si_ouraddr, &headerp->ether_shost);
1605 ether_copy(&sip->si_ouraddr, &headerp->ether_shost);
1628 (void) idndl_start(wq, mp, sip);
1632 idndl_start(queue_t *wq, register mblk_t *mp, register struct idn *sip)
1652 ASSERT(sip == stp->ss_sip);
1653 flags = sip->si_flags;
1654 channel = (char)sip->si_ouraddr.ether_addr_octet[IDNETHER_CHANNEL];
1673 BUMP_OutNUcast(sip, ehp);
1699 IDN_KSTAT_INC(sip, si_allocbfail);
1707 IDN_KSTAT_INC(sip, si_allocbfail);
1795 idndl_sendup(sip, nmp, idndl_paccept);
1837 idndl_read(struct idn *sip, mblk_t *mp)
1849 if (sip == NULL)
1850 sip = IDNDL_ETHER2SIP(&ehp->ether_dhost);
1851 if (sip == NULL) {
1853 * If the sip is NULL, then I don't have a connection
1862 IDN_KSTAT_INC(sip, si_ipackets);
1863 IDN_KSTAT_INC(sip, si_ipackets64);
1868 BUMP_InNUcast(sip, ehp);
1869 IDN_KSTAT_ADD(sip, si_rcvbytes, pktlen);
1870 IDN_KSTAT_ADD(sip, si_rbytes64, (uint64_t)pktlen);
1872 ip4q = sip->si_ip4q;
1873 ip6q = sip->si_ip6q;
1897 idndl_sendup(sip, mp, idndl_accept);
1902 idndl_init(struct idn *sip)
1906 if (sip->si_flags & IDNSUSPENDED)
1907 (void) ddi_dev_is_needed(sip->si_dip, 0, 1);
1909 sip->si_flags = 0;
1910 sip->si_wantw = 0;
1912 IDN_KSTAT_INC(sip, si_inits);
1917 if ((stp->ss_sip == sip) && (stp->ss_flags & IDNSALLPHYS)) {
1918 sip->si_flags |= IDNPROMISC;
1923 sip->si_flags |= IDNRUNNING;
1926 idndl_wenable(sip);
1931 return (!(sip->si_flags & IDNRUNNING));
1935 idndl_uninit(struct idn *sip)
1940 sip->si_flags &= ~IDNRUNNING;
1942 channel = (int)sip->si_ouraddr.ether_addr_octet[IDNETHER_CHANNEL];
1955 idndl_sendup(struct idn *sip, mblk_t *mp, struct idnstr *(*acceptfunc)())
1979 if ((stp = (*acceptfunc)(idn.strup, sip, type, dhostp)) == NULL) {
1989 for (; nstp = (*acceptfunc)(stp->ss_nextp, sip, type, dhostp);
1993 IDN_KSTAT_INC(sip, si_nocanput);
2004 } else if ((nmp = idndl_addudind(sip, nmp, shostp,
2009 IDN_KSTAT_INC(sip, si_allocbfail);
2023 } else if ((mp = idndl_addudind(sip, mp, shostp, dhostp,
2029 IDN_KSTAT_INC(sip, si_nocanput);
2030 IDN_KSTAT_INC(sip, si_norcvbuf); /* MIB II */
2041 idndl_accept(register struct idnstr *stp, register struct idn *sip,
2051 if ((stp->ss_sip == sip) && IDNSAPMATCH(sap, type, flags))
2052 if ((ether_cmp(addrp, &sip->si_ouraddr) == 0) ||
2067 idndl_paccept(register struct idnstr *stp, register struct idn *sip,
2077 if ((stp->ss_sip == sip) &&
2091 idndl_setipq(struct idn *sip)
2102 if (stp->ss_sip == sip) {
2126 sip->si_ip4q = ip4q;
2128 sip->si_ip4q = NULL;
2130 sip->si_ip6q = ip6q;
2132 sip->si_ip6q = NULL;
2139 idndl_addudind(struct idn *sip, mblk_t *mp,
2158 IDN_KSTAT_INC(sip, si_allocbfail);
2159 IDN_KSTAT_INC(sip, si_ierrors);
2161 serror(sip->si_dip, 451, "allocb failed");
2247 idndl_wenable(struct idn *sip)
2255 ASSERT((sip == NULL) ? RW_LOCK_HELD(&idn.struprwlock) : 1);
2259 if (sip)
2260 sip->si_wantw = 0;
2262 if ((!sip || (stp->ss_sip == sip)) &&
2266 } while (sip && sip->si_wantw);