|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||
java.lang.Objectverinec.netsim.processors.EventProcessor
verinec.netsim.processors.ARPProcessor
public class ARPProcessor
The ARP Processor ins the instance that does the Address Resolution between Layer 3 and Layer 2 Addresses. The Processor has a ARP Cache. The Processor has a cache where assocations between layer 2 and layer 3 addresses are made. On a ARPLookUp, if there is no entry in the Cache, or the Cache Entry is too old, the Processor send a broadcast message and asks everyone if he has the requested address. There are two possible resolutions: from Layer 3 to a Layer 2 Address (normal Resolution) or from Layer 2 to a Layer 3 Address (reverse Lookup). Incoming ARP requests are treated automatically.
| Field Summary | |
|---|---|
private Logger |
jlogger
|
private Hashtable |
waitingpackets
|
| Constructor Summary | |
|---|---|
ARPProcessor()
Creates a new ARP Processor |
|
ARPProcessor(abstractNetworkLayer layer)
Createa a new ARP Processor |
|
| Method Summary | |
|---|---|
private void |
arpLookupBroadcast(Packet packet,
ILogger logger,
IAddress src)
|
private void |
arpLookupBroadcastForward(Packet packet,
ILogger logger,
IAddress src)
|
IAddress |
arpLookUpLocal(IAddress address,
ILogger logger,
IAddress src)
performs a arp lookup in the local cache |
private IAddress |
arpLookupLocalReverse(IAddress address)
Does a reverse ARP Lookup (Resolves the Layer 3 address form a Layer 2 address) |
private boolean |
canSendDirectly(IPAddress src,
IPAddress dst)
|
void |
processDown(PacketArrivedEventDown event)
processes events for a packet that was send down to this layer |
void |
processUp(PacketArrivedEventUp event)
processes events for a packet that was send up to this layer |
private void |
processUpReply(ARPPacket packet,
ILogger logger)
|
private void |
processUpRequest(ARPPacket packet,
ILogger logger)
|
void |
resolveAndSend(Packet packet,
ILogger logger)
|
void |
resolveAndSendForward(Packet packet,
Event logger)
|
private void |
sendArpLookUpBroadcast(IAddress address,
ILogger logger,
IAddress src,
IAddress src1)
performs a arp lookup. |
private void |
sendIP(Packet packet,
IAddress src,
IAddress dst,
ILogger logger)
|
| Methods inherited from class verinec.netsim.processors.EventProcessor |
|---|
getLayer, getName, setLayer, setName |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Field Detail |
|---|
private Logger jlogger
private Hashtable waitingpackets
| Constructor Detail |
|---|
public ARPProcessor()
public ARPProcessor(abstractNetworkLayer layer)
layer - the layer in which one the processor is active| Method Detail |
|---|
private void processUpRequest(ARPPacket packet,
ILogger logger)
private void processUpReply(ARPPacket packet,
ILogger logger)
public void processUp(PacketArrivedEventUp event)
EventProcessor
processUp in class EventProcessorevent - a event for a packet that was send up to this layerEventProcessor.processUp(verinec.netsim.events.PacketArrivedEventUp)public void processDown(PacketArrivedEventDown event)
EventProcessor
processDown in class EventProcessorevent - a event for a packet that was send down to this layerThis should never happen.
private void sendArpLookUpBroadcast(IAddress address,
ILogger logger,
IAddress src,
IAddress src1)
address - address to resolvelogger - the logger that loggssrc - a Layer 2 address of this host. Use the address of the nic
over which one you ant to broadcast the arp request if it
isn't found in the local cache.
NetSimException - if the arp lookup fails. This means there is no valid entry
in the cache and no one answers in time to the broadcasted
address.
public IAddress arpLookUpLocal(IAddress address,
ILogger logger,
IAddress src)
address - the layer 3 that needs to be resolvedlogger - the logger that loggs the lookupsrc - a layer 2 address of this host
private IAddress arpLookupLocalReverse(IAddress address)
address - a layer 2 address that should be resolved
private boolean canSendDirectly(IPAddress src,
IPAddress dst)
public void resolveAndSend(Packet packet,
ILogger logger)
public void resolveAndSendForward(Packet packet,
Event logger)
private void arpLookupBroadcast(Packet packet,
ILogger logger,
IAddress src)
private void arpLookupBroadcastForward(Packet packet,
ILogger logger,
IAddress src)
private void sendIP(Packet packet,
IAddress src,
IAddress dst,
ILogger logger)
|
Copyright © 2005 Verinec, DIUF | ||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||