void ncp_Init(struct ncp *ncp, struct bundle *bundle) { ncp->afq = AF_INET; ncp->route = NULL; ncp->cfg.urgent.tcp.port = (u_short *)malloc(NDEFTCPPORTS * sizeof(u_short)); if (ncp->cfg.urgent.tcp.port == NULL) { log_Printf(LogERROR, "ncp_Init: Out of memory allocating urgent ports\n"); ncp->cfg.urgent.tcp.nports = ncp->cfg.urgent.tcp.maxports = 0; } else { ncp->cfg.urgent.tcp.nports = ncp->cfg.urgent.tcp.maxports = NDEFTCPPORTS; memcpy(ncp->cfg.urgent.tcp.port, default_urgent_tcp_ports, NDEFTCPPORTS * sizeof(u_short)); } ncp->cfg.urgent.tos = 1; ncp->cfg.urgent.udp.nports = ncp->cfg.urgent.udp.maxports = 0; ncp->cfg.urgent.udp.port = NULL; mp_Init(&ncp->mp, bundle); /* Send over the first physical link by default */ ipcp_Init(&ncp->ipcp, bundle, &bundle->links->physical->link, &bundle->fsm); #ifndef NOINET6 ipv6cp_Init(&ncp->ipv6cp, bundle, &bundle->links->physical->link, &bundle->fsm); #endif }
void ncp_Init(struct ncp *ncp, struct bundle *bundle) { ncp->afq = AF_INET; ncp->route = NULL; ncp->cfg.urgent.tcp.nports = ncp->cfg.urgent.tcp.maxports = NDEFTCPPORTS; ncp->cfg.urgent.tcp.port = (u_short *)malloc(NDEFTCPPORTS * sizeof(u_short)); memcpy(ncp->cfg.urgent.tcp.port, default_urgent_tcp_ports, NDEFTCPPORTS * sizeof(u_short)); ncp->cfg.urgent.tos = 1; ncp->cfg.urgent.udp.nports = ncp->cfg.urgent.udp.maxports = 0; ncp->cfg.urgent.udp.port = NULL; mp_Init(&ncp->mp, bundle); /* Send over the first physical link by default */ ipcp_Init(&ncp->ipcp, bundle, &bundle->links->physical->link, &bundle->fsm); #ifndef NOINET6 ipv6cp_Init(&ncp->ipv6cp, bundle, &bundle->links->physical->link, &bundle->fsm); #endif }
VOS_VOID link_Init(struct link *l) { l->phase = PHASE_DEAD; l->type = PHYSICAL_LINK; l->name = VOS_NULL; l->len = sizeof(*l); /* The sample period is fixed - see physical2iov() & iov2physical() */ throughput_init(&l->stats.total, SAMPLE_PERIOD); #if 0/*fanzhibin f49086 delete it*/ p->link.stats.parent = dl->bundle->ncp.mp.active ? &dl->bundle->ncp.mp.link.stats.total : VOS_NULL_PTR; #endif l->stats.gather = 1; l->DropedPacketFromGgsn = 0; PS_MEM_SET(l->Queue, '\0', sizeof l->Queue); PS_MEM_SET(l->proto_in, '\0', sizeof l->proto_in); PS_MEM_SET(l->proto_out, '\0', sizeof l->proto_out); link_EmptyStack(l); /*依次压入PPP协议的各个处理层*/ #if (PPP_FEATURE == PPP_FEATURE_PPP) link_Stack(l, &asynclayer); link_Stack(l, &hdlclayer); link_Stack(l, &acflayer); #endif link_Stack(l, &protolayer); async_Init(&(l->async)); hdlc_Init(&(l->hdlc),&(l->lcp)); /*参数const struct fsm_parent * parent不能为空*/ lcp_Init(&(l->lcp), l, &parent); ipcp_Init(&(l->ipcp), l, &parent); pap_Init(&(l->pap)); chap_Init(&(l->chap)); }