protected synchronized void processEvent(Sim_event ev)
    {
    	/***** NOTE: debugging information
        System.out.println(super.get_name() +
            ".processEvent(): Event was scheduled for " + ev.event_time());
    	System.out.println(super.get_name() +
            ".processEvent(): ev.get_tag() is " + ev.get_tag());
    	System.out.println(super.get_name() +
            ".processEvent(): ev.get_src() is " + ev.get_src());
        *************/

        switch ( ev.get_tag() )
        {

            case GridSimTags.PKT_FORWARD:
            case GridSimTags.JUNK_PKT:
            	//System.out.println(super.get_name() +
                //    ".processEvent(): processNetPacket() + at time = " + GridSim.clock());
                processFlowPacket(ev, ev.get_tag());
                break;

            case GridSimTags.ROUTER_AD:
                receiveAd(ev);
                break;

            case GridSimTags.INSIGNIFICANT:
            	//System.out.println(super.get_name() +
                //  ".processEvent(): processInternalEvent() + at time = " + GridSim.clock());
                processInternalEvent(ev);
                break;

            default:
                System.out.println(super.get_name() + ".body(): Unable to " +
                        "handle request from GridSimTags " +
                        "with constant number " + ev.get_tag() );
                break;
        }
    }