亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? ipproto.c

?? vxwork源代碼
?? C
?? 第 1 頁 / 共 5 頁
字號:
            pm2DrvCntr->ifInOctets = mib2Tbl.ifInOctets;            pm2DrvCntr->ifInNUcastPkts = mib2Tbl.ifInNUcastPkts;            pm2DrvCntr->ifInDiscards = mib2Tbl.ifInDiscards;            pm2DrvCntr->ifInUnknownProtos = mib2Tbl.ifInUnknownProtos;            pm2DrvCntr->ifOutOctets = mib2Tbl.ifOutOctets;            pm2DrvCntr->ifOutNUcastPkts = mib2Tbl.ifOutNUcastPkts;            pm2DrvCntr->ifOutDiscards = mib2Tbl.ifOutDiscards;            break;        case SIOCGMIB2233:            error = muxIoctl (pDrvCtrl->pIpCookie, EIOCGMIB2233, data);            if (error != OK)                return (EINVAL);            break;        case SIOCSMIB2233:            error = muxIoctl (pDrvCtrl->pIpCookie, EIOCSMIB2233, data);            if (error != OK)                return (EINVAL);            break;                    case SIOCADDMULTI:            /* Don't allow group membership on non-multicast               interfaces. */            if ((ifp->ac_if.if_flags & IFF_MULTICAST) == 0)                return EOPNOTSUPP;                        if (ifp->ac_if.if_resolve)                {                pDrvCtrl = (IP_DRV_CTRL*)ifp->ac_if.pCookie;                ifr = (struct ifreq *)data;                inetaddr = &ifr->ifr_addr;                pMblk = KHEAP_ALLOC(sizeof(M_BLK));                if (pMblk == NULL)                    {                    error = ENOBUFS;                    break;                    }                bzero ( (char *)pMblk, sizeof (M_BLK));                pMblk->mBlkHdr.mFlags |= M_MCAST;                /*                 * call the registered address resolution function                 * to do the mapping                 */                if (ifp->ac_if.if_resolve (&ipMcastResume, pMblk, inetaddr,                                           &ifp->ac_if, SIOCADDMULTI, &mapMCastBuff) == 0)		    {		    KHEAP_FREE( (char *)pMblk);		    break; /* not yet resolved */		    }                KHEAP_FREE( (char *)pMblk);                /* register the mapped multicast MAC address */                error = muxMCastAddrAdd (pDrvCtrl->pIpCookie,                                         (char *)&mapMCastBuff);                }            break;           /* if no resolve function, return OK */        case SIOCDELMULTI:            /* Don't allow group membership on non-multicast interfaces. */            if ((ifp->ac_if.if_flags & IFF_MULTICAST) == 0)                return EOPNOTSUPP;                        if (ifp->ac_if.if_resolve)                {                pDrvCtrl = ifp->ac_if.pCookie;                ifr = (struct ifreq *)data;                inetaddr = (&ifr->ifr_addr);                                pMblk = KHEAP_ALLOC(sizeof (M_BLK));                if (pMblk == NULL)                    {                    error = ENOBUFS;                    break;                    }                bzero ( (char *)pMblk, sizeof (M_BLK));                pMblk->mBlkHdr.mFlags |= M_MCAST;                /*                 * call the registered address resolution function to do                 * the mapping                 */                                if (ifp->ac_if.if_resolve (&ipMcastResume, pMblk, inetaddr,                                     &ifp->ac_if, SIOCDELMULTI, &mapMCastBuff) == 0)		    {		    KHEAP_FREE( (char *)pMblk);		    break; /* not yet resolved */		    }		KHEAP_FREE( (char *)pMblk);                		/* delete the mapped multicast MAC address */                		error = muxMCastAddrDel (pDrvCtrl->pIpCookie,                                         (char *)&mapMCastBuff);		}            break;            /* if no resolve routine, return OK */            	case SIOCGETMULTI:	    break;            	case SIOCSIFFLAGS:	    ifr = (struct ifreq *) data;			    	    /* 	     * Turn off all flags that are disabled in the request 	     * correcting for the conversion from short to long 	     */	    	    flagsMask = (unsigned short) (~ ifr->ifr_flags);	    /* Two's complement used to disable flags by muxIoctl () */	    	    flagsMask = -flagsMask - 1;	    error = muxIoctl (pDrvCtrl->pIpCookie, EIOCSFLAGS,                              (caddr_t) flagsMask);	    /* 	     * Next set all flags that are set in request correcting for 	     * the conversion from short to long. 	     */	    flagsMask = (unsigned short) ifr->ifr_flags;	    error |= muxIoctl (pDrvCtrl->pIpCookie, EIOCSFLAGS,                               (caddr_t) flagsMask);	    break;        case SIOCGMCASTLIST:            error = muxIoctl (pDrvCtrl->pIpCookie, EIOCGMCASTLIST, data);            if (error != OK)                return (EINVAL);            break;	default:	    error = muxIoctl (pDrvCtrl->pIpCookie, cmd, data);	    break;	}    return (error);    }/******************************************************************************** ipOutput - transmit routine for IP packets using END or NPT devices.** This routine handles the final processing before transferring a* network packet (contained in the <m0> argument) to the transmit* device.** For END devices, it encapsulates a packet in the link-level frame* before transferring it to the driver. The output processing constructs* Ethernet frames unless the device provides a custom routine to form the* appropriate frame header.** For NPT devices, the routine just inserts the destination link-level* address at the front of the mBlk chain. Later processing hands that* address to the driver along with an mBlk chain containing the network* packet (with no link-level header).** NOTE: It assumes that ifp is actually a pointer to an arpcom structure.** NOMANUAL*/int ipOutput    (    register struct ifnet *ifp,    struct mbuf *m0,    struct sockaddr *dst,    struct rtentry *rt0    )    {    u_short etype = 0;    int s, error = 0;    register struct mbuf *m = m0;    register struct rtentry *rt;    int off;    struct arpcom *ac = (struct arpcom *)ifp;    struct ether_header* eh;    IP_DRV_CTRL* pDrvCtrl;#ifdef ROUTER_STACK    struct ip* pIpHdr;    END_OBJ* pEnd;    struct sockaddr_in* pNetMask;#endif  /* ROUTER_STACK */     pDrvCtrl = (IP_DRV_CTRL *)ifp->pCookie;    if (pDrvCtrl->pIpCookie == NULL)        senderr (EINVAL);    if ((ifp->if_flags & (IFF_UP|IFF_RUNNING)) != (IFF_UP|IFF_RUNNING))        {#ifdef WV_INSTRUMENTATION#ifdef INCLUDE_WVNET    /* WV_NET_CRITICAL event */        WV_NET_EVENT_1 (NET_CORE_EVENT, WV_NET_CRITICAL, 2, 3,                         WV_NETEVENT_ETHEROUT_IFDOWN, WV_NET_SEND, ifp)#endif  /* INCLUDE_WVNET */#endif        senderr(ENETDOWN);        }    ifp->if_lastchange = tickGet();    if ((rt = rt0))        {        if ((rt->rt_flags & RTF_UP) == 0)            {            if ((rt0 = rt = rtalloc1(dst, 1)))                rt->rt_refcnt--;            else                {#ifdef WV_INSTRUMENTATION#ifdef INCLUDE_WVNET    /* WV_NET_CRITICAL event */                WV_NET_EVENT_1 (NET_CORE_EVENT, WV_NET_CRITICAL, 4, 5,                                 WV_NETEVENT_ETHEROUT_NOROUTE, WV_NET_SEND,                                ((struct sockaddr_in *)dst)->sin_addr.s_addr)#endif  /* INCLUDE_WVNET */#endif                senderr(EHOSTUNREACH);                }            }        if (rt->rt_flags & RTF_GATEWAY)            {            if (rt->rt_gwroute == 0)                goto lookup;            if (((rt = rt->rt_gwroute)->rt_flags & RTF_UP) == 0)                {                rtfree(rt); rt = rt0;                lookup: rt->rt_gwroute = rtalloc1(rt->rt_gateway, 1);                if ((rt = rt->rt_gwroute) == 0)                    {#ifdef WV_INSTRUMENTATION#ifdef INCLUDE_WVNET    /* WV_NET_CRITICAL event */                    WV_NET_EVENT_1 (NET_CORE_EVENT, WV_NET_CRITICAL, 4, 5,                                     WV_NETEVENT_ETHEROUT_NOROUTE, WV_NET_SEND,                     ((struct sockaddr_in *)rt->rt_gateway)->sin_addr.s_addr)#endif  /* INCLUDE_WVNET */#endif                    senderr(EHOSTUNREACH);                    }                }            }        if (rt->rt_flags & RTF_REJECT)            {            if (rt->rt_rmx.rmx_expire == 0 ||                tickGet() < rt->rt_rmx.rmx_expire)                {#ifdef WV_INSTRUMENTATION#ifdef INCLUDE_WVNET    /* WV_NET_CRITICAL event */                WV_NET_EVENT_0 (NET_CORE_EVENT, WV_NET_CRITICAL, 5, 6,                                 WV_NETEVENT_ETHEROUT_RTREJECT, WV_NET_SEND)#endif  /* INCLUDE_WVNET */#endif                senderr(rt == rt0 ? EHOSTDOWN : EHOSTUNREACH);                }            }        } /* if (rt = rt0) */    switch (dst->sa_family)        {        case AF_INET:            if (ifp->if_resolve != NULL)                if (!ifp->if_resolve (&ipOutputResume, m, dst, ifp, rt,                                      pDrvCtrl->pDstAddr))                    return (0);	/* if not yet resolved */#ifdef ROUTER_STACK            if ((m->m_flags & M_FORWARD))                 {                /*                 * If we are forwarding this packet, and Fastpath is                 * enabled both at the module and interface level,                 * supply the Fastpath module with the additional                 * forwarding information (the MAC address etc.)                 */                if (SHOULD_MAKE_CALLS_TO_FF (GET_IPV4_FF_ID) &&                     FF_MOD_ENABLED (GET_IPV4_FF_ID) &&                    FF_INTF_ENABLED (GET_IPV4_FF_ID, ifp))                    {                    pEnd = PCOOKIE_TO_ENDOBJ(pDrvCtrl->pIpCookie);                    pIpHdr= mtod(m, struct ip *);                    pNetMask=(struct sockaddr_in*)(rt_mask(rt0));#ifdef DEBUG                    logMsg ("ipOutput: dst IP addr %x\n", pIpHdr->ip_dst.s_addr,                            0, 0, 0, 0, 0);                    logMsg ("ipOutput: rt0 is %x. rt is %x.\n", rt0, rt,                            0, 0, 0, 0);#endif /* DEBUG */                    /*                     * if indirect route pass the 'key' of the                     * routing entry as the destination IP address.                     * If not pass the host                     * IP address as the destination IP address.                     */                    if (rt0->rt_flags & RTF_GATEWAY)                        {                        if (rt0->rt_flags & RTF_CLONED)                             rt0 = rt0->rt_parent;                        if (rt0)                             FFL_CALL (ffLibRouteMoreInfo, \                                      (GET_IPV4_FF_ID, rt_key(rt0), \                                       rt_mask(rt0), rt0->rt_gateway, \                                       pDrvCtrl->pDstAddr, ifp->if_addrlen, \                                       rt0->rt_flags, ifp->if_mtu, \                                       ifp->if_index, ifp));                        }                    else                         {                        FFL_CALL (ffLibRouteMoreInfo, \                                  (GET_IPV4_FF_ID, dst, \                                   0, dst, \                                   pDrvCtrl->pDstAddr, ifp->if_addrlen, \                                   rt0->rt_flags, ifp->if_mtu, \                                   ifp->if_index, ifp));                        }                    }                }#endif /* ROUTER_STACK */            /* If broadcasting on a simplex interface, loopback a copy */            if ((m->m_flags & M_BCAST) && (ifp->if_flags & IFF_SIMPLEX) &&		!(m->m_flags & M_PROXY))                ip_mloopback (ifp, m, (struct sockaddr_in *)dst,                              (struct rtentry*)rt);            off = m->m_pkthdr.len - m->m_len;            etype = ETHERTYPE_IP;            break;        case AF_UNSPEC:            /*             * WARNING: At the moment this code ONLY handles 14 byte             * headers of the type like Ethernet.             */            switch (ifp->if_type)                {                case M2_ifType_ethernet_csmacd:                case M2_ifType_iso88023_csmacd:                case M2_ifType_iso88024_tokenBus:                case M2_ifType_iso88025_tokenRing:                case M2_ifType_iso88026_man:                case M2_ifType_fddi:                    eh = (struct ether_header *)dst->sa_data;		    bcopy((caddr_t)eh->ether_dhost, 		          (caddr_t)pDrvCtrl->pDstAddr, ifp->if_addrlen);                    etype = eh->ether_type;                    break;                default:                    error=ERROR;		}                          if(!error)                 break;             /* fall-through */        default:            logMsg ("%s%d: can't handle af%d\n", (int)ifp->if_name,                    ifp->if_unit, dst->sa_family, 0, 0, 0);#ifdef WV_INSTRUMENTATION#ifdef INCLUDE_WVNET    /* WV_NET_ERROR event */            WV_NET_EVENT_1 (NET_CORE_EVENT, WV_NET_ERROR, 3, 7,                             WV_NETEVENT_ETHEROUT_AFNOTSUPP, WV_NET_SEND,                            dst->sa_family)#endif  /* INCLUDE_WVNET */#endif            senderr(EAFNOSUPPORT);        }        etype = htons(etype);    if (pDrvCtrl->nptFlag)        {        /*         * For NPT devices, insert the destination address (if any) and         * network protocol type at the beginning of the network packet         * for later use.         */        if (ifp->if_addrlen)            {            M_PREPEND(m, ifp->if_addrlen, M_DONTWAIT);            if (m == NULL)                {                senderr(ENOBUFS);                }            ((M_BLK_ID)m)->mBlkPktHdr.rcvif = 0;            /* Store the destination address. */            bcopy (pDrvCtrl->pDstAddr, m->m_data, ifp->if_

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩一本二本av| 国产酒店精品激情| 欧美午夜精品免费| 亚洲一区二区三区视频在线播放| 色噜噜夜夜夜综合网| 亚洲国产精品久久人人爱蜜臀| 欧美日韩中文国产| 奇米影视一区二区三区小说| 欧美videofree性高清杂交| 国产在线播精品第三| 中文字幕巨乱亚洲| 在线亚洲免费视频| 日日夜夜精品视频免费| 日韩欧美精品在线视频| 成人做爰69片免费看网站| 一区二区三区**美女毛片| 欧美猛男gaygay网站| 精品综合久久久久久8888| 国产精品黄色在线观看| 欧美乱妇23p| 国产成人亚洲综合a∨猫咪| 亚洲婷婷国产精品电影人久久| 欧美狂野另类xxxxoooo| 国产成人亚洲综合a∨猫咪| 亚洲一区二区三区中文字幕| 日韩欧美色电影| av不卡免费在线观看| 日韩av电影一区| 亚洲欧洲av一区二区三区久久| 成人av动漫网站| 五月天网站亚洲| 日本一区二区电影| 欧美高清精品3d| 91在线小视频| av男人天堂一区| 美女视频免费一区| 亚洲欧美日韩一区二区三区在线观看| 91精品国产乱码| 成人av在线资源| 另类人妖一区二区av| 亚洲欧美日韩在线不卡| 精品卡一卡二卡三卡四在线| 欧美色老头old∨ideo| 国产91在线|亚洲| 麻豆成人久久精品二区三区红| 国产亚洲美州欧州综合国| 91精品欧美综合在线观看最新| 国产精品1区2区3区在线观看| 一区二区三区四区国产精品| 久久众筹精品私拍模特| 欧美一区二区三区色| 色呦呦国产精品| 高清不卡一二三区| 国产麻豆日韩欧美久久| 日本女优在线视频一区二区| 一区二区欧美国产| 亚洲视频中文字幕| 日本一区二区三区在线不卡| 精品动漫一区二区三区在线观看| 在线成人小视频| 欧美日韩免费不卡视频一区二区三区| 99免费精品在线| 成人国产精品免费观看视频| 国产美女av一区二区三区| 狠狠色狠狠色综合| 黄一区二区三区| 久久99精品久久只有精品| 免费成人av在线播放| 天堂蜜桃91精品| 日韩高清不卡一区二区三区| 亚洲国产aⅴ成人精品无吗| 亚洲一区在线观看视频| 一区二区三区国产精华| 亚洲精品成人精品456| 亚洲人一二三区| 亚洲欧美成aⅴ人在线观看| 亚洲图片激情小说| 一区二区三区四区中文字幕| 亚洲综合精品久久| 亚洲国产中文字幕| 日韩黄色小视频| 蜜臀久久99精品久久久久宅男| 欧美aaaaa成人免费观看视频| 奇米色一区二区三区四区| 看国产成人h片视频| 国产精品1区二区.| 99视频精品全部免费在线| 色婷婷综合久色| 精品视频一区 二区 三区| 欧美一区二区黄色| xf在线a精品一区二区视频网站| 久久午夜免费电影| 国产精品久久久久四虎| 亚洲另类春色国产| 日韩激情视频在线观看| 激情综合网最新| 9色porny自拍视频一区二区| 91麻豆国产在线观看| 欧美日韩在线播放一区| 精品1区2区在线观看| 国产精品久久一级| 亚洲一区二区三区中文字幕在线| 青青草原综合久久大伊人精品优势| 久久福利视频一区二区| 高清在线成人网| 欧美日韩久久不卡| 久久精品视频网| 亚洲激情五月婷婷| 美腿丝袜亚洲一区| 99精品久久99久久久久| 欧美精品国产精品| 中文字幕乱码一区二区免费| 亚洲二区视频在线| 国产风韵犹存在线视精品| 欧美性xxxxx极品少妇| 久久男人中文字幕资源站| 一区二区不卡在线播放| 精品伊人久久久久7777人| 99精品国产热久久91蜜凸| 91麻豆精品国产91久久久久久 | 亚洲欧美日韩国产一区二区三区 | 日韩不卡手机在线v区| 国产成人免费网站| 欧美日韩一区 二区 三区 久久精品| 久久久久久久久久久久久女国产乱| 一区二区三区四区中文字幕| 国产精华液一区二区三区| 欧美日韩一区精品| 国产精品美女久久久久久久久久久 | 国产精品每日更新在线播放网址| 偷偷要91色婷婷| 波多野结衣中文字幕一区| 日韩一区二区三区在线视频| 亚洲免费观看高清完整版在线观看| 久久99国产精品免费| 精品视频1区2区| ...xxx性欧美| 国产精品一二三四| 日韩视频免费观看高清完整版 | 久久精品欧美日韩| 亚洲成av人片www| 一本一本久久a久久精品综合麻豆| 久久综合99re88久久爱| 男女性色大片免费观看一区二区| 日本精品视频一区二区| 中文字幕第一区二区| 精品亚洲aⅴ乱码一区二区三区| 欧美猛男男办公室激情| 一二三四社区欧美黄| 色素色在线综合| 亚洲色图一区二区三区| av爱爱亚洲一区| 中文字幕一区二区三区在线不卡| 国产精品系列在线播放| 久久综合九色欧美综合狠狠| 蜜桃av一区二区在线观看 | 99re成人精品视频| 国产欧美日韩三级| 国产成人亚洲综合a∨猫咪| 亚洲精品一线二线三线无人区| 美女www一区二区| 日韩一区二区三区四区| 日韩国产欧美视频| 91精品国产麻豆| 毛片av中文字幕一区二区| 欧美一区二区视频网站| 视频精品一区二区| 3d动漫精品啪啪| 亚洲成人精品在线观看| 911精品产国品一二三产区| 亚洲超碰97人人做人人爱| 在线不卡中文字幕| 午夜精品久久久久久久久久| 欧美精品在线观看播放| 日韩电影免费在线观看网站| 欧美一区午夜精品| 精品一区二区三区视频| 精品国产伦一区二区三区观看体验| 极品美女销魂一区二区三区免费| 久久伊99综合婷婷久久伊| 国产成人av福利| 国产精品高清亚洲| 欧洲av一区二区嗯嗯嗯啊| 丝袜亚洲另类欧美综合| 精品国精品国产| 国产成人精品免费| 一区二区成人在线观看| 欧美日韩精品三区| 国产综合久久久久影院| 日韩精品电影在线观看| 精品国产sm最大网站免费看| 国产东北露脸精品视频| 亚洲欧美另类图片小说| 7777女厕盗摄久久久| 国产精品1024| 一区二区三区鲁丝不卡| 精品欧美黑人一区二区三区| 国产精品乡下勾搭老头1| 亚洲精品乱码久久久久| 欧美一区二区三区精品|