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

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

?? aodv.java

?? jsim simulator program for MANET
?? JAVA
?? 第 1 頁 / 共 3 頁
字號:
// Decompiled by DJ v3.9.9.91 Copyright 2005 Atanas Neshkov  Date: 10/5/2007 10:49:25 AM
// Home Page : http://members.fortunecity.com/neshkov/dj.html  - Check often for new version!
// Decompiler options: packimports(3) 

package drcl.inet.protocol.aodv;

import drcl.comp.ActiveComponent;
import drcl.comp.Port;
import drcl.inet.InetPacket;
import drcl.inet.contract.IDLookup;
import drcl.inet.data.RTEntry;
import drcl.inet.data.RTKey;
import drcl.inet.protocol.Routing;
import drcl.inet.protocol.UnicastRouting;
import java.io.PrintStream;
import java.util.Random;
import java.util.Vector;

// Referenced classes of package drcl.inet.protocol.aodv:
//            AODV_TimeOut_EVT, AODV_RERR, AODV_Packet, AODV_RREQ, 
//            AODV_RREP, AODV_RTEntry

public class AODV extends Routing
    implements UnicastRouting, ActiveComponent
{
    class AODV_Buffered_pkt
    {

        protected InetPacket ipkt;
        protected double expire;

        AODV_Buffered_pkt(InetPacket inetpacket, double d)
        {
            super();
            ipkt = (InetPacket)inetpacket.clone();
            expire = d;
        }
    }

    class AODV_BroadcastID
    {

        public long src;
        public int id;
        public double expire;

        AODV_BroadcastID(long l)
        {
            super();
            src = l;
        }

        AODV_BroadcastID(long l, int i)
        {
            super();
            src = l;
            id = i;
        }
    }


    public String getName()
    {
        return "aodv";
    }

    public String[] getDebugLevelNames()
    {
        return DEBUG_LEVELS;
    }

    public AODV()
    {
        router_id = 0x7fffffff;
        AODV_link_layer_detection = false;
        bcast_id_list = null;
        aodv_rt_entry_list = null;
        aodv_nbr_list = null;
        bcast_id_EVT = null;
        hello_EVT = null;
        nbr_EVT = null;
        route_EVT = null;
        local_repair_EVT = null;
        ifport = createIFQueryPort();
        idport = createIDServicePort();
        createLinkBrokenEventPort();
        bcast_id_list = new Vector();
        aodv_rt_entry_list = new Vector();
        aodv_nbr_list = new Vector();
        pkt_list = new Vector();
        pkt_queue_limit_ = 64;
        pkt_queue_timeout_ = 30D;
        seqno = 2;
        bid = 1;
    }

    public String info()
    {
        int i = (int)getTime();
        StringBuffer stringbuffer = new StringBuffer();
        return stringbuffer.toString();
    }

    public void reset()
    {
        super.reset();
        router_id = 0x7fffffff;
        bcast_id_list.removeAllElements();
        aodv_rt_entry_list.removeAllElements();
        aodv_nbr_list.removeAllElements();
        pkt_list.removeAllElements();
        if(bcast_id_EVT.handle != null)
        {
            cancelTimeout(bcast_id_EVT.handle);
            bcast_id_EVT.setObject(null);
            bcast_id_EVT.handle = null;
        }
        if(hello_EVT.handle != null)
        {
            cancelTimeout(hello_EVT.handle);
            hello_EVT.setObject(null);
            hello_EVT.handle = null;
        }
        if(nbr_EVT.handle != null)
        {
            cancelTimeout(nbr_EVT.handle);
            nbr_EVT.setObject(null);
            nbr_EVT.handle = null;
        }
        if(route_EVT.handle != null)
        {
            cancelTimeout(route_EVT.handle);
            route_EVT.setObject(null);
            route_EVT.handle = null;
        }
    }

    public void duplicate(Object obj)
    {
        super.duplicate(obj);
        AODV aodv = (AODV)obj;
    }

    protected void _start()
    {
        if(router_id == 0x7fffffff)
        {
            router_id = (int)IDLookup.getDefaultID(idport);
            if(isDebugEnabled() && isDebugEnabledAt(1))
                debug(" is constructed");
        }
        if(!AODV_link_layer_detection)
        {
            hello_EVT = new AODV_TimeOut_EVT(1, null);
            double d = 0.75D + 0.5D * rand.nextDouble();
            hello_EVT.handle = setTimeout(hello_EVT, d);
            if(isDebugEnabled() && isDebugEnabledAt(7))
                debug("setTimeout " + hello_EVT + " time " + d);
        }
    }

    public void enable_link_detection()
    {
        AODV_link_layer_detection = true;
    }

    public void disable_link_detection()
    {
        AODV_link_layer_detection = false;
    }

    public void LinkBrokenEventHandler(InetPacket inetpacket, Port port)
    {
        long l = inetpacket.getNextHop();
        AODV_RTEntry aodv_rtentry;
        if((aodv_rtentry = rt_lookup(inetpacket.getDestination())) == null)
        {
            if(isDebugEnabled() && (isDebugEnabledAt(5) || isDebugEnabledAt(1)))
                debug("LinkBrokenEventHandler: no route, drop pkt " + inetpacket);
            if(isGarbageEnabled())
                drop(inetpacket, "DROP_RTR_MAC_CALLBACK");
            return;
        }
        if(inetpacket.getHops() > aodv_rtentry.rt_hops)
        {
            local_rt_repair(aodv_rtentry, inetpacket);
            return;
        }
        if(isGarbageEnabled())
            drop(inetpacket, "DROP_RTR_MAC_CALLBACK");
        if(!AODV_link_layer_detection)
            nb_delete(l);
        handle_link_failure(l);
    }

    public int[] routeQueryHandler(InetPacket inetpacket, int i, Port port)
    {
        AODV_RTEntry aodv_rtentry = rt_lookup(inetpacket.getDestination());
        if(aodv_rtentry == null)
            aodv_rtentry = rt_add(inetpacket.getDestination());
        if(aodv_rtentry.rt_flags == 1)
        {
            Object obj = retrieveRTEntryDest(aodv_rtentry.rt_dst);
            if(obj != null && (obj instanceof RTEntry))
            {
                RTEntry rtentry = (RTEntry)obj;
                return rtentry._getOutIfs();
            }
            if(obj != null && (obj instanceof RTEntry[]) && ((RTEntry[])obj).length > 0)
            {
                RTEntry artentry[] = (RTEntry[])obj;
                debug("mul_rt length " + artentry.length);
                return artentry[0]._getOutIfs();
            }
            debug("ERROR! inconsistency btw RT(empty) len: " + ((RTEntry[])obj).length + " and aodv_RT " + aodv_rtentry + " pkt: " + inetpacket);
            aodv_rtentry.rt_down();
        }
        if(inetpacket.getSource() == (long)router_id)
        {
            aodv_pkt_enque(inetpacket);
            sendRequest(aodv_rtentry.rt_dst);
        } else
        if(aodv_rtentry.rt_flags == 2)
        {
            aodv_pkt_enque(inetpacket);
        } else
        {
            AODV_RERR aodv_rerr = new AODV_RERR();
            aodv_rerr.DestCount = 0;
            aodv_rerr.unreachable_dst[aodv_rerr.DestCount] = aodv_rtentry.rt_dst;
            aodv_rerr.unreachable_dst_seqno[aodv_rerr.DestCount] = aodv_rtentry.rt_seqno;
            aodv_rerr.DestCount++;
            if(isDebugEnabled() && (isDebugEnabledAt(1) || isDebugEnabledAt(5)))
            {
                debug("sending RERR: " + aodv_rerr + " pkt:" + inetpacket);
                if(aodv_rtentry != null)
                    debug("RERR RT: " + aodv_rtentry);
            }
            sendError(aodv_rerr, false);
            if(isGarbageEnabled())
                drop(inetpacket, "DROP_RTR_NO_ROUTE");
        }
        return null;
    }

    protected void timeout(Object obj)
    {
        if(isDebugEnabled() && (isDebugEnabledAt(0) || isDebugEnabledAt(7)))
            debug("__timeout__ " + obj);
        int i = ((AODV_TimeOut_EVT)obj).EVT_Type;
        double d = getTime();
        switch(i)
        {
        default:
            break;

        case 0: // '\0'
            if(obj != bcast_id_EVT)
            {
                error("timeout()", " ** ERROR ** where does this come from? " + obj);
                break;
            }
            id_purge();
            bcast_id_EVT.handle = setTimeout(bcast_id_EVT, 6D);
            if(isDebugEnabled() && isDebugEnabledAt(7))
                debug("Time: " + d + " set BCAST timeout: " + 6);
            break;

        case 1: // '\001'
            if(obj != hello_EVT)
            {
                error("timeout()", " ** ERROR ** where does this come from? " + obj);
                break;
            }
            sendHello();
            double d1 = 0.75D + 0.5D * rand.nextDouble();
            hello_EVT.handle = setTimeout(hello_EVT, d1);
            if(isDebugEnabled() && isDebugEnabledAt(7))
                debug("Time: " + d + " set HELLO timeout: " + d1);
            break;

        case 2: // '\002'
            if(obj != nbr_EVT)
            {
                error("timeout()", " ** ERROR ** where does this come from? " + obj);
                break;
            }
            nb_purge();
            nbr_EVT.handle = setTimeout(nbr_EVT, 1.0D);
            if(isDebugEnabled() && isDebugEnabledAt(7))
                debug("Time: " + d + " set NBR timeout: " + 1.0D);
            break;

        case 3: // '\003'
            if(obj != route_EVT)
            {
                error("timeout()", " ** ERROR ** where does this come from? " + obj);
                break;
            }
            rt_purge();
            route_EVT.handle = setTimeout(route_EVT, 0.5D);
            if(isDebugEnabled() && isDebugEnabledAt(7))
                debug("Time: " + d + " set Route timeout: " + 0.5D);
            break;

        case 4: // '\004'
            InetPacket inetpacket = (InetPacket)((AODV_TimeOut_EVT)obj).getObject();
            AODV_RTEntry aodv_rtentry = rt_lookup(inetpacket.getDestination());
            if(aodv_rtentry == null || aodv_rtentry.rt_flags == 1)
                break;
            if(isDebugEnabled() && (isDebugEnabledAt(5) || isDebugEnabledAt(7)))
            {
                debug("Time: " + d + " failed local repair; dst: " + aodv_rtentry.rt_dst);
                debug(" local repair timeoutnexthop: " + aodv_rtentry.rt_nexthop + " pkt: " + inetpacket);
            }
            if(!AODV_link_layer_detection)
                nb_delete(inetpacket.getDestination());
            handle_link_failure(inetpacket.getDestination());
            break;

        case 5: // '\005'
            InetPacket inetpacket1 = (InetPacket)((AODV_TimeOut_EVT)obj).getObject();
            downPort.doSending(inetpacket1);
            break;

        case 6: // '\006'
            AODV_Packet aodv_packet = (AODV_Packet)((AODV_TimeOut_EVT)obj).getObject();
            broadcast(aodv_packet, router_id, 0x7ffffffffffffffeL, true, 1, 1L, 0x7ffffffffffffffeL);
            break;
        }
    }

    protected void process(Object obj, Port port)
    {
        lock(this);
        super.process(obj, port);
        unlock(this);
    }

    public void dataArriveAtDownPort(Object obj, Port port)
    {
        InetPacket inetpacket = (InetPacket)obj;
        AODV_Packet aodv_packet = (AODV_Packet)inetpacket.getBody();
        int i = aodv_packet.getRouterID();
        int j = aodv_packet.getRouterID();
        int k = aodv_packet.getType();
        switch(k)
        {
        case 1: // '\001'
            AODV_RREQ aodv_rreq = (AODV_RREQ)aodv_packet.getBody();
            recvRequest(aodv_rreq, inetpacket);
            break;

        case 2: // '\002'
            AODV_RREP aodv_rrep = (AODV_RREP)aodv_packet.getBody();
            recvReply(aodv_rrep, inetpacket);
            break;

        case 3: // '\003'
            AODV_RERR aodv_rerr = (AODV_RERR)aodv_packet.getBody();
            recvError(aodv_rerr, inetpacket);
            break;

        case 5: // '\005'
            AODV_RREP aodv_rrep1 = (AODV_RREP)aodv_packet.getBody();
            recvHello(aodv_rrep1, inetpacket);
            break;

        case 4: // '\004'
        default:
            if(isDebugEnabled())
                debug(" Invalid AODV type" + k);
            System.exit(1);
            break;
        }
    }

    protected void recvRequest(AODV_RREQ aodv_rreq, InetPacket inetpacket)
    {
        int i = inetpacket.getIncomingIf();
        if(isDebugEnabled() && (isDebugEnabledAt(3) || isDebugEnabledAt(1)))
            debug(" aodv: receive RREQ: " + aodv_rreq + " ipkt " + inetpacket + " from " + inetpacket.getIncomingIf());

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日本不卡不码高清免费观看 | 中文字幕av资源一区| 欧美电影一区二区三区| 欧美视频在线一区二区三区 | 91精品国产入口在线| 日本韩国一区二区| 在线精品亚洲一区二区不卡| 在线观看91视频| 欧美精品xxxxbbbb| 日韩三级精品电影久久久 | 国产一区二区三区综合| 蜜臀av一区二区在线免费观看| 日韩一区精品视频| 免费的成人av| 国产成人在线视频播放| 91色porny在线视频| 欧美三级日韩在线| 欧美变态tickle挠乳网站| 久久综合色之久久综合| 中文字幕在线不卡国产视频| 亚洲天堂网中文字| 三级欧美韩日大片在线看| 激情文学综合网| 成人激情免费网站| 欧美在线视频全部完| 日韩一级大片在线| 久久久精品免费观看| 亚洲色图丝袜美腿| 日韩av在线播放中文字幕| 精品亚洲aⅴ乱码一区二区三区| 成人a区在线观看| 欧美美女激情18p| 国产亚洲一区二区在线观看| 一区二区三区加勒比av| 精品午夜一区二区三区在线观看| 9191国产精品| 精品成a人在线观看| 国产精品乱码人人做人人爱 | 欧美日韩精品是欧美日韩精品| 欧美mv日韩mv国产网站| 亚洲免费看黄网站| 美女在线视频一区| 色欧美片视频在线观看| 久久久久久免费毛片精品| 亚洲综合激情另类小说区| 国产成人免费视| 欧美一区二区三区性视频| 日韩av一级电影| 91香蕉视频污在线| 久久天堂av综合合色蜜桃网| 亚洲一二三级电影| av亚洲精华国产精华精华| 日韩一二三区不卡| 亚洲一区二区三区精品在线| 99综合影院在线| 久久久久久**毛片大全| 日韩精品乱码免费| 色老汉av一区二区三区| 国产日韩欧美一区二区三区乱码 | 91在线视频播放地址| 久久久精品综合| 国产精品亚洲一区二区三区妖精 | 日韩欧美一二三| 亚洲大型综合色站| 色综合一区二区| 中文成人综合网| 国产69精品一区二区亚洲孕妇| 日韩精品自拍偷拍| 蜜臀av性久久久久蜜臀aⅴ| 7777精品伊人久久久大香线蕉的| 亚洲一区二区三区美女| 欧美日韩国产乱码电影| 夜夜精品浪潮av一区二区三区| 成人免费观看男女羞羞视频| 欧美精品一区二区三区久久久 | 成人av在线网站| 国产欧美一区二区三区在线看蜜臀 | 欧美一级理论片| 日本sm残虐另类| 日韩免费成人网| 国产精品 欧美精品| 国产精品午夜在线| 欧美日韩你懂的| 亚洲成人资源在线| 91精品一区二区三区久久久久久 | 欧美人成免费网站| 日韩专区在线视频| 7777精品伊人久久久大香线蕉经典版下载 | 欧美日韩精品欧美日韩精品| 日韩主播视频在线| 日韩午夜在线影院| 国产精品一品视频| 亚洲天天做日日做天天谢日日欢| 在线欧美日韩精品| 久久国产精品区| 久久久久久久久岛国免费| a在线播放不卡| 亚洲一区二区三区在线看| 欧美精品1区2区3区| 国产综合色产在线精品 | 成人一级黄色片| 偷窥少妇高潮呻吟av久久免费| 欧美一区二区播放| 国产成人免费在线| 亚洲超碰精品一区二区| 精品国产乱码久久久久久久 | 色噜噜久久综合| 日韩精品视频网| 日本一区免费视频| 7777精品伊人久久久大香线蕉经典版下载 | 亚洲蜜桃精久久久久久久| 777久久久精品| 日本高清无吗v一区| 美腿丝袜亚洲色图| 亚洲女同一区二区| 亚洲精品在线一区二区| 99国产精品视频免费观看| 麻豆成人免费电影| 亚洲男人的天堂av| 久久久久久亚洲综合影院红桃| 欧美性猛交xxxx乱大交退制版| 久久国产麻豆精品| 亚洲午夜久久久久久久久久久| 久久免费的精品国产v∧| 欧美在线观看视频在线| 国产成人av一区二区三区在线| 亚洲精品国产无套在线观| 精品国产髙清在线看国产毛片| 99re热这里只有精品视频| 久久激情五月激情| 一区二区三区成人在线视频| 伊人色综合久久天天人手人婷| 日韩三级伦理片妻子的秘密按摩| 色天天综合久久久久综合片| 精品无码三级在线观看视频| 亚洲高清不卡在线| 日韩毛片视频在线看| 精品国产髙清在线看国产毛片| 欧洲一区二区三区在线| 97超碰欧美中文字幕| 国产精品伊人色| 国产米奇在线777精品观看| 日本麻豆一区二区三区视频| 亚洲444eee在线观看| 亚洲五月六月丁香激情| 一区二区三区 在线观看视频| 亚洲丝袜美腿综合| 国产精品欧美一级免费| 国产欧美综合在线| 久久尤物电影视频在线观看| 日韩欧美中文字幕精品| 欧美一区二区精品| 日韩欧美一区二区视频| 欧美岛国在线观看| 精品三级av在线| 精品免费视频一区二区| 久久一区二区三区国产精品| 欧美videos大乳护士334| 久久午夜电影网| 中文字幕乱码亚洲精品一区 | 一区二区三区欧美日| 伊人色综合久久天天| 亚洲主播在线观看| 国内一区二区视频| 国内精品久久久久影院薰衣草| 看国产成人h片视频| 国产一区二区三区在线观看免费 | 欧美精品久久99| 日韩欧美高清dvd碟片| 精品国精品自拍自在线| 欧美激情一区二区三区四区| 亚洲天堂免费看| 首页国产欧美久久| 国产一区二区免费视频| av高清不卡在线| 欧美久久久久久蜜桃| 精品国产免费一区二区三区香蕉| 亚洲精品一二三| 香蕉乱码成人久久天堂爱免费| 久久99在线观看| 91在线免费播放| 91精品国产综合久久久久久漫画| 日韩欧美综合在线| 国产精品久久久一区麻豆最新章节| 亚洲免费高清视频在线| 日本不卡视频在线观看| 成人av在线播放网址| 欧美精品色一区二区三区| 久久亚洲综合av| 一个色综合网站| 九九热在线视频观看这里只有精品| 成人久久18免费网站麻豆 | 成人短视频下载| 欧美一级xxx| 亚洲欧美偷拍卡通变态| 久久精品久久精品| 一本久久a久久精品亚洲| 91精品国产品国语在线不卡| 国产精品久久久久婷婷二区次| 日本中文字幕一区|