sidnet.stack.users.EECS510.routing
Class Route_Assignment2

java.lang.Object
  extended by sidnet.stack.users.EECS510.routing.Route_Assignment2
All Implemented Interfaces:
JistAPI.Proxiable, JistAPI.Timeless, NetInterface.NetHandler, RouteInterface

public class Route_Assignment2
extends java.lang.Object
implements RouteInterface


Nested Class Summary
 
Nested classes/interfaces inherited from interface jist.swans.route.RouteInterface
RouteInterface.Aodv, RouteInterface.BezierRouting, RouteInterface.Dsr, RouteInterface.ECGRIDRouting, RouteInterface.GenericRouting, RouteInterface.HeartbeatProtocol, RouteInterface.MultiTreeRouting, RouteInterface.RandomPathRouting, RouteInterface.ShortestPathRouting, RouteInterface.Zrp
 
Field Summary
static TopologyGUI topologyGUI
           
 
Constructor Summary
Route_Assignment2(Node myNode)
          Creates a new instance of Route_Assignment2
 
Method Summary
 int check_child(int[] array, int incomingID)
           
 void dropNotify(Message msg, MacAddress nextHopMac, Reason reason)
          Notification mechanism for packet dropped due to various "Reasons"
 RouteInterface getProxy()
          internals
 void peek(NetMessage msg, MacAddress lastHopMac)
          Called by the network layer for every incoming packet.
 void receive(Message msg, NetAddress src, MacAddress lastHop, byte macId, NetAddress dst, byte priority, byte ttl)
          Receive a message from the Link layer This function is called whenever the link layer receives a message whose final destination is THIS node.
 void send(NetMessage msg)
          This function is called when the App Layer transmits a packet (other than broadcast (NetAddress.ANY) packet) or a message is received from the MAC layer, but, since this node is not the FINAL destination of the message, needs to be forwarded The mechanism is explained in the SIDnet manual.
 void sendToAppLayer(Message msg, NetAddress src)
           
 void sendToLinkLayer(Message msg, NetAddress originalSourceIP, NetAddress finalDestinationIP, NetAddress nextHopDestIP)
           
 void sendToLinkLayer(NetMessage.Ip ipMsg, NetAddress nextHopDestIP)
           
 void setAppInterface(AppInterface appInterface)
          internals - for hooking up with App-Layer
 void setNetEntity(NetInterface netEntity)
          internals - for hooking up with the Network-Layer
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

topologyGUI

public static TopologyGUI topologyGUI
Constructor Detail

Route_Assignment2

public Route_Assignment2(Node myNode)
Creates a new instance of Route_Assignment2

Method Detail

dropNotify

public void dropNotify(Message msg,
                       MacAddress nextHopMac,
                       Reason reason)
Notification mechanism for packet dropped due to various "Reasons"

Specified by:
dropNotify in interface NetInterface.NetHandler

check_child

public int check_child(int[] array,
                       int incomingID)

send

public void send(NetMessage msg)
This function is called when the App Layer transmits a packet (other than broadcast (NetAddress.ANY) packet) or a message is received from the MAC layer, but, since this node is not the FINAL destination of the message, needs to be forwarded The mechanism is explained in the SIDnet manual. On short: When the app-layer sends a packet down (or link layer sends it UP) to Network layer (unicast) the network layer calls the send(NetMessage) of the routing protocol "indexed" by the packet. Here you decide how to route or what to do with the packet If it is a broadcast packet, the Network layer will immediatelly push the packet DOWN to the Link layer, bypassing the routing protocol

Specified by:
send in interface NetInterface.NetHandler
Specified by:
send in interface RouteInterface
Parameters:
msg - outgoing packet

receive

public void receive(Message msg,
                    NetAddress src,
                    MacAddress lastHop,
                    byte macId,
                    NetAddress dst,
                    byte priority,
                    byte ttl)
Receive a message from the Link layer This function is called whenever the link layer receives a message whose final destination is THIS node. c

Specified by:
receive in interface NetInterface.NetHandler
Parameters:
msg - message received
src - source network address
lastHop - source link address
macId - incoming interface
dst - destination network address
priority - packet priority
ttl - packet time-to-live

peek

public void peek(NetMessage msg,
                 MacAddress lastHopMac)
Description copied from interface: RouteInterface
Called by the network layer for every incoming packet. A routing implementation may wish to look at these packets for informational purposes, but should not change their contents.

Specified by:
peek in interface RouteInterface
Parameters:
msg - incoming packet
lastHopMac - last link-level hop of incoming packet

sendToLinkLayer

public void sendToLinkLayer(Message msg,
                            NetAddress originalSourceIP,
                            NetAddress finalDestinationIP,
                            NetAddress nextHopDestIP)

sendToLinkLayer

public void sendToLinkLayer(NetMessage.Ip ipMsg,
                            NetAddress nextHopDestIP)

sendToAppLayer

public void sendToAppLayer(Message msg,
                           NetAddress src)

setAppInterface

public void setAppInterface(AppInterface appInterface)
internals - for hooking up with App-Layer


setNetEntity

public void setNetEntity(NetInterface netEntity)
internals - for hooking up with the Network-Layer


getProxy

public RouteInterface getProxy()
internals