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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? netmodel.cc

?? NS2網(wǎng)絡(luò)仿真軟件是目前最為流行的網(wǎng)絡(luò)仿真模擬軟件
?? CC
?? 第 1 頁 / 共 5 頁
字號:
      ehn = lookupEdgeHashNode(e.pe.src, e.pe.dst);      if (direction == FORWARDS) {        if (ehn != 0 && ehn->queue != 0) {          q = ehn->queue->remove(e.pe.pkt);          delete q;        }      } else {        if (ehn != 0 && ehn->queue != 0) {          QueueItem *qi = new QueueItem(e.pe.pkt, e.time,                                        e.offset);          qi->paint(paint_[e.pe.pkt.attr & paintMask_]);          ehn->queue->enque(qi,QUEUE_HEAD);          qi->insert(&animations_);          check_monitors(qi);        }      }      break;    case 'E': {      // Nothing for now      Group *grp = lookupGroup(e.pe.dst);      if (grp == NULL) {        fprintf(stderr, "Packet destination group %d not found\n",          e.pe.dst);        return;      }      int *mbr = new int[grp->size()];      grp->get_members(mbr);      for (int i = 0; i < grp->size(); i++) {        QueueItem *qi = new QueueItem(e.pe.pkt, e.time,              e.offset);        qi->paint(paint_[e.pe.pkt.attr & paintMask_]);        n = lookupNode(mbr[i]);        if (n == 0) {          fprintf(stderr,             "Group member %d not found\n",            mbr[i]);          return;        }        if (direction == FORWARDS) {          n->queue()->enque(qi, QUEUE_TAIL);          qi->insert(&animations_);          check_monitors(qi);        } else {          qi = n->queue()->remove(e.pe.pkt);          delete qi;        }      }      delete mbr;          break;    }    case 'D': {      n = lookupNode(e.pe.dst);      if (n == NULL) {        fprintf(stderr, "Bad node id %d for session deque event\n",          e.pe.dst);        return;      }      if (direction == FORWARDS) {        q = n->queue()->remove(e.pe.pkt);        delete q;      } else {        QueueItem *qi = new QueueItem(e.pe.pkt, e.time, e.offset);        qi->paint(paint_[e.pe.pkt.attr & paintMask_]);        n->queue()->enque(qi, QUEUE_HEAD);        qi->insert(&animations_);        check_monitors(qi);      }      break;    }    case 'P':  // session drop      // Get packet to drop.      if (direction == FORWARDS) {        // fprintf(stderr, "drop on %d -> %d\n", e.pe.src, e.pe.dst);        n = lookupNode(e.pe.dst);        if (n == 0)          return;        q = 0;        if (n->queue() != 0) {          // Remove packet from session queue           q = n->queue()->remove(e.pe.pkt);          if (q == 0) {            // No such packet in queue???             fprintf(stderr, "No packet drop %id in queue\n",                            e.pe.pkt.id);            return;          }          q->position(x,y);          pno = q->paint();          delete q;        }              // Compute the point at which the dropped packet disappears.      // Let's just make this sufficiently far below the lowest      // thing on the screen.          // Watch out for topologies that have all their nodes lined      // up horizontally. In this case, nymin_ == nymax_ == 0.      // Set the bottom to -0.028. This was chosen empirically.      // The nam display was set to the maximum size and the lowest      // position on the display was around -0.028.           float bot;      if (nymin_ - nymax_ < 0.01)        bot = nymin_ - 10 * n->size() ;      else        bot = nymin_ - (nymax_ - nymin_);          Drop *d = new Drop(x, y, bot, n->size()*0.5, /* This is a hack */                         e.time, e.offset, e.pe.pkt);      d->paint(pno);      d->insert(&animations_);      check_monitors(d);      break;    } else {      /*direction is BACKWARDS - need to create the packet*/      //fprintf(stderr, "Packet drop backwards\n");    }    case 'G': {      /* Group event */      Group *grp = lookupGroup(e.ge.src);      if (grp == NULL) {        grp = new Group(e.ge.grp.name, e.ge.src);        add_group(grp);      }            if (e.ge.grp.flag == GROUP_EVENT_JOIN) {        grp->join(e.ge.grp.mbr);        // XXX        // Hard-coded queue angle for session queues. :(        // Create session queue here because they are not like        // traditional queues which are created when nam        // started. Group member may dynamically join/leave,        // so may session queues. We create them here because         // there's a 1-1 relationship between join and creating        // session queues.        n = lookupNode(e.ge.grp.mbr);        if (n == NULL) {          fprintf(stderr, "Bad node %d for group event\n",            e.ge.grp.mbr);          return;        }        // Need more consideration on the placement of these queues        Queue *q = new Queue(0.5);        q->next_ = queues_;        queues_ = q;        n->add_sess_queue(e.ge.src, q);      } else if (e.ge.grp.flag == GROUP_EVENT_LEAVE)        // No deletion of session queues.        grp->leave(e.ge.grp.mbr);      break;    }    case 'l':       /*link event*/      // if src or dst = -1 this is a layout link (-t *)      // so skip over it      if (e.le.src == -1 || e.le.dst == -1)        return;      ehn = lookupEdgeHashNode(e.le.src, e.le.dst);      if (ehn == 0) {        // if edge doesn't exist try to create it dynamically        ep = addEdge(e.le.src, e.le.dst, e);        if (!ep) {          fprintf(stderr, "Unable to create edge(%d,%d) dynamically.\n",                           e.le.src, e.le.dst);          return;        }        ehn = lookupEdgeHashNode(e.le.src, e.le.dst);        do_relayout= true;      }      ehnrev = lookupEdgeHashNode(e.le.dst, e.le.src);      if (ehnrev == 0) {        // if edge doesn't exist try to create it dynamically        ep = addEdge(e.le.dst, e.le.src, e);        if (!ep) {          fprintf(stderr, "Unable to create reverse edge(%d,%d) dynamically.\n",                           e.le.dst, e.le.src);          return;        }        ehnrev = lookupEdgeHashNode(e.le.dst, e.le.src);        do_relayout = true;      }      if (do_relayout) {        //relayout();        relayoutNode(lookupNode(e.le.src));        relayoutNode(lookupNode(e.le.dst));        do_relayout = false;      }      /*note: many link events are bidirectional events so be careful to        apply them to both a link and the reverse of it*/      if (direction==FORWARDS)  {        // Always save the color before the last DOWN event        if (strncmp(e.le.link.state, "DOWN", 4)==0) {          ehn->edge->set_down("red");          ehnrev->edge->set_down("red");        } else if (strncmp(e.le.link.state, "UP", 2)==0) {          /* XXX Assume an UP event always follows a DOWN event */          ehn->edge->set_up();          ehnrev->edge->set_up();        } else if (strncmp(e.le.link.state, "COLOR", 5) == 0) {          ehn->edge->color((char *)e.le.link.color);           ehnrev->edge->color((char *)e.le.link.color);        } else if (strncmp(e.le.link.state, "DLABEL", 6) == 0) {          ehn->edge->dlabel((char *)e.le.link.dlabel);          ehnrev->edge->dlabel((char *)e.le.link.dlabel);        } else if (strncmp(e.le.link.state, "DCOLOR", 6) == 0) {          ehn->edge->dcolor((char *)e.le.link.dcolor);          ehnrev->edge->dcolor((char *)e.le.link.dcolor);        } else if (strncmp(e.le.link.state, "DIRECTION", 9) == 0) {          ehn->edge->direction((char *)e.le.link.direction);          ehnrev->edge->direction((char *)e.le.link.direction);        } else if (strncmp(e.le.link.state, "DIRECTION", 9) == 0) {          ehn->edge->direction((char *)e.le.link.direction);          ehnrev->edge->direction((char *)e.le.link.direction);        }       } else {        if (strncmp(e.le.link.state, "UP", 2)==0) {          ehn->edge->set_down("red");          ehnrev->edge->set_down("red");        } else if (strncmp(e.le.link.state, "DOWN", 4)==0) {          ehn->edge->set_up();        } else if (strncmp(e.le.link.state, "COLOR", 5) == 0) {          ehn->edge->color((char *)e.le.link.oldColor);          ehnrev->edge->color((char *)e.le.link.oldColor);        } else if (strncmp(e.le.link.state, "DLABEL", 6) == 0) {          ehn->edge->dlabel((char *)e.le.link.odlabel);          ehnrev->edge->dlabel((char *)e.le.link.odlabel);        } else if (strncmp(e.le.link.state, "DCOLOR", 6) == 0) {          ehn->edge->dcolor((char *)e.le.link.odcolor);          ehnrev->edge->dcolor((char *)e.le.link.odcolor);        } else if (strncmp(e.le.link.state, "DIRECTION", 9) == 0) {          ehn->edge->direction((char *)e.le.link.odirection);          ehnrev->edge->direction((char *)e.le.link.odirection);        } else if (strncmp(e.le.link.state, "DIRECTION", 9) == 0) {          ehn->edge->direction((char *)e.le.link.odirection);          ehnrev->edge->direction((char *)e.le.link.odirection);        }    }      break;    case 'n':      /* node event */      // Return if node has -t *       // Ths node is only used for initial layout      if (e.ne.src == -1)        return;      n = lookupNode(e.ne.src);      if (n == 0) {        // if node doesn't exist try to create it dynamically        n = addNode(e);        if (!n)          return;      }      if (direction==FORWARDS) {        if (strncmp(e.ne.node.state, "DOWN", 4)==0) {                n->set_down("gray");        } else if (strncmp(e.ne.node.state, "UP", 2)==0) {                n->set_up();        } else if (strncmp(e.ne.node.state, "COLOR", 5) == 0) {                // normal color can be defined by user                n->color((char *)e.ne.node.color);                n->lcolor((char *)e.ne.node.lcolor);        } else if (strncmp(e.ne.node.state, "DLABEL", 6) == 0) {                n->dlabel((char *)e.ne.node.dlabel);         } else if (strncmp(e.ne.node.state, "DCOLOR", 6) == 0) {                n->dcolor((char *)e.ne.node.dcolor);        } else if (strncmp(e.ne.node.state, "DIRECTION", 9) == 0) {                n->direction((char *)e.ne.node.direction);        }      } else {        if (strncmp(e.ne.node.state, "UP", 4)==0) {                n->set_down("gray");        } else if (strncmp(e.ne.node.state, "DOWN", 2)==0) {                n->set_up();        } else if (strncmp(e.ne.node.state, "COLOR", 5) == 0) {                n->color((char *)e.ne.node.oldColor);                n->lcolor((char *)e.ne.node.olcolor);        }  else if (strncmp(e.ne.node.state, "DLABEL", 6) == 0) {                n->dlabel((char *)e.ne.node.odlabel);        } else if (strncmp(e.ne.node.state, "DCOLOR", 6) == 0) {                n->dcolor((char *)e.ne.node.odcolor);        } else if (strncmp(e.ne.node.state, "DIRECTION", 9) == 0) {                n->direction((char *)e.ne.node.odirection);        }      }        break;    case 'm':      /* node mark event */      NodeMark *cm;      n = lookupNode(e.me.src);      if (n == 0)        return;      cm = n->find_mark((char *) e.me.mark.name);      if (direction == FORWARDS) {        if (e.me.mark.expired == 0) {          /* once created, a node mark cannot be changed*/          if (cm == NULL)             n->add_mark((char *)e.me.mark.name,                         (char *)e.me.mark.color,                        (char *)e.me.mark.shape);        } else           /* expired */          n->delete_mark((char *)e.me.mark.name);      } else {        /*          * backward:          * (1) create it if expired == 1         * (2) delete it if expired == 0         */        if (e.me.mark.expired == 0)           n->delete_mark((char *)e.me.mark.name);        else {          /* re-create the circle */          if (cm == NULL)            n->add_mark((char *)e.me.mark.name,             (char *)e.me.mark.color,            (char *)e.me.mark.shape);        }      }      break;    case 'R':      // route event      if (((e.re.route.expired==0)&&(direction==FORWARDS))||          ((e.re.route.expired==1)&&(direction==BACKWARDS))) {         // this is a new route        n = lookupNode(e.re.src);        if (n == 0)          return;        ehn = lookupEdgeHashNode(e.re.src, e.re.dst);        if (ehn == 0)          return;        int oif=1;        if (strncmp(e.re.route.mode, "iif", 3)==0)          oif=0;        r = new Route(n, ehn->edge, e.re.route.group, e.re.route.pktsrc,                       e.re.route.neg, oif, e.re.route.timeout, now);        n->add_route(r);        n->place_route(r);        r->insert(&animations_);        r->paint(paint_[e.re.route.group & paintMask_]);        check_monitors(r);      } else {        // an old route expired        n = lookupNode(e.re.src);        if (n == 0)          return;                // src and dst are node ids         ehn = lookupEdgeHashNode(e.re.src, e.re.dst);        if (ehn == 0)          return;        int oif = 1;        if (strncmp(e.re.route.mode, "iif", 3) == 0) {          oif=0;        }        r = n->find_route(ehn->edge, e.re.route.group,                          e.re.route.pktsrc, oif);        if (r == 0) {          fprintf(stderr, "nam: attempt to delete non-existent route\n");          abort();        }        n->delete_route(r);        delete r;      }      break;    case 'd':      add_drop(e, now, direction);  }}//---------------------------------------------------------------------//  void// NetModel::add_drop(const TraceEvent &e, double now, int direction)//   - This method adds a packet drop animation to the animations_ list//   - Packet drops can occur from queues and edges.  If the queue is //     not being displayed the packet is dropped from the node//     position.//   - If the animation direction is BACKWARDS a packet should be//     created but it appears that this code does not do that.//---------------------------------------------------------------------voidNetModel::add_drop(const TraceEvent &e, double now, int direction) {  EdgeHashNode *ehn;  QueueItem *q;  Packet *p;  Lan *lan;  float x, y;  int pno;  // paint number (color with which to draw)    // Get packet to drop.   if (direction == FORWARDS) {    ehn = lookupEdgeHashNode(e.pe.src, e.pe.dst);    if (ehn == 0) {     return;    }    q = 0;    if (ehn->queue != 0) {      // if there's a queue, try removing it from the queue first      // queue drops are more common than link drops...      q = ehn->queue->remove(e.pe.pkt);    }    if (q == 0) {      // perhaps it's a link packet drop      p = lookupPacket(e.pe.src, e.pe.dst, e.pe.pkt.id);      if (p != NULL) {        // it was a link packet drop        p->position(x, y, now);        ehn->edge->DeletePacket(p);        pno = p->paint();        delete p;      } else if ((lan = lookupLan(e.pe.src)) != NULL) {        /*          * If it's a Lan (selective) packet drop, which means         * the packet is only dropped on some of the lan links,         * register the packet on the lan and drop it when the         * packet is actually transmitted to that lan link.         *         * When the packet is actually dropped, this function will be          * called again, but at that time the packet will be actually         * on the link and this code will not be executed.         */        lan->register_drop(e);        return;      } else {        // probably it was a queue drop, but we're not displaying        // that queue               // It's possible that this packet is dropped directly from         // the queue, even before the enqT_ module. In this case,         // we should still produce a packet drop; we use the position        // of the node to generate the drop.        Node *s = lookupNode(e.pe.src);        if (s == NULL) {          fprintf(stderr, "NetModel::add_drop(): cannot find src node for packet drop.\n");          abort();        }        x = s->x();        y = s->y();        pno = paint_[e.pe.pkt.attr & paintMask_];      }    } else {      // packet dropped from queue      // get x,y position of queue item      q->position(x, y);

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
白白色 亚洲乱淫| 亚洲成人三级小说| 欧美婷婷六月丁香综合色| 一本久久a久久精品亚洲| 夜夜夜精品看看| 国产亚洲欧美日韩日本| 欧美日韩精品一区二区三区| 国产sm精品调教视频网站| 午夜欧美2019年伦理| 亚洲欧洲三级电影| 26uuu精品一区二区在线观看| 在线观看亚洲精品| 成人不卡免费av| 国产一区二区在线观看免费| 亚洲一级电影视频| 日韩美女久久久| 国产欧美精品区一区二区三区 | 久久国产成人午夜av影院| 一区二区三区四区精品在线视频| 国产日韩亚洲欧美综合| 欧美一级久久久久久久大片| 欧洲视频一区二区| 91玉足脚交白嫩脚丫在线播放| 精品久久久久久无| av网站一区二区三区| 精品一区二区三区免费毛片爱 | 欧美精品久久99久久在免费线| 99久久综合精品| 国产999精品久久| 国产在线视频精品一区| 蜜桃一区二区三区四区| 午夜精品成人在线| 亚洲成精国产精品女| 亚洲欧美成aⅴ人在线观看| 亚洲国产精品高清| 国产欧美日韩三级| 国产色91在线| 日本一区二区不卡视频| 日本一区二区三区在线不卡| 久久久久久久久岛国免费| 精品美女一区二区三区| 亚洲图片欧美色图| 亚洲精品日韩专区silk| 国产色综合一区| 国产精品伦理在线| 国产精品久久久久天堂| 国产精品国产三级国产普通话三级| 国产丝袜在线精品| 亚洲欧美综合色| 亚洲视频狠狠干| 一二三四社区欧美黄| 尤物在线观看一区| 亚洲高清免费一级二级三级| 午夜国产不卡在线观看视频| 午夜成人免费电影| 免费av网站大全久久| 韩国三级在线一区| 国产精品一区二区免费不卡| 成人午夜av电影| 91麻豆高清视频| 欧美性生交片4| 6080国产精品一区二区| 欧美不卡一二三| 欧美国产禁国产网站cc| 一区二区三区四区精品在线视频 | 一区二区三区四区亚洲| 亚洲成人免费看| 久久99国产精品久久| 成人丝袜视频网| 欧美艳星brazzers| 日韩欧美资源站| 国产精品电影一区二区三区| 亚洲大尺度视频在线观看| 日韩不卡手机在线v区| 狠狠色丁香久久婷婷综| 成人av电影在线观看| 欧美三级中文字| 久久这里只有精品首页| 亚洲男人的天堂在线aⅴ视频| 亚洲一区二区五区| 国产自产视频一区二区三区| 91香蕉视频在线| 欧美一级二级在线观看| 中文一区在线播放| 五月天网站亚洲| 成人综合婷婷国产精品久久蜜臀| 欧美三级电影一区| 国产清纯在线一区二区www| 亚洲综合成人网| 国产成人综合精品三级| 色综合久久99| 色94色欧美sute亚洲线路一ni | 奇米亚洲午夜久久精品| 国产东北露脸精品视频| av毛片久久久久**hd| 欧美精品xxxxbbbb| 国产精品久久福利| 日本va欧美va欧美va精品| 成人的网站免费观看| 91麻豆精品国产自产在线观看一区 | 国产夜色精品一区二区av| 亚洲国产成人av| 欧美一区二区性放荡片| 欧美国产禁国产网站cc| 青草av.久久免费一区| 91丨porny丨国产入口| 精品久久久久一区二区国产| 亚洲国产乱码最新视频| 成人动漫一区二区| 中文字幕免费在线观看视频一区| 亚洲精品免费视频| 粉嫩高潮美女一区二区三区 | 不卡的看片网站| 亚洲精品一区二区三区四区高清| 亚洲一区二区三区不卡国产欧美| 高清国产一区二区| 精品国精品国产| 婷婷久久综合九色综合绿巨人| 91网站最新网址| 国产精品天干天干在线综合| 精品亚洲免费视频| 欧美一级理论片| 日韩成人av影视| 欧美精品久久久久久久多人混战| 亚洲免费观看高清完整版在线观看熊 | 成人av电影在线网| 国产视频在线观看一区二区三区| 玖玖九九国产精品| 日韩三级视频在线看| 亚洲成人免费电影| 欧美日韩一区二区三区视频| 一区二区三区四区在线免费观看 | 日日摸夜夜添夜夜添精品视频| 91在线观看污| 国产精品久久久一本精品 | av中文一区二区三区| 欧美极品美女视频| 国产激情一区二区三区桃花岛亚洲| 日韩女同互慰一区二区| 老色鬼精品视频在线观看播放| 91精品免费观看| 免费观看成人av| 欧美大肚乱孕交hd孕妇| 精品一区二区免费视频| 久久中文字幕电影| 成人丝袜18视频在线观看| 国产精品色哟哟网站| 99久久99久久久精品齐齐| 亚洲视频在线一区| 欧美丝袜第三区| 婷婷国产在线综合| 精品国产一区二区三区久久久蜜月 | 亚洲综合自拍偷拍| 欧美三级在线看| 免费亚洲电影在线| 色伊人久久综合中文字幕| 国产日韩精品一区二区三区| 激情文学综合丁香| 久久久久国产精品免费免费搜索| 国产高清不卡一区二区| 日本一区二区电影| 欧美中文字幕一区| 视频一区视频二区在线观看| 欧美电影免费观看高清完整版在线观看 | 99久久国产综合精品色伊| 一区二区三区精品视频| 欧美男人的天堂一二区| 男女男精品视频网| 久久精品欧美一区二区三区不卡| 成人黄动漫网站免费app| 一区二区三区欧美久久| 欧美一卡2卡三卡4卡5免费| 国产精品综合av一区二区国产馆| 国产精品色哟哟| 欧美日韩精品福利| 国产一区在线观看麻豆| 亚洲女女做受ⅹxx高潮| 日韩一区二区在线免费观看| 中文字幕亚洲视频| 岛国精品在线播放| 亚洲一级在线观看| 精品久久久久久久久久久久久久久久久 | 午夜精品123| 国产日韩欧美麻豆| 91国偷自产一区二区三区成为亚洲经典 | 久久久久久久久久久久久女国产乱| 91一区在线观看| 美女视频黄 久久| 中文字幕在线免费不卡| 91精品国产全国免费观看 | 黑人巨大精品欧美一区| 亚洲少妇屁股交4| 日韩久久久久久| 色综合激情五月| 精品一区二区三区免费播放| 亚洲精品视频观看| 国产欧美日韩视频在线观看| 制服丝袜日韩国产| 北岛玲一区二区三区四区| 久久国产精品99精品国产|